Debian/Ubuntu下L2TP VPN配置

来源:互联网 发布:淘宝网皮草女款 编辑:程序博客网 时间:2024/05/05 19:13

似乎有些ISP屏蔽了PPTP VPN,就想试试L2TP VPN,主要参考了在Debian上建立基于L2TP的VPN。记下基本步骤做备份。

安装openswan

sudo apt-get install openswan

修改/etc/ipsec.conf,替换YOUR_SERVER_IP_ADDRESS为server地址

version 2.0config setup    nat_traversal=yes    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12    oe=off    protostack=netkey conn L2TP-PSK-NAT    rightsubnet=vhost:%priv    also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT    authby=secret    pfs=no    auto=add    keyingtries=3    rekey=no    ikelifetime=8h    keylife=1h    type=transport    left=YOUR_SERVER_IP_ADDRESS    leftprotoport=17/1701    right=%any    rightprotoport=17/%any

在/etc/ipsec.secrets添加shared secret

YOUR_SERVER_IP_ADDRESS %any: PSK "YOURPSK"

修改网络属性,加iptables做nat

echo 1 > /proc/sys/net/ipv4/ip_forwardfor each in /proc/sys/net/ipv4/conf/*; do    echo 0 > $each/accept_redirects    echo 0 > $each/send_redirectsdoneiptables --table nat --append POSTROUTING --jump MASQUERADE

需要的话加到启动文件里,可以是系统的启动文件,或者网络接口的。

重启ipsec,然后验证

sudo /etc/init.d/ipsec restartsudo ipsec verify

所有都OK,最后一项Opportunistic Encryption Support是Disabled就没问题了,否则会给出错提示。我之前就是没改所有的accept_redirects和send_redirects,看提示改了就好了。

安装xl2tpd

sudo apt-get install xl2tpd

修改/etc/xl2tpd/xl2tpd.conf,加ip池和server的ip信息

[global]ipsec saref = yes [lns default]ip range = 10.10.10.10-10.10.10.250local ip = 10.10.10.1refuse chap = yesrefuse pap = yesrequire authentication = yesppp debug = yespppoptfile = /etc/ppp/options.xl2tpdlength bit = yes

/etc/ppp/options.xl2tpd中是server的一些基本连接配置信息

require-mschap-v2ms-dns 8.8.8.8ms-dns 8.8.4.4asyncmap 0authcrtsctslockhide-passwordmodemdebugname l2tpdproxyarplcp-echo-interval 30lcp-echo-failure 4

在/etc/ppp/chap-secrets中加vpn用户,原文中有误,第二项是server的名字,和options.xl2tpd里的name的值对应,这里应该是l2tpd

tony l2tpd password *

据说有的主机不带/dev/ppp,需要自己创建

mknod /dev/ppp c 108 0

碰到这种情况,server的syslog里

May 24 16:08:45 localhost xl2tpd[4062]: control_finish: Peer requested tunnel 29 twice, ignoring second one.May 24 16:08:46 localhost xl2tpd[4062]: Maximum retries exceeded for tunnel 44651.  Closing.

在openswan的邮件列表里找到解决办法,相关链接:12。
在/etc/ipsec.conf里的L2TP-PSK-noNAT中加上

dpddelay=40dpdtimeout=130dpdaction=clear

知其然而不知其所以然,以后有兴趣再研究。