L2TP: 第二层隧道协议(英语:Layer Two Tunneling Protocol,缩写为L2TP)是一种虚拟隧道协议,通常用于虚拟专用网。L2TP协议自身不提供加密与可靠性验证的功能,可以和安全协议搭配使用,从而实现数据的加密传输。经常与L2TP协议搭配的加密协议是IPsec,当这两个协议搭配使用时,通常合称L2TP/IPsec。
sudo apt install ppp
sudo apt install xl2tpd
xl2tpd配置文件位于/etc/xl2tpd/xl2tpd.conf
,因为是server端,只关注lns部分,global部分用默认的值即可,一般修改:
[lns default]
;ip分配配置
ip range = 192.168.0.2-192.168.0.20 ; * 分配的ip范围,即client或得到的ip范围
local ip = 192.168.0.1 ; * 自己本地ip
;鉴权相关配置
require chap = yes ; * 是否要求对端使用 CHAP 鉴权
refuse pap = yes ; * 是否禁用 PAP 鉴权
; refuse chap = no ; * 是否禁用 CHAP 鉴权
; refuse authentication = no ; * 是否禁用所有鉴权
require authentication = yes ; * 是否要求对端使用鉴权
;ppp相关配置
ppp debug = yes ; * 是否打开ppp调试
pppoptfile = /etc/ppp/options.l2tpd.lns ; * ppp 选项文件
该配置文件路径在上面的的配置中已指定,为/etc/ppp/options.l2tpd.lns
,在/etc/ppp/
目录下创建此文件,并做配置
touch /etc/ppp/options.l2tpd.lns
vim /etc/ppp/options.l2tpd.lns
内容为:
debug
logfd 2
logfile /var/log/xl2tplns.log
require-mschap-v2
require-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
idle 1800
mtu 1200
mru 1200
hide-password
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
和pptp相同,根据你配置的鉴权方式来选择哪个文件保存账号密码,这里使用的鉴权方式是chap,所以编辑/etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
test * test *
sudo systemctl enable xl2tpd
sudo systemctl start xl2tpd
由于这里不验证client端通过server端上网,所以没讨论如何设置转发和防火墙的设置。
sudo vim /etc/sysctl.conf
#找到对应参数,修改成如下:
net.ipv4.ip_forward=1
#保存,使配置生效
sudo sysctl -p
sudo iptables -I INPUT -p udp --dport 500 -j ACCEPT
sudo iptables -I INPUT -p udp --dport 4500 -j ACCEPT
sudo iptables -I INPUT -p udp -m udp --dport 1701 -j ACCEPT
#NAT转发的这条信息根据自己之前的配置(localip,remoteip网段)修改,注意网卡名设置为你的wan口网卡名,Ubuntu高一点的版本一般是ens33
iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.0.254 -o ens33
sudo systemctl restart xl2tpd
首先使用另一台ubuntu验证,安装相关的软件
sudo apt-get install xl2tpd network-manager-l2tp network-manager-l2tp-gnome
其他操作步骤类似于上一篇pptp的介绍,不重复。
ubuntu 20.04.1验证PPtP - thammer - 博客园 (cnblogs.com)
原文:https://www.cnblogs.com/thammer/p/14336850.html