centos7安装l2tp/ipsec VPN

之前在亚马逊云有安装过一次vpn的经历当初使用的是github上面一个现成的脚本使用的是https://github.com/travislee8964/L2TP-VPN-installation-script-for-CentOS-7这个,还是蛮好用的,不过有坑,后面会说到,安装上去之后为了便于调试操作步骤如下:

  • systemctl stop xl2tp
  • xl2tp -D这样打开xl2tp的debug信息持续在前台输出
  • 同样在/etc/ipsec.conf中打开ipsec的日志plutostderrlog=/tmp/plu.log
  • 必要的情况下可以打开plutodebug=all将所有的ipsec输出打印出来
    遇到的坑主要是说ipsec的两个端口udp500端口以及4500端口并没有在firewall中放行于是手动添加了端口,当时为了保险起见同时打开了xl2tp的1701端口,但是刚才突然想到xl2tp是分配内部端口用的应该没有必要打开,使用firewall-cmd –zone=public –remove-port=1701/udp –permanent移除端口之后重新连接vpn发现拨通了,对了,建议在调试vpn拨通这一步首先将防火墙关闭,看能否正常拨通,之后再调试防火墙的规则。

接下来就是比较坑的地方,就是发现拨通之后没有办法访问任何外部网络访问,使用ssh工具发现在手机上输入服务器的局域网地址是可以登陆的,于是突然想到这个是需要有nat转发,需要有防火墙的转发支持的!于是打开安装脚本发现有如下几行被注释掉了!!!

  • #iptables –table nat –append POSTROUTING –jump MASQUERADE
  • #iptables -t nat -A POSTROUTING -s $iprange.0/24 -o $eth -j MASQUERADE
  • #iptables -t nat -A POSTROUTING -s $iprange.0/24 -j SNAT –to-source $serverip
  • 也是醉了!难道是作者担心填写错误导致有什么问题出现?于是将这几个变量换成了自己配置的变量添加进去,之后搞定!
    ps:检查方法肯定是使用手机访问ipinfo.io之类的网站啦,祝好 :)

转载请注明来源链接 http://just4fun.im/2017/01/15/centos7-e5-ae-89-e8-a3-85l2tpipsec-vpn/ 尊重知识,谢谢:)