搭建VPN服务之IPSec
在vultr的VPS上搭建好PPTP的VPN服务后,迫不及待的准备试用一下时,发现:
- PPTP在安卓手机上可以使用手机自带的VPN客户端整常登录浏览google
- Mac系统(10.13.3)居然抛弃PPTP的自带客户端,只有自带IPSec的客户端了
- Mac上好用的PPTP客户端,Shimo试用版可登录VPN服务整常使用,但试用期过后要收费59刀,破解版安装运行提示文件损坏无法使用
- 怕其他第三方的PPTP客户端不靠谱
基于以上原因想干脆在VPS上再搭建一个IPSec的VPN算了,搜了一下strongswan貌似可用,那么就愉快的决定开始实验咯
零、主机环境
1 | vultr VPS + Ubuntu 16.04 |
一、安装IPSec服务程序
1 | apt-get update |
二、配置IPSec服务程序
配置IPSec共享密钥、用户名和密码
1 | vi /etc/ipsec.secrets |
在配置文件中增加
1 | : PSK "test" |
PSK字段的值是预共享密钥,将test换成你想要的共享密钥值,username和password换成你想要的用户名和密码,在IPSec的客户端登录时会需要使用这三个信息
配置IPSec内部路由
1 | vi /etc/ipsec.conf |
配置后该配置文件配置项内容如下
1 | config setup |
注:由于本文的VPS上已搭建了PPTP(内部网络192.168.0.1/24),为防止NAT转发时可能的冲突,本文的strongswan的内部网络选用了192.168.100.1/24
重启strongswan服务
1 | ipsec restart |
三、配置IP转发
原理同PPTP中的内核IP转发规则的配置相同
打开内核IP转发功能
1 | sysctl net.ipv4.ip_forward=1 |
配置转发规则(假设已将安装了iptables,没有的话参考PPTP的安装)
1 | iptables -t nat -A POSTROUTING -s 192.168.100.1/24 -o ens3 -j MASQUERADE |
这行命令应该是指将 192.168.100.xxx(192.168.100.1/24)的子网的所有ip包都做该的nat的转发规则转发到ens3的网卡上,ens3是本文中服务器上连接外网的网卡设备名,本文使用的VPS服务器的外网网卡为ens3,其他环境中该名字以ifconfig中外网网卡的名称为准
四、开机启动生效NAT转发规则和启动IPSec
设置开机启动
打开/etc/rc.local文件,在exit 0语句前加入:
1 | sudo iptables -t nat -A POSTROUTING -s 192.168.100.1/24 -o ens3 -j MASQUERADE |