O túnel está ligado, mas não consigo fazer ping

1

Eu preciso entender e resolver meu problema. Eu sei que o openswan funciona porque quando eu conecto da rede doméstica com um endereço IP interno de 10.0.0.97 para a VPN do trabalho, eu sou capaz de fazer ping mas quando eu uso o público xFinity wifi ele indica que o túnel está ativo mas não consigo pingar os hosts internos da minha VPN.

Quando estou conectado com sucesso ao público Xfinity wifi, meu IP é:

inet addr:10.232.204.146  Bcast:10.255.255.255  Mask:255.224.0.0

Aqui está a rota -n

root@ubuntu:/etc# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref      Use Iface
0.0.0.0         10.224.0.1      0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         10.224.0.1      0.0.0.0         UG    0      0        0 wlan0
10.224.0.0      0.0.0.0         255.224.0.0     U     9      0        0 wlan0

Quando estou neste ponto, posso fazer ping e navegar na internet.

Quando inicio o ipsec / openswan. Eu entendo.

root@ubuntu:/etc# /etc/init.d/ipsec status
IPsec running  - pluto pid: 4483
pluto pid 4483
1 tunnels up

Mas não consigo pingar meus servidores internos com IPs 192.168.1.xxx.

Aqui está o meu ipsec.conf

    config setup

    dumpdir=/var/run/pluto/
    #
    # NAT-TRAVERSAL support, see README.NAT-Traversal
    #        nat_traversal=yes
    # exclude networks used on server side by adding %v4:!a.b.c.0/24
    # It seems that T-Mobile in the US and Rogers/Fido in Canada are
    # using 25/8 as "private" address space on their 3G network.
    # This range has not been announced via BGP (at least upto 2010-12-21)
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.1.0/24,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10
    # OE is now off by default. Uncomment and change to on, to enable.
    oe=off
    # which IPsec stack to use. auto will try netkey, then klips then mast
    #protostack=netkey
    # Use this to log to a file, or disable logging on embedded systems (like openwrt)
    plutostderrlog=/var/log/pluto
    plutodebug="all"
    protostack=netkey

    conn work
    authby=secret
    auto=start
    type=tunnel
    left=10.232.204.146
    leftsubnet=10.0.0.0/8
    right=99.xx.xx.xx
    rightsubnet=192.168.1.0/24
    ike=aes256-sha1,aes128-sha1,3des-sha1
    leftxauthusername=xxxxx

Aqui estão os meus ipsec.secrets

@massivedude : XAUTH  "password"
10.232.204.146   vpnserver-01   : PSK "YouWillNeverKnow"

A propósito, mesmo que o túnel esteja funcionando e eu não possa pingar hosts internos, eu ainda posso pingar no yahoo.com e no google.com

Qualquer ajuda será apreciada.

    
por BioRod 28.12.2016 / 20:05

1 resposta

2

Como a Comcast usa o NAT para toda a sua rede (seu endereço 10.0.0.0/8 aqui), você precisará habilitar nat_traversal para essa conexão ao usar o Comcast.

A razão para isso é porque os pacotes IPSEC incluem um hash de todo o pacote incluindo o endereço de origem . Mas NAT muda o endereço de origem de 10.232.204.146 para algum IP público que você não conhece, então agora o hash não combina mais com o pacote, e o outro final irá descartar o pacote porque ele foi adulterado (da mesma forma, pacotes do outro end terá o endereço de destino alterado de qualquer IP público para 10.232.204.146 e será descartado).

NAT Traversal altera como os pacotes são enviados. Em vez de enviar o pacote diretamente, o pacote criptografado é empacotado dentro de um pacote UDP regular que não é criptografado. O NAT pode então alterar os endereços IP no pacote UDP para garantir que ele chegue onde precisa, enquanto o pacote original criptografado não é alterado e ainda pode ser validado.

Acredito que exista uma sobrecarga adicional em pacotes de encapsulamento como este, portanto, é melhor ativá-lo somente quando necessário.

    
por 28.12.2016 / 23:48