Entendendo o ipsec com NAT e IPs dinâmicos

3

Estou usando o OpenSWAN para configurar um túnel VPN de rede para rede. Consegui configurar um cenário de teste da seguinte forma:

Sobretestetest2:

  • sãomáquinasvirtuaisUbuntu12.04criadasusandooubuntu-vm-builder
  • elesusamredeemponteparaaEthernetfísicadohost(asub-rede192.168.0.0/24).
  • Euinstaleiopacotepadrãoopenswan.
  • cadaumtemumainterfacefictíciaqueéacessívelapartirdaoutraextremidadedotúnelVPN.

Foiassimqueconfigureiotúnel:

/etc/ipsec.conf(idênticoàesquerdaeàdireita):

version2.0configsetupnat_traversal=yesvirtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12oe=offprotostack=netkeyconnnet-to-netauthby=secretleft=192.168.0.11leftsubnet=10.1.0.0/16leftsourceip=10.1.0.1right=192.168.0.12rightsubnet=10.2.0.0/16rightsourceip=10.2.0.1auto=start

/etc/ipsec.secrets(idênticoàesquerdaeàdireita):

192.168.0.11192.168.0.12:PSK"mytestpassword"

/etc/rc.local (à esquerda):

modprobe dummy
ifconfig dummy0 10.1.0.1 netmask 255.255.0.0

iptables -t nat -A POSTROUTING -o eth0 -s 10.1.0.0/16 ! -d 10.2.0.0/16 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
    echo 0 > $each/accept_redirects
    echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart

exit 0

/etc/rc.local (à direita):

modprobe dummy
ifconfig dummy0 10.2.0.1 netmask 255.255.0.0

iptables -t nat -A POSTROUTING -o eth0 -s 10.2.0.0/16 ! -d 10.1.0.0/16 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
    echo 0 > $each/accept_redirects
    echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart

exit 0

Agora, gostaria de configurar o seguinte cenário:

Problemas que preciso entender:

  • O IPSec pode se conectar através de um gateway de VPN que está compartilhando um ip público via NAT (entrada NAT traversal)? O NAT-T e o IPSec passthrough se referem a isso ou são apenas para NAT de saída (ou seja, lidar com clientes que estão por trás do NAT, mas onde o gateway tem um IP público)? Seria suficiente encaminhar algumas portas do roteador1 para o teste ou seria incompatível com o IPSec?
  • As duas extremidades de um encapsulamento IPSec têm IPs dinâmicos, desde que se tenha um nome de domínio e um dns dinâmico?
por Isaac Sutherland 12.07.2012 / 22:49

2 respostas

1

Eu geralmente não sou o tipo de cara para responder uma pergunta bem pensada com "vá usar outra coisa", mas ... VPNs IPSec são sempre um problema para configurar. Adicionar NAT e IP dinâmico é apenas um convite à frustração.

Você já deu uma olhada no OpenVPN? É uma VPN baseada em SSL que canaliza tudo através da porta UDP 1194, para que você não tenha que lidar com o ESP. Você provavelmente poderia colocar sua WAN em funcionamento em menos de uma hora.

    
por 13.07.2012 / 02:47
1

Can IPSec connect through a VPN gateway which is sharing a public ip via NAT (inbound NAT traversal)? Do NAT-T and IPSec passthrough relate to this or are they just for outbound NAT (i.e. dealing with clients which are behind NAT but where the gateway has a public IP)? Would it be sufficient to forward some ports from router1 to test, or would that be incompatible with IPSec?

O NAT-T, conforme definido na RFC 3947/3948, é um encapsulamento UDP do tráfego IPSec. Sem esse encapsulamento, o IPSec usa tipos de protocolo próprios sob IP para ambos - os modos de transporte e de encapsulamento, impossibilitando o trabalho através do NAT. Com o encapsulamento UDP, funcionaria sobre qualquer dispositivo NAT capaz de manipular UDP.

A direção do estabelecimento da conexão realmente importa, já que os roteadores NAT são stateful e mantêm as informações de "conexão" UDP, permitindo apenas "conexões" UDP iniciadas de dentro da rede NAT. Criar uma regra de encaminhamento de porta para a porta UDP usada pelo IKE e o encapsulamento UDP para o ESP (4500 / udp) superaria essa limitação, mas obviamente permitiria apenas um único host IPSec configurado dessa maneira atrás do dispositivo NAT.

Can both ends of an IPSec tunnel have dynamic IP's as long as one has a domain name and dynamic dns?

Sim, você não precisa de um endereço IP estático, embora seja provável que torne a sua vida mais fácil, já que remove dois pontos únicos de falha (o processo de atualização / provedor de DDNS) da sua configuração. Observe que a execução com endereços IP dinâmicos em ambas as extremidades com autenticação PSK exigiria um modo agressivo para a fase 1 do IKE.

    
por 13.07.2012 / 01:44