linux l2tp l2tp搭建脚本

大家好,linux l2tp相信很多的网友都不是很明白,包括l2tp搭建脚本也是一样,不过没有关系,接下来就来为大家分享关于linux l2tp和l2tp搭建脚本的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

如何在Ubuntu下配置L2TP VPN

打开/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.vpn的文件,内容如下:

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.vpn{start|stop|restart}" exit 1;;esac

这会配置防火墙转发。记得修改上面文件的本地IP地址池10.152.2.0/24为你自己的。

然后给这个文件设置可执行权限:

sudo chmod 755 ipsec.vpn

禁止默认的 ipsec服务脚本运行:

sudo update-rc.d-f ipsec remove

然后,启用我们刚才定制的这个:

sudo update-rc.d ipsec.vpn 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.vpn restartsudo/etc/init.d/xl2tpd restart

排除故障

如果遇到了问题,以下命令可以帮助你找到问题:

sudo tcpdump-i ppp0sudo tail-f/var/log/auth.logsudo tail-f/var/log/syslog

你可以可以在服务器上使用如下命令来监控:

sudo tcpdump-i eth0 host aaa.bbb.ccc.ddd and not port ssh

如何在 Debian / Ubuntu 服务器上架设 L2TP / IPSec VPN

L2TP:一个「包装」协议,本身并不提供加密和验证的功能。

IPSec:在 IP数据包的层级提供加密和验证功能,确保中间人无法解密或者伪造数据包。

本来,只用 IPSec就可以实现 VPN,Mac OS X和 Linux都支持。但是 Mac OS X和 iPhone OS都推荐使用 L2TP over IPSec,在两者的图形介面上也只能设置这个。L2TP/ IPSec是业界标准,微软也支持。而只用 IPSec的常见于 Linux-to-Linux的应用,比如将两个位于不同地区的办公室网络安全地连在一起。这多是固定 IP路由器到固定 IP路由器级别的连接,只需保证数据包不被中途截获或者伪造就可以,故使用 L2TP的意义不大。L2TP/ IPSec主要是实现所谓「Road Warrior」的设置,即用变动的客户端连固定的服务器。

Cisco的 VPN用的也是 IPSec加密,但那是一套不同于 L2TP的私有包装协议,用于提供用户管理之类的功能,因此一般都需要用 Cisco自家的 VPN客户端连接。iPhone/ iPad的 VPN设置介面中的 IPSec标签里有 Cisco的标识,就是这个原因。

Centos配置L2TP Server

为了配置 CentOS上的 L2TP服务器,您需要遵循以下步骤。首先确认 CentOS版本,例如 Linux localhost.localdomain 4.18.0-305.12.1.el8_4.x86_64。确保安装必要的软件,包括 libreswan、pppd、pptpd、xl2tpd、wget和 lsof。

接下来,通过命令行工具检查和管理服务状态。使用 `ps-ef| grep-E"(ipsec|l2tp|pptpd)"`命令查看 L2TP相关进程状态。使用 `systemctl`命令启动、停止或重启服务。

自定义配置方面,不需要修改 `/etc/ppp/options`文件。在 `/etc/ppp/chap-secrets`中设置 PPP鉴权账户和密码。`/etc/ppp/options.xl2tpd`需要依据实际情况进行配置。配置 `/etc/pptpd.conf`时,指定 PPP server的 IP地址和 DHCP分配的客户端 IP地址池。对于 `/etc/xl2tpd/xl2tpd.conf`,参考相关设置以满足需求。

对于 IPSec配置,注意在 `/etc/ipsec.conf`中配置,特别是对接 Windows 10客户端时应设置 `ikev2=no`。确保配置 `/etc/ipsec.secrets`文件以完成 IPSec的身份验证过程。

防火墙配置包括在 `/etc/sysconfig/iptables-config`中添加 iptables规则。过滤部分包括接受特定端口的流量,如接受 IPsec、L2TP和 PPP等协议的流量。在 NAT部分添加规则以实现 NAT功能,如允许客户端通过路由器访问互联网。

对于 Windows 10测试机,参照相关文档配置 L2TP客户端。如果您使用 OpenWrt,可以参考 OpenWrt Wiki来配置 IPv4和 IPv6过渡技术。

阅读剩余
THE END