使用OpenSwan / xl2tpd从Windows7连接到IPSec / L2tp到Amazon EC2

我试图从家里的Windows7连接到我在Amazon的Ubuntu EC2实例上的OpenSwan / xl2tpd设置。
这是从客户端和服务器端进行NAT的连接。
我是从几个线程提示如何完成这个连接,但都失败了

最让我感到困惑的是日志中的以下行:

 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[2] 85.178.143.82#1:无法响应IPsec SA请求,因为23.21.84.48/32没有连接=== 10.117.59.224 [23.21.84.48,+ S = C]:一千七百○一分之一十七... 85.178.143.82 [192.168.2.103,+ S = C]:一千七百〇一分之一十七=== 192.168.2.103/32 

这个连接显然存在于被识别为leftid的外部IP(见下面关于ipsec auto –status)。 为什么找不到? 还有什么我做错了?

我会很感激任何帮助。

我的configuration:

我正在使用的IP:

  • EC2实例内部IP:10.117.59.224
  • 与实例关联的弹性IP:23.21.84.48
  • 我的ISP的IP与我的路由器在家里:85.178.143.82
  • 我家的NAT IP:192.168.2.103

我目前在我的/var/log/auth.log上得到这些错误信息:

 7月13日11时03分55秒ip-10-117-59-224 pluto [8782]:更改path到目录'/etc/ipsec.d/ocspcerts'
 Jul 13 11:03:55 ip-10-117-59-224 pluto [8782]:改变目录'/etc/ipsec.d/crls'
 7月13日11时03分55秒ip-10-117-59-224 pluto [8782]:警告:空目录
 7月13日11时03分55秒ip-10-117-59-224 pluto [8782]:侦听IKE消息
 7月13日11:03:55 ip-10-117-59-224 pluto [8782]:join接口eth0 / eth0 10.117.59.224:500
 7月13日11:03:55 ip-10-117-59-224 pluto [8782]:join界面lo / lo 127.0.0.1:500
 7月13日11:03:55 ip-10-117-59-224 pluto [8782]:join界面lo / lo :: 1:500
 Jul 13 11:03:55 ip-10-117-59-224 pluto [8782]:从“/etc/ipsec.secrets”加载机密
 Jul 13 11:03:55 ip-10-117-59-224 pluto [8782]:加载keyid的私钥:PPK_RSA:AQOnFE96U
 Jul 13 11:03:57 ip-10-117-59-224 pluto [8782]:增加连接描述“connRW48”
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:来自85.178.143.82:500的数据包:忽略供应商ID有效载荷[MS NT5 ISAKMPOAKLEY 00000008]
 7月13日11:04:20 ip-10-117-59-224 pluto [8782]:来自85.178.143.82:500的数据包:收到Vendor ID payload [RFC 3947] meth = 109,但端口浮动closures
 7月13日11:04:20 ip-10-117-59-224 pluto [8782]:来自85.178.143.82:500的数据包:收到Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02_n] meth = 106,但端口浮动closures
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:来自85.178.143.82:500的数据包:忽略供应商ID有效载荷[FRAGMENTATION]
 7月13日11时04分20秒ip-10-117-59-224 pluto [8782]:来自85.178.143.82:500的数据包:忽略供应商ID有效载荷[MS-Negotiation Discovery Capable]
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:来自85.178.143.82:500的数据包:忽略供应商ID有效载荷[Vid-Initial-Contact]
 7月13日11:04:20 ip-10-117-59-224 pluto [8782]:来自85.178.143.82:500的数据包:忽略供应商ID有效载荷[IKE CGA版本1]
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:来自未知对等体的主模式响应85.178.143.82
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:OAKLEY_GROUP 20不支持。 属性OAKLEY_GROUP_DESCRIPTION
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:OAKLEY_GROUP 19不支持。 属性OAKLEY_GROUP_DESCRIPTION
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:从状态STATE_MAIN_R0转换到状态STATE_MAIN_R1
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:STATE_MAIN_R1:发送MR1,等待MI2
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:从状态STATE_MAIN_R1转换到状态STATE_MAIN_R2
 Jul 13 11:04:20 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:STATE_MAIN_R2:发送MR2,等待MI3
 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:主模式的对方ID是ID_IPV4_ADDR:'192.168.2.103'
 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[1] 85.178.143.82#1:从“connRW48”切换到“connRW48”
 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[2] 85.178.143.82#1:删除连接“connRW48”实例与同级85.178.143.82 {isakmp =#0 /的IPSec =#0}
 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[2] 85.178.143.82#1:从状态STATE_MAIN_R2转换到状态STATE_MAIN_R3
 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[2] 85.178.143.82#1:STATE_MAIN_R3:发送MR3,build立ISAKMP SA {auth = OAKLEY_PRESHARED_KEY cipher = aes_256 prf = oakley_sha group = modp2048}
 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[2] 85.178.143.82#1:同行build议:23.21.84.48/32:17/1701  - > 192.168。 2.103 / 32:17/0
 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[2] 85.178.143.82#1:无法响应IPsec SA请求,因为23.21.84.48/32没有连接=== 10.117.59.224 [23.21.84.48,+ S = C]:一千七百○一分之一十七... 85.178.143.82 [192.168.2.103,+ S = C]:一千七百〇一分之一十七=== 192.168.2.103/32
 Jul 13 11:04:21 ip-10-117-59-224 pluto [8782]:“connRW48”[2] 85.178.143.82#1:发送encryption通知INVALID_ID_INFORMATION到85.178.143.82:500
 7月13日11时04分22秒ip-10-117-59-224冥王星[8782]:“connRW48”[2] 85.178.143.82#1:同行build议:23.21.84.48 / 32:17/1701  - > 192.168。 2.103 / 32:17/0
 Jul 13 11:04:22 ip-10-117-59-224 pluto [8782]:“connRW48”[2] 85.178.143.82#1:无法响应IPsec SA请求,因为23.21.84.48/32没有连接=== 10.117.59.224 [23.21.84.48,+ S = C]:一千七百○一分之一十七... 85.178.143.82 [192.168.2.103,+ S = C]:一千七百〇一分之一十七=== 192.168.2.103/32

