NAT de OpenVPN e Linux

3

Eu tenho uma pergunta sobre o NATV do OpenVPN e do Linux.

Servidor OpenVPN (10.0.0.1) < - > (10.0.0.9) Cliente OpenVPN (192.168.0.1) < - > (192.168.0.0/24) LAN Interna

Eu configurei uma regra básica do iptables no cliente que diz /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE . Com isso, posso fazer ping do servidor para a LAN interna. No entanto, quando olho para o tcpdump no lado do servidor, vejo o IP da LAN interna. Eu preciso ver o 10.0.0.9 IP do servidor OpenVPN por razões de classificação, então eu sei onde ele foi. Existe uma maneira de fazer outro NAT no tráfego de retorno, de modo que, quando o servidor vê a resposta de ping, ele vem do IP 10.0.0.9 em vez do IP 192.168.0.X?

Obrigado pela sua ajuda.

Editar - achei que seria capaz de fazer algo assim, mas parece que não está funcionando.

/sbin/iptables -t nat -A POSTROUTING -o tun0 -j SNAT --to-source 10.0.0.9
    
por quanta 10.10.2011 / 18:57

2 respostas

2

Por favor, especifique qual endereço você está pingando e de qual host.

Eu suponho que você pingue 192.160.0.2 (ou qualquer outro host em 192.160.0.0/24 diferente de 192.160.0.1) de 10.0.0.1 e você quer que a resposta venha de 10.0.0.9. E isso está incorreto. O protocolo IP não funciona dessa maneira. : -)

    
por 21.10.2011 / 13:36
0

Se você não configurou o IP estático para tun0 no cliente, use MASQUERADE :

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o tun0 -j MASQUERADE

caso contrário, você pode usar SNAT :

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o tun0 -j SNAT --to-source 10.0.0.9
    
por 11.10.2011 / 02:30

Tags