encontrei vários tutoriais sobre como fazer isso, mas nenhum deles funcionou :/
Minha configuração:
FIREWALL - acessível pela internet - eth0: xxx.xxx.xxx.xxx (ip público) - eth1: 192.168.1.1
SERVIDOR - acessível a partir do FIREWALL - eth0: 192.168.1.5
Como ainda quero poder me conectar ao firewall na porta 22, gostaria de encaminhar as conexões de entrada na porta 2222 para 192.168.1.5:22.
ping e ssh do FIREWALL para o SERVER funcionam. ping e ssh de SERVER para FIREWALL também funcionam (embora o login só seja permitido com chave pública e o SERVER não seja permitido...)
ping e ssh de qualquer lugar para FIREWALL funciona.
O encaminhamento de IP está ativado:
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
Postar minhas regras do iptables não faz muito sentido porque nenhuma das regras funcionou (usei PREROUTING, POSTROUTING, FORWARD...) e não existem outras regras.
Sim, meu firewall não bloqueia nada. Mas não se trata de segurança (ainda).
Tentei tudo o que encontrei nas primeiras páginas de: https://www.google.de/search?q=iptables+forward+ssh
Alguma sugestão?
Atenciosamente, Jens
ATUALIZAR
Aqui está o resultado tcpdump -n -i any
depois de usar o comando iptables de Khaled:
15:42:33.852718 IP home-ip.56008 > firewall-public-ip.2222: Flags [S], seq 1141341765, win 14600, options [mss 1460,sackOK,TS val 871214 ecr 0,nop,wscale 7], length 0
15:42:33.852752 IP home-ip.56008 > 192.168.1.5.22: Flags [S], seq 1141341765, win 14600, options [mss 1460,sackOK,TS val 871214 ecr 0,nop,wscale 7], length 0
Eu teria adivinhado que na segunda linha haveria algo como... IP 192.168.1.1.45678 > 192.168.1.5.22...
Essas duas linhas se repetem algumas vezes enquanto meu cliente ssh tenta se conectar várias vezes. Mas não há resposta.
2ª atualização As rotas do servidor (192.168.1.5) sãoaqui. Acabei de adicionar uma rota
public-firewall-ip 255.255.255.255 192.168.1.1 192.168.1.5 1
mas isso não tem efeito. No servidor roda o Win XP com o sshd do cygwin instalado. Eu não mencionei isso antes porque o ssh do firewall para o servidor funciona perfeitamente. Mas quando se trata de roteamento, sinto que o Windows é um tanto limitado.
Agora estou instalando o Wireshark no servidor e irei colar o resultado em alguns minutos.
Rastreamento no servidor O rastreamento no servidor mostra um SYN chegando na porta 22 e um SYN,ACK saindo para meu ip doméstico. Acho que aí está o erro. O ACK deve ser enviado ao firewall e então mascarado porque no pacote de saída o IP/Porta de origem agora é 192.168.1.5:22. De jeito nenhum isso chega ao meu laptop em casa atrás de um NAT ... ou existe uma maneira?
Responder1
Se você estiver permitindo que o tráfego passe pelo seu firewall e tenha o encaminhamento de IP habilitado, você só precisa de uma regra NAT para encaminhar o tráfego SSH na porta 2222. Uma como esta deve resolver o problema:
$ iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.5:22
Atualizar:
O sniffer de rede é seu amigo ao depurar esses problemas. Você pode executar o tcpdump na máquina do firewall e ver se consegue detectar a solicitação chegando e a mesma solicitação deve sair da máquina do firewall.