SNAT através do Racoon IPSec VPN

2

Estou tentando rotear o tráfego de um dispositivo (que chamarei de "destino") conectado à minha caixa do Ubuntu (que chamarei de "host") para servidores em um escritório remoto.

O host usa uma VPN IPSec Racoon, conectada por meio de uma NIC chamada efix . Isso cria um IF alias chamado efix:0 , que tem o endereço IP 192.168.190.132 . É capaz de alcançar os servidores.

O link entre host e destino é um link Ethernet, usando endereços IP 10.0.0.1 em IF eusb para o host e 10.0.0.2 em IF eth0 para o destino.

Eu configurei as seguintes rotas e entradas do iptables:

  • Na segmentação:

    10.0.0.0 *        255.255.255.0 U  0 0 0 eth0
    default  10.0.0.1 0.0.0.0       UG 0 0 0 eth0
    
  • No host:

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to 192.168.190.132
    iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
    iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT
    

Usando o Wireshark para monitorar um HTTP GET, posso ver que SYN pacotes do destino percorrem todo o caminho até o servidor, mas os SYNACK pacotes do servidor param no host e não são encaminhados para o destino. Estou faltando alguma coisa aqui? O SNAT não deveria rastrear as conexões?

    
por Mithfindel 02.09.2011 / 12:17

1 resposta

1

Seu problema é provável que sua regra de encaminhamento esteja contando com o SNAT para já ter acontecido com os pacotes de retorno. Quando você diz 'iptables -A FORWARD -d 10.0.0.0/24 ", isso depende do tráfego já ter sido alterado via NAT, o que acontece após o encaminhamento. Quando o pacote inicial chega, tem o endereço IP NATed (192.168.190.32) como destino.

Provavelmente, o que você quer são regras assim:

iptables -A forward -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A -i efix -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 192.168.190.132

A primeira regra permite o tráfego relacionado às conexões existentes, como o tráfego de retorno das conexões SNAT de "host". O segundo aceita tráfego de "host" (se eu entendi seu layout, "host" passa o tráfego para o seu firewall NATing em sua interface "etho0", certo?). Você pode querer limitar essa regra com "-d 192.168.190.0/24", dependendo de suas necessidades exatas.

A última regra é o que você já postou, que diz ao SNAT o tráfego.

    
por 25.09.2011 / 23:05