iPhone 用の Openswan L2TP/IPsec VPN が接続中に失敗する

iPhone 用の Openswan L2TP/IPsec VPN が接続中に失敗する

私は午前中、Debian Squeeze サーバー上で、iOS と Mac のクライアントが混在する環境で使用できるように、Openswan と xl2tpd を使用して L2TP/IPsec VPN を構成することに取り組んでいました。物事をシンプルにするために、事前共有キーを使用して設定しようとしています。

iPhone は接続して VPN の作成を開始しますが、途中で停止して失敗します。多くのパラメータをいじってすべてを再確認しましたが、問題の原因がわかりません。

/var/log/auth.logスタックする前の最後のログ メッセージは次のとおりです。

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}

その後約 30 秒後、iPhone が諦めて、次のメッセージが表示されます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)]

これはどういう意味ですか? サーバーがクライアントに接続できないか、クライアントが追加の接続を確立できず、確立できる IPsec 接続を介してこのエラーが渡されるのですか?

残念ながら、VPN を確立したい Wi-Fi ネットワーク内にいるため、AT&T のセルラー ネットワーク上の iPhone でこれをテストしています。AT&T は VPN トラフィックをブロックしますか?

/etc/ipsec.secretsの行を変更または削除すると、接続がはるかに早く失敗し、これらのログ行が表示されなくなるため、IPsec 認証が機能していることがわかります。

ファイアウォールは UDP ポート 500 と 4500、および ESP プロトコルを許可していると思います。これらをブロックすると、やはり接続がすぐに失敗するからです。

/etc/ipsec.conf接続セクション:

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

答え1

AT&Tは受信UDPパケットをブロックする(NAT を通過できない) ため、L2TP/IPsec を設定するのは非常に困難です。PPTP しか使えないと思います。

答え2

このエラーが手がかりになります。

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)

以前にも見たことがありますが、そのたびにホスト サーバーまたはリモート クライアントのネットワーク/ファイアウォールが IPsec パケットをブロックしていることが原因でした。ユーザーが制御するファイアウォールまたはルーターの場合は、簡単に修正できます (IPSEC を有効にする)。ただし、制御できない場合は運が悪く、別のプロトコルを使用する必要があります。left=17/%any を変更するとよいという人もいますが、私の場合はうまくいきませんでした (まれに、クライアント側が賢く、ブロックされていない別のポートを使用しようとする場合があります)。

関連情報