ios9上有个ikev1,还有个ikev2,前文虽然支持ikev1,但是不支持ikev2,出于程序员的天性杂家觉得不得劲了。经过一番努力终于搞定了支持ikev2的配置方法。本文前提是基于前文使用链接的脚本成功跑通了ikev1. 因为个别vps上可能遇到麻烦,因为路由iptables的问题导致ikev1连不上,所以最好一步一步好。ikev1能连上的情况下,不用担心路由的问题,只需修改/usr/local/etc/ipsec.conf文件里的以windows为标识的字段如下:
conn windows7
keyexchange=ikev2
ike=aes256-sha256-modp1024,3des-sha1-modp1024,aes256-sha1-modp1024!
esp=aes256-sha256,3des-sha1,aes256-sha1!
rekey=no
left=%defaultroute
leftid=yourip
leftsendcert=always
leftsubnet=0.0.0.0/0
leftcert=server.cert.pem
right=%any
rightauth=eap-mschapv2
rightsourceip=10.31.2.0/24
rightsendcert=never
eap_identity=%any
dpdaction=clear
fragmentation=yes
auto=add
几点说明:
1,请将leftid 右边的yourip换成自己的vps ip。 此处有人说写域名,但是我的vps没有绑定域名,有人说写 CN即生成证书的Common Name,经我试验都是扯淡。
2,关于conn windows7,这仅仅是个标识,后面的windows7可以换成任何民字。有终端连上后,ipsec status查到的会显示终端是什么类型的,就对应这里的标签。
3,配置的关键在前三句,即ike和esp这两处,这里是支持win7,ios,OSX的。iOS支持的IKE为aes256-sha256-modp1024,OS X为3des-sha1-modp1024,Win7为aes256-sha1-modp1024。注意ESP的顺序与IKE的一致。
4,配置里的left对应服务器端,right对应客户端,rightauth务必写eat-mschapv2, rightsendcert写never.这样就可以不用证书了。
5,rightsourceip后面的值要根据自己iptables而定,两者要匹配。如果配置里使用的其他的ip范围,此处与之保持一致即可。
6,ios9上的使用ikev2方法参考链接,即只需要输入 服务器/远程ID,用户鉴定选择“用户名”,用户名/密码就ok了。服务器和远程ID都写vps的公网ip。
参考:
1,http://linsir.org/post/how_to_install_IPSec_IKEV2_base_on_strongswan_with_CentOS7
2,https://maskray.me/blog/2015-12-31-strongswan