问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Ubuntu下配置L2TP

发布网友 发布时间:2023-04-10 02:07

我来回答

1个回答

热心网友 时间:2023-09-13 08:00

安装软件包
sudo apt-get install xl2tpd openswan ppp

IPSec / Openswan
打开 /etc/ipsec.conf 文件,做如下配置:
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,%v4:!10.152.2.0/24 # 这里包含的网络地址允许配置为远程客户端所在的子网。换句话说, # 这些地址范围应该是你的NAT路由器后面的客户端的地址。 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 # Apple 的 iOS 不会发送 delete 提醒, # 所以我们需要通过死亡对端(dead peer)检测来识别断掉的客户端 dpddelay=30 dpdtimeout=120 dpdaction=clear # 设置 ikelifetime 和 keylife 和 Windows 的默认设置一致 ikelifetime=8h keylife=1h type=transport # 替换 IP 地址为你的本地IP (一般是,私有地址、NAT内的地址) left=x.x.x.x # 用于升级过的 Windows 2000/XP 客户端 leftprotoport=17/1701 # 要支持老的客户端,需要设置 leftprotoport=17/%any right=%any rightprotoport=17/%any # 强制所有连接都NAT,因为 iOS forceencaps=yes

注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"应该顶着行头写,而其它行应该以8个空格缩进。
打开 /etc/ipsec.secrets,配置:
x.x.x.x %any: PSK "somegoodpassword"

这里x.x.x.x 替换为你的服务器的IP地址,并设置一个复杂的密码。
启动 IPSEC 服务:
/etc/init.d/ipsec start

使用如下命令确认 ipsec 是否工作正常:
sudo ipsec verify

应该没有任何错误才行:
Checking your system to see if IPsec got installed and started correctly:Version check and ipsec on-path [OK]Linux Openswan U2.6.28/K2.6.32-32-generic-pae (netkey)Checking for IPsec support in kernel [OK]NETKEY detected, testing for disabled ICMP send_redirects [OK]NETKEY detected, testing for disabled ICMP accept_redirects [OK]Checking that pluto is running [OK]Pluto listening for IKE on udp 500 [OK]Pluto listening for NAT-T on udp 4500 [OK]Checking for 'ip' command [OK]Checking for 'iptables' command [OK]Opportunistic Encryption Support [DISABLED]

在 /etc/init.d 下创建一个名为 ipsec.* 的文件,内容如下:
case "$1" in start) echo "Starting my Ipsec VPN" iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done /etc/init.d/ipsec start /etc/init.d/xl2tpd start;; stop) echo "Stopping my Ipsec VPN" iptables --table nat --flush echo 0 > /proc/sys/net/ipv4/ip_forward /etc/init.d/ipsec stop /etc/init.d/xl2tpd stop;; restart) echo "Restarting my Ipsec VPN" iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done /etc/init.d/ipsec restart /etc/init.d/xl2tpd restart ;; *) echo "Usage: /etc/init.d/ipsec.* {start|stop|restart}" exit 1;;esac

这会配置防火墙转发。记得修改上面文件的本地IP地址池10.152.2.0/24为你自己的。
然后给这个文件设置可执行权限:
sudo chmod 755 ipsec.*

禁止默认的 ipsec 服务脚本运行:
sudo update-rc.d -f ipsec remove

然后,启用我们刚才定制的这个:
sudo update-rc.d ipsec.* defaults

L2TP
修改 /etc/xl2tpd/xl2tpd.conf :
[global]ipsec saref = no [lns default]ip range = 10.152.2.2-10.152.2.254local ip = 10.152.2.1require chap = yesrefuse pap = yesrequire authentication = yesppp debug = yespppoptfile = /etc/ppp/options.xl2tpdlength bit = yes

配置说明如下:
ip range = 可以连接VPN服务的客户端IP地址范围
local ip = VPN 服务器的IP,必须在客户端IP范围之外
refuse pap = 拒绝 pap 认证
ppp debug = 测试时打开
选择一个复杂的挑战-响应式验证字符串。虽然没有最短长度*,不过它应该至少有16个字符,也应该足够复杂才能保证安全。
打开文件 /etc/xl2tpd/l2tp-secrets ,填入你的密码:
* * exampleforchallengestring

打开文件 /etc/ppp/options.xl2tpd,做如下配置:

refuse-mschap-v2refuse-mschapms-dns 8.8.8.8ms-dns 8.8.4.4asyncmap 0authcrtsctsidle 1800mtu 1200mru 1200lockhide-passwordlocal#debugname l2tpdproxyarplcp-echo-interval 30lcp-echo-failure 4

