ubuntu linux 下建立 纯L2TP 服务端和客户端
时间:2016-12-21 12:39 来源:linux.it.net.cn 作者:IT
以下是从网上摘下,并亲测可行的方法。
一。服务端
使用环境:
System: Ubuntu 10.04 Desktop
Package:xl2tpd
1. 安装所需软件包。
apt-get install xl2tpd(如需支持IP sec请自行安装)
2. 配置l2tp server
1) 配置PPP 连接的地址。
安装完xl2tpd, 会在/etc/xl2tpd/目录下生成一个文件 xl2tpd.conf(由于这个文件里包含太多注释,导致运行的时候会出现一些奇怪的配置文件错误,如parse_config: line 13: data ‘n parameters:’ occurs with no context,于是我们可以将这个文件备份,重新创建一个xl2tpd.conf, 配置如下内容:
[global]
ipsec saref = no
[lns default]
ip range = 100.0.0.100-100.0.0.200
local ip = 100.0.0.10
require chap = yes
require authentication = yes
ppp debug = yes
pppoptfile =/etc/ppp/options.xl2tpd
length bit = yes
2) 设置安全认证方式及DNS等信息。
打开文件/etc/ppp/options.xl2tpd, 如果该文件不存在则创建之,并配置如下内容:
require-chap
ms-dns 172.17.92.188
lcp-echo-interval 10
lcp-echo-failure 3
auth
3) 添加L2TP连接的账户信息。
可以在/etc/ppp/chap-secrets 目录下添加用户名密码
如 test l2tpd 123456 *
或 test * 123456 *
第二个例子适用于所有ppp server(pppoe,pptp,l2tp)
另外,如果上一步指定的是需要pap认证方式, 则要在文件/etc/ppp/pap-secrets中添加相应的账户信息。
#####
运行:
Start: /etc/init.d/xl2tpd start
Stop: /etc/init.d/xl2tpd stop
Restart: /etc/init.d/xl2tpd restart
DEBUG: xl2tpd -D (debug 模式)
二。客户端
(1) 安装xl2tpd
apt-get install xl2tpd
(2) 修改 /etc/xl2tpd/xl2tpd.conf, 内容如下
[lac zhiwei]
lns = 12.34.56.78
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
修改12.34.56.78 为你自己的l2tp vpn服务器的Ip地址
(3) 还需要建立一个/etc/ppp/options.l2tpd.client, 内容如下
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-mschap-v2
noccp
noauth
idle 1800
mtu 1410
mru 1410
defaultroute
replacedefaultroute
usepeerdns
debug
lock
connect-delay 5000
name my_user
password my_pass
修改myuser和mypass为实际的用户名和密码
配置说明
defaultroute 添加一条默认路由记录到系统路由表, 使用拨号服务器的内网IP作为网关
replacedefaultroute 代替默认的路由记录, 默认的数据都从VPN通路走
usepeerdns 使用VPN拨号提供的DNS服务
mru 最大接收单元, 对于VPN, 设置为1410 mru范围在128-1500,
因为以太网的mru/mtu是1518 , 以太网的UDP包最大是 1472, L2TP包1460 , L2TP上的TCP包为1420
请参看此文 http://huangdonghai.com/pptp-over-pppoe-mtu/
lock 应该在此串口上使用UUCP式的锁定以确 定对该设备为互斥(exclusive)存取。 防止别的程序写程序到这个串口,干扰PPP连接
noccp 禁止Compression Control Protocol 压缩控制协议的协商
noauth 不要求对方认证自己 (对客户端要设置这个选项, 对服务端,应该配置auth,要求客户端来认证自己), 并且Windows VPN服务器不会认证自己
crtscts 串口硬件流量控制, 显然在VPN拨号中不应该使用
ipcp-accept-local pppd将会接受彼端对於本地IP位址 的意见,即使本地的IP位址已经在某个选项中指定。
ipcp-accept-remote pppd将会接受彼端对於它的IP位址 的意见,即使远端的IP位址已经在某个选项中指定。
对于客户端, IPCP的这两个选项是必要的
refuse-eap 拒绝使用eap, 因为windows VPN服务器在对客户端进行认证时, 会首先使用EAP
proxyarp 以对方的IP位址以及该系统的以太网路地址, 增加一个条目到系统的ARP. 这样就让VPN中的内网地址,暴露在本地局域网内,这是不必要的
(4) 添加一条到你的VPN服务器的路由
ip ro ad 12.34.56.78 via 192.168.1.1
注意: 192.168.1.1 为我的局域网内的路由器的IP, 12.34.56.78 是VPN服务器的IP
如果在配置中没有replacedefaultroute, 或许需要添加
route add -net 0.0.0.0 netmask 0.0.0.0 dev ppp0
(5) 重启xl2tp服务
/etc/rc2.d/S18xl2tpd restart
或者
invoke-rc.d xl2tpd restart
(6)连接到指定lac
echo 'c zhiwei' > /var/run/xl2tpd/l2tp-control
注意, zhiwei就是/etc/xl2tpd/xl2tpd.conf中配置的lac名字
(7) 关闭l2tp连接
echo "d zhiwei" > /var/run/xl2tpd/l2tp-control
参考资料
http://www.jacco2.dds.nl/networking/Linux-l2tp.html
http://www.cublog.cn/u/8057/showart_83292.html
http://strongvpn.com/forum/viewtopic.PHP?id=788
(责任编辑:IT)
以下是从网上摘下,并亲测可行的方法。 一。服务端
使用环境:
1. 安装所需软件包。 apt-get install xl2tpd(如需支持IP sec请自行安装) 2. 配置l2tp server
1) 配置PPP 连接的地址。 [global] ipsec saref = no [lns default] ip range = 100.0.0.100-100.0.0.200 local ip = 100.0.0.10 require chap = yes require authentication = yes ppp debug = yes pppoptfile =/etc/ppp/options.xl2tpd length bit = yes
2) 设置安全认证方式及DNS等信息。 require-chap ms-dns 172.17.92.188 lcp-echo-interval 10 lcp-echo-failure 3 auth
3) 添加L2TP连接的账户信息。
##### 二。客户端 (1) 安装xl2tpd apt-get install xl2tpd(2) 修改 /etc/xl2tpd/xl2tpd.conf, 内容如下 [lac zhiwei] lns = 12.34.56.78 ppp debug = yes pppoptfile = /etc/ppp/options.l2tpd.client length bit = yes 修改12.34.56.78 为你自己的l2tp vpn服务器的Ip地址 (3) 还需要建立一个/etc/ppp/options.l2tpd.client, 内容如下 ipcp-accept-local ipcp-accept-remote refuse-eap require-mschap-v2 noccp noauth idle 1800 mtu 1410 mru 1410 defaultroute replacedefaultroute usepeerdns debug lock connect-delay 5000 name my_user password my_pass 修改myuser和mypass为实际的用户名和密码
配置说明
lock 应该在此串口上使用UUCP式的锁定以确 定对该设备为互斥(exclusive)存取。 防止别的程序写程序到这个串口,干扰PPP连接
noauth 不要求对方认证自己 (对客户端要设置这个选项, 对服务端,应该配置auth,要求客户端来认证自己), 并且Windows VPN服务器不会认证自己
ipcp-accept-local pppd将会接受彼端对於本地IP位址 的意见,即使本地的IP位址已经在某个选项中指定。
refuse-eap 拒绝使用eap, 因为windows VPN服务器在对客户端进行认证时, 会首先使用EAP
(4) 添加一条到你的VPN服务器的路由
如果在配置中没有replacedefaultroute, 或许需要添加
(5) 重启xl2tp服务 (6)连接到指定lac echo 'c zhiwei' > /var/run/xl2tpd/l2tp-control 注意, zhiwei就是/etc/xl2tpd/xl2tpd.conf中配置的lac名字 (7) 关闭l2tp连接 echo "d zhiwei" > /var/run/xl2tpd/l2tp-control 参考资料 http://www.jacco2.dds.nl/networking/Linux-l2tp.html http://www.cublog.cn/u/8057/showart_83292.html http://strongvpn.com/forum/viewtopic.PHP?id=788 (责任编辑:IT) |