ubuntu linux 下建立 纯L2TP 服务端和客户端

    xiaoxiao2021-03-25  94

    ubuntu linux 下建立 纯L2TP 服务端和客户端

    以下是从网上摘下,并亲测可行的方法。

    一。服务端

    使用环境: 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

    转载请注明原文地址: https://ju.6miu.com/read-14361.html

    最新回复(0)