在Ubuntu下配置L2TP
由于CentOS下的yum远不如apt好用,于是花了两个晚上的时间把Linode上的系统从CentOS换成了Ubuntu。昨天重新搭了wordpress、git,今天把L2TP搞定了,参考了很多文章,主要有这篇和这篇,综合并整理了一下,贴在这里
Tips:在Linode上两个系统间迁移时,因为每次只能启动一个系统,原先以为得把文件从CentOS下到本地再传到Ubuntu,估计会很慢。后来想到能把原先的CentOS的磁盘直接在Ubuntu里mount,便能直接拷贝了
安装所需包
我用的Ubuntu是11.10,貌似下来xl2tpd是依赖于openswan和ppp的,于是直接安装xl2tpd
apt-get install xl2tpd
配置
IPSec
编辑/etc/ipsec.conf,改成
version 2.0 config 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
注意缩进,并替换${your.server.ip.address}为服务器公网IP地址
编辑/etc/ipsec.secrets,改成
${your.server.ip.address} %any: PSK "${your.shared.secret}"
替换IP地址和共享密钥
修改/etc/sysctl.conf,添加
net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0
执行
sysctl -p
令修改生效
XL2TPD
修改/etc/xl2tpd/xl2tpd.conf
[global] ipsec saref = yes [lns default] ip range = 10.1.2.2-10.1.2.255 local ip = 10.1.2.1 refuse chap = yes refuse pap = yes require authentication = yes ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes
PPP
修改/etc/ppp/options.xl2tpd
require-mschap-v2 ms-dns 208.67.222.222 ms-dns 208.67.220.220 asyncmap 0 auth crtscts lock hide-password modem debug name l2tpd proxyarp lcp-echo-interval 30 lcp-echo-failure 4
修改/etc/ppp/chap-secrets添加密码,格式:
<用户名> <名称,对应上面的name> <密码>
添加iptables规则
iptables --table nat --append POSTROUTING --jump MASQUERADE
并添加至/etc/rc.local
启动
service ipsec restart service xl2tpd restart