Encaminhar o tráfego de rede de um host para outro host, com exceção do tráfego SSH

2

Estou tentando redirecionar todo o tráfego de rede recebido em um host antigo para um host diferente. Para isso, criei duas novas regras com iptables no host antigo:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d old_machine_ip -j DNAT --to-destination new_machine_IP
iptables -t nat -A POSTROUTING -s new_machine_ip -j SNAT --to-source old_machine_ip
/etc/init.d/iptables save
/etc/init.d/iptables restart

Tudo funcionou perfeitamente, mas não consigo mais acessar o host antigo com ssh , pois ele o redireciona para o novo host. Gostaria de saber se é possível criar uma única regra que ignore o pré-lançamento do serviço ssh.

    
por Winter 06.03.2014 / 01:49

1 resposta

2

Alterar

iptables -t nat -A PREROUTING -d old_machine_ip \
  -j DNAT --to-destination new_machine_IP

para

iptables -t nat -A PREROUTING -d old_machine_ip -p tcp \! --dport 22 \
  -j DNAT --to-destination new_machine_IP
    
por 06.03.2014 / 02:05