
Mudei para um novo servidor web e agora redireciono todo o tráfego para o novo servidor com
echo "1" > /proc/sys/net/ipv4/ip_forward
#clear old rules:
iptables -F
iptables -t nat -F
#masquerade and redirect everything:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -d 1.1.1.1 -j DNAT --to-destination 2.2.2.2
o que funciona bem, até que todas as entradas DNS estejam generalizadas. Mas agora não consigo mais fazer login no antigo mashine.
Como posso manter aberta uma porta SSH no antigo servidor 1.1.1.1?
Responder1
No iptables, a primeira regra correspondente vence. Portanto, a ordenação correta das regras é importante.
Neste caso, a regra que diz o que fazer com o tráfego da porta 22 deve virantesa regra que diz o que fazer com "todo o resto". E embora RETURN funcione se a política da cadeia permanecer inalterada em relação ao padrão, pode ser mais claro ser explícito e usar apenas ACCEPT como sinônimo de "apenas processar isso normalmente":
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -m tcp -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -d 1.1.1.1 -j DNAT --to-destination 2.2.2.2