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

如何在Ubuntu下配置L2TP

发布网友 发布时间:2023-11-01 10:40

我来回答

1个回答

热心网友 时间:2024-12-05 12:04

参考:http://linux.cn/article-3409-1.html

安装软件包
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

这里aaa.bbb.ccc.ddd 是你的客户端的公网地址。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
街头篮球手游中锋攻略汇总 C位攻略大全 街头篮球手游中锋有什么技巧 中锋C技巧详解 php一个表单提交数据怎么区分开,隐藏域可以吗,如果可以怎么用。 梦见牙掉光了什么预兆 梦见牙齿掉完了是什么征兆 梦见牙齿全掉了是什么预兆 梦见一口牙全部掉了是什么预兆 教师年度考核不认课的领导班子成员,干的工作不少,怎样考核办法公平... 湖北省郧西县义务教育学校绩效工资实施办法绩效工资总量和水平的... 事业单位年底是否有绩效奖金的 如何在Ubuntu下配置L2TP 前面每天他都会跟我聊天,晚上会对我说晚安,可是最近他就像消失...1 广州东到兴发广场有没有地铁 或者广州东到广园新村5 广州地铁图?6 广州地铁11号线的特点1 “更不用说,更少,更别说”用文言文怎么说15 恼羞成怒的近义词反义词238 有谁可以告诉我坐船最多可以带多少斤东西?谢谢了 恼羞成怒差不多的成语4 跟恼羞成怒相近的成语8 华为荣耀手机模式成了耳机模式怎么变? 十神含义与身旺身弱的关系 十神含义与身旺身弱的关系是什么 想知道,什么牌子的板材好?谁来说说,谢谢 ...报与发动机控制模块失去通讯现在车启动不了马达一点反应没有... 中国最大的网上图书馆38 电动牙刷品牌前十名是哪些呢,有人知道吗? 天生为王的生肖是什么?4 生活中,有些人总说自己是天生操心(受罪)的命,你怎么理解“操...4 《镇魂街》动漫第一集开头和结尾说的话是哪句?785 人各有命 天生注定 有人天生为王 有人落草为寇 脚下的路如果... 怪物猎人世界可以改全珠子吗2 兄弟们,怪物猎人世界上位装备一个怎么有两 怪物猎人世界快捷道具顺序怎么换 MHW快捷道具25 ...80之间怎么办啊,有什么方法可以让我的成绩提升到95分以上,谢谢... 怪物猎人世界 求套装搭配方法1 我是一名初中生我想学厨师,去哪里好?初中考了136分,深圳新...1 新东方烹饪学校一年多少学费?学厨师在哪里学最好 新东方烹饪学校学费价目表需要多少?9 新东方烹饪学校一年多少学费?深圳新东方烹饪学校地址在哪? ...控制模块失去通讯现在车启动不了马达一点反应没有 oppo手机微信中的小视频图片怎么取消? 15万公里的起亚k5还能开吗? 恼羞成怒近义词4 恼羞成怒近义词反义词。6 恼羞成怒是不是气急败坏的近义词?16 恼羞成怒的近义词2 农村信用社考试考几科,16 不要对不起别人在文言文里怎么说 编写matlab程序,急!!! 26个英文字母语语音要清晰慢点。要带字 大小写86