=====update20140421
两篇相关文章我觉得不错,贴上
http://zh.opensuse.org/index.php?title=SDB:Setup_Ipsec_VPN_with_Strongswan&variant=zh
http://bao3.blogspot.com/2013/05/racoonstrongswanvpn.html
=====
这里主要参考了http://blog.ltns.info/linux/pure_ipsec_multi-platform_vpn_client_debian_vps/
这个博主好像还是hp的好基友啊。
之前弄了l2tp,感觉不是特别有意思,断线了就断了。IKEv2的VPN一个是号称可以断线重连,另一个看起来非常高级(也不能说加密水平就更高,我觉得好像ipsec这几种vpn只要选择足够保密的加密算法好像也差不多,但是从流程上好像有一些安全的改进)。
用Strongswan,我弄了好久终于整明白了,是不是说明我太二了。
之前标出来的博客弄得非常明白,不过还是有一些细节要说一下。
一个是我之前习惯了用apt的包管理,yum不太会用,整了好久才磕磕绊绊的把那些编译用的基础包安装上了。还有一些包是怎么也安不上的,自己编译了两天各种依赖包自己手动编译都没整明白果断放弃的,不过只是对应编译的时候的一个非常生僻的功能,所以果断放弃。这个参数是“–enable-eap-sim-pcsc”,从这个角度我也要吐槽,亚马逊的那个LinuxAMI(也就是CentOS)太保守了……某些软件版本太旧了。所以那个蛋疼啊。怎么就不学debian多整几个源有的选也好啊。
我用的是strongswan最新的5.11开发版本,和4版本的有一些不一样。
第5版本的一些变动就是取消了–enable-cisco-quirks等参数,所以不要加,当然加了也没事,到时候编译的时候会提示你的。其实里面有很多用不到的,目测把里面带“sim”的参数去掉都是可以的。
我自己改过之后的参数如下,
./configure --prefix=/usr --sysconfdir=/etc --enable-openssl --enable-nat-transport --disable-mysql --disable-ldap --disable-static --enable-shared --enable-md4 --enable-eap-mschapv2 --enable-eap-aka --enable-eap-aka-3gpp2 --enable-eap-gtc --enable-eap-identity --enable-eap-md5 --enable-eap-peap --enable-eap-radius --enable-eap-sim --enable-eap-sim-file --enable-eap-simaka-pseudonym --enable-eap-simaka-reauth --enable-eap-simaka-sql --enable-eap-tls --enable-eap-tnc --enable-eap-ttls --enable-kernel-libipsec
=====
update Mar04, 2014
openvz的vps 要加入–enable-kernel-libipsec参数
=====
update Apr19,2014
先安装编译依赖包
yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel openssl-devel libxml2-devel gettext-devel pcre-devel //可以加上下面的试试 yum groupinstall "Development tools"
最后参数使用
./configure --prefix=/usr --sysconfdir=/etc --enable-openssl --enable-nat-transport --disable-mysql --disable-ldap --disable-static --enable-shared --enable-md4 --enable-eap-mschapv2 --enable-eap-aka --enable-eap-aka-3gpp2 --enable-eap-gtc --enable-eap-identity --enable-eap-md5 --enable-eap-peap --enable-eap-radius --enable-eap-sim --enable-eap-sim-file --enable-eap-simaka-pseudonym --enable-eap-simaka-reauth --enable-eap-simaka-sql --enable-eap-tls --enable-eap-tnc --enable-eap-ttls --enable-kernel-libipsec --enable-eap-identity --enable-eap-md5 --enable-eap-mschapv2 --enable-eap-tls --enable-eap-ttls --enable-eap-peap --enable-eap-tnc --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap --enable-xauth-pam --enable-dhcp --enable-openssl --enable-addrblock --enable-unity --enable-certexpire --enable-radattr --enable-tools --enable-openssl --disable-gmp
=====
然后就是make和make install,此处不细表了。
然后配置配置文件,我参考了上面提到的博客和另一个博客http://bao3.blogspot.com/2013/05/racoonstrongswanvpn.html
首先是/etc/ipsec.conf #注意原来的内容全部删掉,否则可能因为空格的原因,启动ipsec的时候报错。
config setup uniqueids=never strictcrlpolicy=no conn ikev1 keyexchange=ikev1 authby=xauthpsk xauth=server left=%defaultroute leftsubnet=0.0.0.0/0 leftfirewall=yes right=%any rightsubnet=10.11.0.0/24 rightsourceip=10.11.0.0/24 auto=add conn ikev2 keyexchange=ikev2 ike=aes256-sha1-modp1024! esp=aes256-sha1! dpdaction=clear dpddelay=300s rekey=no left=%defaultroute leftsubnet=0.0.0.0/0 leftauth=pubkey leftcert=serverCert.pem leftid=ikev2 right=%any rightsourceip=10.11.1.0/24 rightauth=eap-mschapv2 rightsendcert=never eap_identity=%any auto=add
下面是/etc/ipsec.secrets
XAUTH就是IKEv1加密,EAP用的是IKEv2。
# /etc/ipsec.secrets - strongSwan IPsec secrets file : PSK "your secrets" username1 : XAUTH "password1" : RSA xxxx.pem username2 : EAP "password2"
然后是/etc/strongswan.conf就在原有的加上dns选项就行,别的不用管,反正是自己用,粗放一点没什么。
charon { dns1 = 8.8.8.8 dns2 = 208.67.222.222 } pluto { dns1 = 8.8.8.8 dns2 = 208.67.222.222 }
然后设置防火墙规则iptables,这一段我完全引用ltns.info的文章了。
添加iptables命令,修改ip_forward以实现NAT,然后重启ipsec
iptables -A INPUT -p udp --dport 500 -j ACCEPT iptables -A INPUT -p udp --dport 4500 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.11.0.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -s 10.11.0.0/24 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 10.11.1.0/24 -o eth0 -j MASQUERADE #win7和android vpn客户端用 iptables -A FORWARD -s 10.11.1.0/24 -j ACCEPT #win7和android vpn客户端用 ipsec restart
注:为避免VPS重启后NAT功能失效,可以把如上8行命令添加到 /etc/rc.local 文件中,添加在exit那一行之前即可。
下面证书问题我也不写了,这一段写的足够了。
然后就大功告成了。
3 responses to “在Amazon EC2(Linxu AMI)上搭建IKEv1/IKEv2 VPN”
看起来有点儿复杂和凌乱,有木有清晰的思路和方法教程?谢谢指导。微软的云服务器,centos的。
是有点凌乱,可是我觉得你就按着这个步骤做就好了啊。
你有什么具体问题可以大家探讨啊。
要么你看开头那个openSUSE的教程,简单明了。
[…] https://blog.si-you.com/?p=1167 […]