ms-dns 选项设置要给客户端分配的 DNS 服务器,当客户端连接时,就会被分配这些 DNS。如果要加入多个 DNS,就每行一个,分别写几行。
如果你要给客户端推送wins设置,可以分别设置如下选项。
mtu 和 mru 按照openswan.org的说法,减小 mru/mtu 的大小非常重要。因为 l2tp/ipsec 会封装几次,可能导致性能下降,减小这个配置的大小可以一次性传输全部的包。
proxyarp 可以将连接的客户端的IP地址和以太网地址加入的系统的ARP表中。这会影响到本地局域网内其它客户端。
name l2tpd 用在 PPP验证文件里面。
添加用户
打开文件 /etc/ppp/chap-secrets ,做如下配置:
user1 l2tpd chooseagoodpassword *user2 * chooseagoodpassword *

每行包括如下字段:
客户端 = 用户名称
服务器 = 在上面的 /etc/ppp/options.xl2tpd 定义的名字
密码 = 用户密码,你应该设置一个足够复杂的密码
IP 地址 = * 表示用户可以从任何地址连接,否则设置用户只能从特定的地址连接
注意:你可以添加多个用户。
IP转发
打开文件 /etc/sysctl.conf,修改配置:
net.ipv4.ip_forward=1

载入新的配置:
sysctl -p

启动VPN
sudo /etc/init.d/ipsec.* restartsudo /etc/init.d/xl2tpd restart

排除故障
如果遇到了问题,以下命令可以帮助你找到问题:
sudo tcpmp -i ppp0sudo tail -f /var/log/auth.logsudo tail -f /var/log/syslog

你可以可以在服务器上使用如下命令来监控:
sudo tcpmp -i eth0 host aaa.bbb.ccc.ddd and not port ssh
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
网上退税怎么退 如何申请退税? 十多年前看的有部僵尸片电影中间一个僵尸被追到一个城里躺躲在一副水... 什么什么鲜花? 芳香的什么、明亮的什么填名词 芳香的什么 这里的"为"的繁体字对吗?手机上是为和为 塑料保鲜盒概述 红米K60Ultra跑分怎么样 红米K60Ultra最新实测跑分数据一览 性价为纲 极致体验——Redmi K60 Ultra体验测评 为什么k50u之后,至尊版再无骁龙芯?红米是要越来越懵逼了 苹果6plns如何删除共享照片流 吃面食上火,是缺少什么元素?还是有其他的隐患呢?该怎么改善呢? 每天吃馒头有什么坏处? 吃馒头会上火吗 河北省沧州市南大港有人才引进在什么时候 治疗车放治疗室还是处置室 万达地产上市了吗 除杂时加入氟化铵的目的 氟化铵溶于石油醚吗 为什么氟化钾溶液和氟化氢铵反应 蓝色的氟化氢铵是什么 西樵山怎么去西樵山游玩路线攻略 西樵山景区旅游全攻略门票-交通指南 西樵山风景名胜区攻略(门票+开放时间+景区介绍) 西樵山风景名胜区介绍 想买纯手工油画放在家里做装饰,南昌哪里有装饰画? 江西南昌市哪里有卖数字油画的呀,在什么地方? 最近很火的一句话:“我爱你,我很爱你” 南昌哪里有油画买,家里最近装修,想知道在哪有较多油画买,最好介绍性价比高些的店家。先谢谢了! 油画去哪买 touch4白苹果了,要重刷,但是itunes里面重刷只能刷到4.3.5,刷完后能降级吗? 推荐凹凸粉必备软件 士林保湿润肤霜可以擦脸吗 VS2008安装后,启动时提示初始化 Microsoft Visual SourceSafe 源代码管理提供程序时失败。 点VS 进不去出现应用程序初始化(0xc00000ba)失败怎么办啊?那个电脑高手帮忙解决哈如题 谢谢了 win 7 32位 安装好vs2008时 工具箱初始化失败,导致vs2008关闭,如何解决 vs2008调试c程序时,变量定义初始化不成功,显示变量需要堆栈帧,难道编译器不是自动分配的吗? VS2008编写C#windows应用程序在没有安装.net framework的电脑无法打开 1.植物开花的季节和什么有关。 2.菊花为什么会在秋天开花 ps如何还原pp10 信贷政策对房地产的影响? 联想笔记本Y470的A卡版本 玩lol一开始帧率很高画面非常流畅,但是之后有一次游戏突然卡了一下, 我的联想y470笔记本玩LOL的时候FPS很低,平时人多激烈点就卡,团战的时候更是会掉到10~20左右,卡的不行 y470 联想玩游戏怎么样 凯池高压清洗机过滤网怎么拆 空调滤网如何缝 什么是网球公开赛? win10正式版怎么开启毛玻璃特效 照常的意思是什么 三星笔记本电脑NPr458L可以装W10系统么?