给ios10在ubuntu 14.04上配置IPSec服务器
写在前面的闲话
后面有篇文章,为 iOS 在 CentOS6.x 上搭建 IPSec(PSK+XAuth) VPN 服务器,说的是一样的事情,只不过平台是 CentOS 6.x。
有朋友看了本文后问,这种文章百度上不多的是吗,干嘛还要写?然后我就想这个问题也许还真有代表性,于是就把文章修改下,统一回答:
- 网上的方案多是ipsec+l2tp或者是ipsec+xl2tp的,我觉得不需要那么复杂,有ipsec加密数据流就OK了,所以我这方案应该是满足需求的最简方案
- 我写东西,多半是为了心理安慰。而且这也不算是完全原创,准确讲应该是实验报告,参照的是最后参考里列出的国外的那篇文档
缘起(Why)
需求还是来自于科学上网,iPhone设备的科学上网。话说自打最新的iOS中
- 不再支持pptp方式的vpn了
- 没有全局性的ss(Shadowsocks)可用
- OpenVPN的客户端软件市场中都看不见(Tunnelblicck是没找到)
所以,为了iPhone的科学上网,我们只有自力更生,搭建新的服务器系统。这里,我选用的是IPsec服务器。
具体步骤(Howto)
环境准备
环境是一台ubuntu 14.04的机器(代号:Trusty Tahr)。
安装软件
首先,我们需要安装必需软件:
1 | apt-get install strongswan \ |
参数调整
1 | sysctl -w net.ipv4.ip_forward=1; |
iptables
1 | /sbin/iptables -t nat \ |
修改配置
ipsec.secrets
1 | cat <<EOF >/etc/ipsec.secrets |
注意:
- user1和user2分别是用户名,相应后面的passw…….是密码
- sharekeystring是共享秘钥,客户端连过来时也会用
ipsec.conf
1 | cat <<EOF >/etc/ipsec.conf |
这里解释下参数charondebug,上面的例子都是4是为了调试排错的需要的,当你的服务正常以后,请将这个参数值改小。
启动服务
1 | # (手工)启动服务 |
排错及维护
- log文件是*/var/log/strongswan.charon.log*
1 | ipsec status; |
ios客户端配置
在iphone上,点击设置–>VPN–>**添加 VPN 配置…**,然后:
- 类型:IPSec
- 描述:随便填
- 服务器:填部署IPSec服务的ip地址或域名
- 账户:上面的例子中是user1或user2
- 密码:上面的文件里有
- 使用证书:不使用证书
- 秘钥:上面配置文件里有