我正在尝试从家里的 Windows7 连接到 Amazon 的 Ubuntu EC2 实例上的 OpenSwan/xl2tpd 设置。
这是一个从客户端和服务器端进行 NAT 的连接。
我按照几个线程中的提示完成了此连接,但都失败了
最令我困惑的是日志中的以下一行:
7 月 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]:17/1701...85.178.143.82[192.168.2.103,+S=C]:17/1701===192.168.2.103/32
此连接显然存在,其外部 IP 被标识为 leftid(请参阅下文有关 ipsec auto --status 的内容)。为什么找不到它?还是我还做错了什么?
我将非常感激您的帮助。
我的配置:
我使用的 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]: 将路径更改为目录 '/etc/ipsec.d/ocspcerts' 7 月 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]: 添加接口 eth0/eth0 10.117.59.224:500 7 月 13 日 11:03:55 ip-10-117-59-224 pluto[8782]: 添加接口 lo/lo 127.0.0.1:500 7 月 13 日 11:03:55 ip-10-117-59-224 pluto[8782]: 添加接口 lo/lo ::1:500 7 月 13 日 11:03:55 ip-10-117-59-224 pluto[8782]: 从“/etc/ipsec.secrets”加载机密 7 月 13 日 11:03:55 ip-10-117-59-224 pluto[8782]: 已加载密钥 ID 为 PPK_RSA:AQOnFE96U 的私钥 7 月 13 日 11:03:57 ip-10-117-59-224 pluto[8782]: 添加了连接描述“connRW48” 7 月 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 的数据包:已收到供应商 ID 负载 [RFC 3947] meth=109,但端口浮动已关闭 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]: 来自 85.178.143.82:500 的数据包:已收到供应商 ID 负载 [draft-ietf-ipsec-nat-t-ike-02_n] meth=106,但端口浮动已关闭 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]: 来自 85.178.143.82:500 的数据包:忽略供应商 ID 有效负载 [碎片] 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]: 来自 85.178.143.82:500 的数据包:忽略供应商 ID 有效负载 [MS-Negotiation Discovery Capable] 7 月 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] 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]:“connRW48”[1] 85.178.143.82 #1:响应来自未知对等点 85.178.143.82 的主模式 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]:“connRW48”[1] 85.178.143.82 #1:不支持 OAKLEY_GROUP 20。属性 OAKLEY_GROUP_DESCRIPTION 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]:“connRW48”[1] 85.178.143.82 #1:不支持 OAKLEY_GROUP 19。属性 OAKLEY_GROUP_DESCRIPTION 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]:“connRW48”[1] 85.178.143.82 #1:从状态 STATE_MAIN_R0 转换到状态 STATE_MAIN_R1 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]:“connRW48”[1] 85.178.143.82 #1:STATE_MAIN_R1:已发送 MR1,预期 MI2 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]:“connRW48”[1] 85.178.143.82 #1:从状态 STATE_MAIN_R1 转换到状态 STATE_MAIN_R2 7 月 13 日 11:04:20 ip-10-117-59-224 pluto[8782]:“connRW48”[1] 85.178.143.82 #1:STATE_MAIN_R2:已发送 MR2,预期 MI3 7 月 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' 7 月 13 日 11:04:21 ip-10-117-59-224 pluto[8782]:“connRW48”[1] 85.178.143.82 #1:从“connRW48”切换到“connRW48” 7 月 13 日 11:04:21 ip-10-117-59-224 pluto[8782]:“connRW48”[2] 85.178.143.82 #1:删除与对等体 85.178.143.82 的连接“connRW48”实例 {isakmp=#0/ipsec=#0} 7 月 13 日 11:04:21 ip-10-117-59-224 pluto[8782]:“connRW48”[2] 85.178.143.82 #1:从状态 STATE_MAIN_R2 转换到状态 STATE_MAIN_R3 7 月 13 日 11:04:21 ip-10-117-59-224 pluto[8782]:“connRW48”[2] 85.178.143.82 #1:STATE_MAIN_R3:已发送 MR3,已建立 ISAKMP SA {auth=OAKLEY_PRESHARED_KEY cipher=aes_256 prf=oakley_sha group=modp2048} 7 月 13 日 11:04:21 ip-10-117-59-224 pluto[8782]:“connRW48”[2] 85.178.143.82 #1:对等体提议:23.21.84.48/32:17/1701 -> 192.168.2.103/32:17/0 7 月 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]:17/1701...85.178.143.82[192.168.2.103,+S=C]:17/1701===192.168.2.103/32 7 月 13 日 11:04:21 ip-10-117-59-224 pluto[8782]:“connRW48”[2] 85.178.143.82 #1:向 85.178.143.82:500 发送加密通知 INVALID_ID_INFORMATION 7 月 13 日 11:04:22 ip-10-117-59-224 pluto[8782]:“connRW48”[2] 85.178.143.82 #1:对等体提议:23.21.84.48/32:17/1701 -> 192.168.2.103/32:17/0 7 月 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]:17/1701...85.178.143.82[192.168.2.103,+S=C]:17/1701===192.168.2.103/32
我的安全组允许 UDP 端口 500 和 4500 等端口的传入通信
我的 iptables 还允许 1701 等
我的 /etc/ipsec.conf:
版本 2.0 配置设置 protostack=netkey 接口=%默认路由 nat_traversal=yes 虚拟私有=%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=vhost:%no,%priv 类型=运输 authby=秘密 pfs=否 重新密钥=否 ikelifetime=8h 按键寿命=1小时 左协议端口=17/1701 左=10.117.59.224 #[电子邮件保护] leftid=23.21.84.48 右协议端口=17/0 右=%任意 自动=忽略
我的(已审查)/etc/ipsec.secrets:
: RSA { # RSA 2048 位 ip-10-117-59-224 2012 年 7 月 10 日星期二 14:01:50 # 仅用于签名,加密不安全 #公钥=XXXXXXX 模数:XXX 公共指数:0x03 # 此后的一切都属于秘密 私有指数: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”
我运行“ipsec verify”的输出:
检查你的系统以查看 IPsec 是否已安装并正确启动: 版本检查和 ipsec on-path [确定] Linux Openswan U2.6.37/K3.2.0-25-virtual(网络密钥) 检查内核中的 IPsec 支持 [确定] SAref 内核支持 [N/A] NETKEY:测试 XFRM 相关的 proc 值 [确定] [好的] [好的] 检查冥王星是否正在运行 [确定] Pluto 在 udp 500 上监听 IKE [确定] 冥王星在 udp 4500 上监听 NAT-T [失败] 检查“ip”命令 [确定] 检查 /bin/sh 不是 /bin/dash [警告] 检查“iptables”命令 [确定] 机会加密支持 [已禁用]
我运行“ipsec auto --status”的输出:
000 使用内核接口:netkey 000 接口 lo/lo ::1 000 接口 lo/lo 127.0.0.1 000 接口 eth0/eth0 10.117.59.224 000%我的id=(无) 000 调试无 000 000 虚拟私有 (%priv): 000 - 允许 2 个子网:10.0.0.0/8、172.16.0.0/12 000 – 不允许 0 个子网: 000 警告:virtual_private= 中不允许的子网为空。如果您有 000 私有地址空间正在内部使用,应当排除! 000 000 算法 ESP 加密:id=2,name=ESP_DES,ivlen=8,keysizemin=64,keysizemax=64 ... ... 000 算法 IKE dh 组:id=24,名称=OAKLEY_GROUP_DH24,位=2048 000 000 统计 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=未设置;hisip=未设置; 000 “connRW48”:ike_life:28800s;ipsec_life:3600s;rekey_margin:540s;rekey_fuzz:100%;keyingtries:0 000 “connRW48”:策略:PSK+ENCRYPT+DONTREKEY+IKEv2ALLOW+SAREFTRACK+lKOD+rKOD;优先级:32,32;接口:eth0; 000 “connRW48”:最新的 ISAKMP SA:#0;最新的 IPsec SA:#0; 000
提前致谢
答案1
我在 EC2 中以类似的设置运行 openswan,Windows 客户端能够毫无问题地连接。不确定问题到底是什么,但以下是我的配置和你的配置之间的一些差异:
openswan 2.6.38
无version 2.0
参数。其余配置setup
大致相同。
具有与您的不同的以下参数(根据您的配置进行调整):
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
我没有指定ikelifetime
或keylife
。
ipsec.secrets
仅引用公共 IP – 没有@internal 条目。
我不确定此修复是否适用于 Win7,但对于 XP / Vista 客户端,我需要按照http://support.microsoft.com/kb/926179
我的安全策略(AWS SG / iptables / 等)允许传入 UDP 1701,500,4500、协议 50、协议 51(ESP 和 AH)。
答案2
该问题似乎与允许从 Windows 客户端到 L2TP 服务器的 NATT 连接的 Windows 注册表补丁有关。
注册补丁是:
Windows 注册表编辑器版本 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PolicyAgent] "AssumeUDPEncapsulationContextOnSendRule"=dword:00000002