Eu configurei o sshd do meu servidor para escutar em uma porta não-padrão 42.
No entanto, no trabalho, estou atrás de um firewall / proxy, que apenas permite conexões de saída para as portas 21, 22, 80 e 443. Consequentemente, não consigo fazer ssh em meu servidor do trabalho, o que é ruim. Eu não quero retornar o sshd para a porta 22.
A ideia é a seguinte: no meu servidor, a porta de encaminhamento local 22 para a porta 42 se o IP de origem estiver correspondendo ao IP externo da rede do meu trabalho. Para maior clareza, vamos supor que o IP do meu servidor é 169.1.1.1 (na eth1), e o meu IP externo do trabalho é 169.250.250.250. Para todos os IPs diferentes de 169.250.250.250, meu servidor deve responder com uma 'conexão recusada' esperada, como acontece para uma porta que não escuta.
Sou muito novo no iptables.
Eu examinei brevemente o longo manual do iptables e essas questões relevantes / relacionadas:
No entanto, essas questões lidam com cenários de vários hosts mais complicados, e não está claro para mim quais tabelas e cadeias devo usar para o encaminhamento de porta local, e se eu deveria ter duas regras (para "pergunta" e " responder "pacotes", ou apenas 1 regra para pacotes "pergunta".
Até agora, só habilitei o encaminhamento via sysctl. Eu começarei a testar soluções amanhã e apreciarei ponteiros ou talvez exemplos específicos de caso para implementar meu cenário simples.
O rascunho da solução abaixo está correto?
iptables -A INPUT [-m state] [-i eth1] --source 169.250.250.250 -p tcp
--destination 169.1.1.1:42 --dport 22 --state NEW,ESTABLISHED,RELATED
-j ACCEPT
Devo usar a tabela mangle
em vez de filter
? E / ou FORWARD
chain em vez de INPUT
?