Openswan L2TP/IPsec VPN para iPhone falla durante la conexión

Openswan L2TP/IPsec VPN para iPhone falla durante la conexión

Pasé la mañana intentando configurar una VPN L2TP/IPsec usando Openswan y xl2tpd en un servidor Debian Squeeze para uso de una combinación de clientes iOS y Mac. Estoy intentando configurarlo usando claves previamente compartidas para simplificar las cosas.

El iPhone se conecta y comienza a crear la VPN, luego se atasca y falla a mitad de camino. No puedo resolver el problema después de modificar muchos parámetros y verificar todo dos veces.

Aquí está el último mensaje de registro /var/log/auth.logantes de que se atasque:

pluto[30733]: "L2TP-PSK"[5] 166.147.96.226 #5: STATE_QUICK_R2: IPsec SA established tunnel mode {ESP=>0x0659cf9f <0xc3c2f68c xfrm=AES_256-HMAC_SHA1 NATOA=none NATD=166.147.96.226:10682 DPD=enabled}

Luego, unos 30 segundos después, el iPhone se rinde y esto aparece en auth.log:

pluto[30733]: ERROR: asynchronous network error report on br1 (sport=4500) for message to 166.147.96.226 port 10682, complainant 166.147.96.226: Connection refused [errno 111, origin ICMP type 3 code 3 (not authenticated)]

¿Qué quiere decir esto? ¿El servidor no puede comunicarse con el cliente o el cliente no puede establecer una conexión adicional y pasa este error a través de la conexión IPsec que pudo establecer?

Desafortunadamente, estoy probando esto con el iPhone en la red celular de AT&T, porque estoy dentro de la red Wi-Fi en la que quiero establecer la VPN. ¿AT&T bloquea el tráfico VPN?

Sé que la autenticación IPsec está funcionando porque si cambio o elimino la línea /etc/ipsec.secrets, la conexión falla mucho más rápido y no veo estas líneas de registro.

Creo que el firewall permite los puertos UDP 500 y 4500, y el protocolo ESP, porque si los bloqueo, nuevamente la conexión falla mucho más rápido.

/etc/ipsec.confsección de conexión:

conn L2TP-PSK
    authby=secret
    pfs=no
    rekey=no
    keyingtries=3
    dpddelay=30
    dpdtimeout=120
    dpdaction=clear
    compress=yes
    left=%defaultroute
    leftprotoport=udp/1701
    right=%any
    rightprotoport=udp/0
    auto=add

/etc/ipsec.secrets

VPN-SERVER-PUBLIC-IP %any: PSK "mysecretishere"

/etc/xl2tpd/xl2tpd.conf

[global]                ; Global parameters:
access control = no
rand source = dev

[lns default]             ; Our fallthrough LNS definition
ip range = 192.168.1.120-192.168.1.127
local ip = 192.168.1.119
require chap = yes
refuse pap = no
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tp
length bit = yes

/etc/ppp/options.l2tp

ipcp-accept-local
ipcp-accept-remote
ms-dns  192.168.1.1
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
plugin pppol2tp.so
require-mschap-v2

Respuesta1

AT&T parecebloquear paquetes UDP entrantes(no les permite atravesar la NAT), por lo que será muy difícil configurar L2TP/IPsec. Creo que estás atrapado con PPTP.

Respuesta2

Este error es tu pista.

ERROR: asynchronous network error report on br1 (sport=4500) for message to 166.147.96.226 port 10682, complainant 166.147.96.226: Connection refused [errno 111, origin ICMP type 3 code 3 (not authenticated)

Lo he visto antes y siempre se debe a que el servidor host o la red/firewall del cliente remoto están bloqueando los paquetes ipsec. Si se trata de un firewall o enrutador controlado por el usuario, esta es una solución simple (habilite IPSEC), pero si está fuera de su control, no tendrá suerte y tendrá que usar un protocolo diferente. Hay algunos que dicen cambiar el left=17/%any pero esto nunca ha funcionado para mí (en casos raros, tal vez el lado del cliente sea inteligente e intente usar un puerto diferente que no esté bloqueado).

información relacionada