我的安全组允许UDP端口500和4500之间的传入通信

我的iptables也允许1701等等

我的/etc/ipsec.conf:

版本2.0
configuration设置
         protostack = NETKEY
        接口=%defaultroute
         nat_traversal = YES
         virtual_private =%V4:10.0.0.0/8,%v4:172.16.0.0/12
         OE =无
         nhelpers = 0
         disable_port_floating = YES
包括/etc/ipsec.d/*.conf

我的/etc/ipsec.d/connRW48.conf

 connRW48
         rightsubnet =虚拟主机:%否,%PRIV
        types=运输
         authby =秘密
         PFS =无
        密钥更新=没有
         ikelifetime = 8H
        密钥有效期= 1H
         leftprotoport =一千七百〇一分之一十七
        左= 10.117.59.224
         #[email protected]
         leftid = 23.21.84.48
         rightprotoport = 17/0
        右=任何%
        汽车=忽略

我(审查)/etc/ipsec.secrets:

 :RSA {
         #RSA 2048 bits ip-10-117-59-224 2012年7月10日14:01:50 2012
         #仅用于签名,不安全用于encryption
         #PUBKEY = XXXXXXX
        模量:XXX
         PublicExponent:0x03
         #这一点之后的一切都是秘密的
         PrivateExponent:XXX
         Prime1:XXX
         Prime2:XXX
        指数1:XXX
        指数2:XXX
        系数:XXX
         }
 #不要改变那个“}”的缩进
 @ ip-10-117-59-224.ec2.internal%any:PSK“XXX”
 23.21.84.48%任何:PSK“XXX”

我的运行'ipsecvalidation'的输出:

检查您的系统以查看IPsec是否安装并正确启动:
版本检查和ipsec on-path [确定]
 Linux Openswan U2.6.37 / K3.2.0-25-virtual(netkey)
检查内核中的IPsec支持[确定]
  SAref内核支持[N / A]
  NETKEY:testingXFRM相关的proc值[确定]
         [好]
         [好]
检查pluto是否正在运行[OK]
 冥王星在udp 500上听IKE [OK]
 在udp 4500上聆听NAT-T的冥王星[失败]
检查'ip'命令[确定]
检查/ bin / sh不是/ bin / dash [警告]
检查“iptables”命令[确定]
机会encryption支持[DISABLED]

我的输出用于运行'ipsec auto –status':

 000使用内核接口:netkey
 000接口lo / lo :: 1
 000接口lo / lo 127.0.0.1
 000接口eth0 / eth0 10.117.59.224
 000%myid =(none)
 000debugging没有
 000
 000 virtual_private(%priv):
 000  - 允许2个子网:10.0.0.0/8,172.16.0.0/12
 000  - 不允许0个子网:
 000警告:virtual_private =中的不允许的子网是空的。 如果你有
 000内部使用的私有地址空间,应该排除!
 000
 000algorithmESPencryption:id = 2,name = ESP_DES,ivlen = 8,keysizemin = 64,keysizemax = 64
 ...
 ...
 000algorithmIKE dh组:id = 24,name = OAKLEY_GROUP_DH24,bits = 2048
 000
 000 stats db_ops:{curr_cnt,total_cnt,maxsz}:context = {0,0,0} trans = {0,0,0} attrs = {0,0,0}
 000
 000“connRW48”:10.117.59.224 [23.21.84.48,+ S = C]:17/1701 ...%virtual [+ S = C]:17/0 ===? 取消布线;  eroute所有者:#0
 000“connRW48”:myip = unset;  hisip =未设置;
 000“connRW48”:ike_life:28800s;  ipsec_l​​ife:3600s;  rekey_margin:540s;  rekey_fuzz:100%; 键位:0
 000“connRW48”:policy:PSK + ENCRYPT + DONTREKEY + IKEv2ALLOW + SAREFTRACK + lKOD + rKOD;  prio:32,32; 接口:eth0;
 000“connRW48”:最新的ISAKMP SA:#0; 最新的IPsec SA:#0;
 000

提前致谢

我使用类似的设置在EC2中运行openswan,而Windows客户端能够正常连接。 不确定究竟是什么问题,但这里是我的configuration和你的一些区别:

openswan 2.6.38

没有version 2.0参数。 其余的setupconfiguration或多或less是一样的。

有以下参数与您的不同(针对您的configuration进行调整):

 leftsubnet=10.117.59.224/32 leftnexthop=%defaultroute # this might be redundant with netkey stack. rightprotoport=17/%any rightid=%any forceencaps=yes auth=esp ike=3des-sha1 phase2alg=3des-sha1 

我没有指定ikelifetimeikelifetime

ipsec.secrets引用公共IP,只有 – 没有@内部条目。

我不知道这个修补程序是否适用于Win7,但对于XP / Vista客户端,我需要按照http://support.microsoft.com/kb/926179来编辑registry

我的安全策略(AWS SG / iptables / etc)允许传入UDP 1701,500,4500,协议50,协议51(ESP&AH)。

该问题似乎与Windowsregistry修补程序有关,允许从Windows客户端到L2TP服务器的NATTed连接。

注册补丁是:

Windowsregistry编辑器版本5.00 [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ PolicyAgent]“AssumeUDPEncapsulationContextOnSendRule”= dword:00000002