
Passei a manhã tentando configurar uma VPN L2TP/IPsec usando Openswan e xl2tpd em um servidor Debian Squeeze para uso por uma combinação de clientes iOS e Mac. Estou tentando configurá-lo usando chaves pré-compartilhadas para manter as coisas simples.
O iPhone se conecta e começa a criar a VPN, depois trava e falha no meio do processo. Não consigo descobrir o problema depois de mexer em muitos parâmetros e verificar tudo novamente.
Aqui está a última mensagem de log /var/log/auth.log
antes de travar:
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}
Então, cerca de 30 segundos depois, o iPhone desiste e isso aparece em 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)]
O que isto significa? O servidor não consegue entrar em contato com o cliente ou o cliente não consegue fazer uma conexão adicional e transmite esse erro pela conexão IPsec que poderia estabelecer?
Infelizmente, estou testando isso com o iPhone na rede celular da AT&T, porque estou dentro da rede Wi-Fi na qual desejo estabelecer a VPN. A AT&T bloqueia o tráfego VPN?
Eu sei que a autenticação IPsec está funcionando porque se eu alterar ou remover a linha de /etc/ipsec.secrets
, a conexão falha muito mais rápido e não vejo essas linhas de log.
Acredito que o firewall esteja permitindo as portas UDP 500 e 4500, e o protocolo ESP, porque se eu bloquear, novamente a conexão falha muito mais rápido.
/etc/ipsec.conf
seção de conexão:
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
Responder1
A AT&T parecebloquear pacotes UDP recebidos(não permite que eles atravessem o NAT), então será muito difícil configurar L2TP/IPsec. Acho que você está preso ao PPTP.
Responder2
Este erro é sua 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)
Já vi isso antes e sempre é porque o servidor host ou a rede/firewall do cliente remoto está bloqueando os pacotes ipsec. Se for um firewall ou roteador controlado pelo usuário, esta é uma solução simples (habilitar IPSEC), mas se estiver fora de seu controle, você estará sem sorte e precisará usar um protocolo diferente. Há quem diga que mude left=17/%any, mas isso nunca funcionou para mim (em casos raros, talvez o lado do cliente possa ser inteligente e tentar usar uma porta diferente que pode não estar bloqueada).