最新消息:

[转载]在Amazon EC2(Linxu AMI)上搭建IKEv1/IKEv2 VPN

VPN 林夕 8658浏览 0评论

================缘起================
http://www.hi-pda.com/forum/viewthread.php?tid=1298652

onlyalex 30# 发表于 2013-11-15 16:18

回复 29# 不能发言的群众
其实手机关键是app实现的功能 安卓功能性上比水果好太多了
果粉只知道主界面滑来滑去 其他一概无视 所以说跟果粉讨论真的很累

不能发言的群众 31# 发表于 2013-11-15 16:25

回复 不能发言的群众

其实手机关键是app实现的功能 安卓功能性上比水果好太多了
果粉只知道 …
onlyalex 发表于 2013-11-15 16:18

安卓还有啥高级功能可以发掘?比如说我听说能安装证书走IPsec上VPN啥的能教一下我不,我的note2上play我一直没法用啊。

thebeartian 40# 发表于 2013-11-15 19:18

回复 31# 不能发言的群众

如果不说l2tp over ipsec,ipsec在安卓上可以的实现我知道的是有ike v1和ike v2两个方式,ike v1就是苹果上vpn里面cisco vpn对应的那个方式。ike v1安卓里面直接用系统的ipsec-xauth类型设置就好,较新的ike v2可以在市场里下载strongswan,然后导入证书。手机具体设置要看服务端的ipsec的设置,但一般来说是用户名+密码+密钥或者用户名+密码+证书。

不能发言的群众 43# 发表于 2013-11-15 21:19

回复 不能发言的群众

如果不说l2tp over ipsec,ipsec在安卓上可以的实现我知道的是有ike v1和i …
thebeartian 发表于 2013-11-15 19:18

strongswan有装啊,没找到支持的VPN服务器

thebeartian 48# 发表于 2013-11-15 22:11

回复 43# 不能发言的群众

比如vpncup这种是有ikev2服务的。
如果你有服务器也可以自己搭建。
我写过一个教程http://si-you.com/?p=1167
================缘起================
转载自:http://si-you.com/?p=1167
在Amazon EC2(Linxu AMI)上搭建IKEv1/IKEv2 VPN
September 21, 2013 thebeartian 2 Comments
=====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那一行之前即可。
下面证书问题我也不写了,这一段写的足够了。
然后就大功告成了。

转载请注明:一秒钟的梦 » [转载]在Amazon EC2(Linxu AMI)上搭建IKEv1/IKEv2 VPN

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址