如何在Ubuntu下配置L2TP VPN

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Ubuntu下配置L2TP VPN相关的知识,希望对你有一定的参考价值。

安装软件包
1.sudo apt-get install xl2tpd openswan ppp
IPSec / Openswan
打开 /etc/ipsec.conf 文件,做如下配置:

1.config setup
2.nat_traversal=yes
3.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
4.# 这里包含的网络地址允许配置为远程客户端所在的子网。换句话说,
# 这些地址范围应该是你的NAT路由器后面的客户端的地址。
5.oe=off
6.protostack=netkey
7.conn L2TP-PSK-NAT
8.rightsubnet=vhost:%priv
9.also=L2TP-PSK-noNAT
10.conn L2TP-PSK-noNAT
11.authby=secret
12.pfs=no
13.auto=add
14.keyingtries=3
15.rekey=no
16.# Apple 的 ios 不会发送 delete 提醒,
# 所以我们需要通过死亡对端(dead peer)检测来识别断掉的客户端
17.dpddelay=30
18.dpdtimeout=120
19.dpdaction=clear
20.# 设置 ikelifetime 和 keylife 和 Windows 的默认设置一致
21.ikelifetime=8h
22.keylife=1h
23.type=transport
24.# 替换 IP 地址为你的本地IP (一般是,私有地址、NAT内的地址)
25.left=x.x.x.x
26.# 用于升级过的 Windows 2000/XP 客户端
27.leftprotoport=17/1701
28.# 要支持老的客户端,需要设置 leftprotoport=17/%any
right=%any
29.rightprotoport=17/%any
30.# 强制所有连接都NAT,因为 iOS
31.forceencaps=yes
注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"应该顶着行头写,而其它行应该以8个空格缩进。

打开 /etc/ipsec.secrets,配置:

1.x.x.x.x %any: PSK "somegoodpassword"
这里x.x.x.x 替换为你的服务器的IP地址,并设置一个复杂的密码。

启动 IPSEC 服务:

1./etc/init.d/ipsec start
使用如下命令确认 ipsec 是否工作正常:

1.sudo ipsec verify
应该没有任何错误才行:

1.Checking your system to see ifIPsec got installed and started correctly:
2.Version check and ipsec on-path [OK]
3.LinuxOpenswan U2.6.28/K2.6.32-32-generic-pae (netkey)
4.CheckingforIPsec support in kernel [OK]
5.NETKEY detected, testing for disabled ICMP send_redirects [OK]
6.NETKEY detected, testing for disabled ICMP accept_redirects [OK]
7.Checking that pluto is running [OK]
8.Pluto listening for IKE on udp 500[OK]
9.Pluto listening for NAT-T on udp 4500[OK]
10.Checkingfor\'ip\' command [OK]
11.Checkingfor\'iptables\' command [OK]
12.OpportunisticEncryptionSupport[DISABLED]
在 /etc/init.d 下创建一个名为 ipsec.vpn 的文件,内容如下:

1.case"$1"in
2.start)
3.echo "Starting my Ipsec VPN"
4.iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24-j MASQUERADE
5.echo 1>/proc/sys/net/ipv4/ip_forward
6.for each in/proc/sys/net/ipv4/conf/*
7.do
8.echo 0 > $each/accept_redirects
9.echo 0 > $each/send_redirects
10.done
11./etc/init.d/ipsec start
12./etc/init.d/xl2tpd start
13.;;
14.stop)
15.echo "Stopping my Ipsec VPN"
16.iptables --table nat --flush
17.echo 0 > /proc/sys/net/ipv4/ip_forward
18./etc/init.d/ipsec stop
19./etc/init.d/xl2tpd stop
20.;;
21.restart)
22.echo "Restarting my Ipsec VPN"
23.iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
24.echo 1 > /proc/sys/net/ipv4/ip_forward
25.for each in /proc/sys/net/ipv4/conf/*
26.do
27.echo 0 > $each/accept_redirects
28.echo 0 > $each/send_redirects
29.done
30./etc/init.d/ipsec restart
31./etc/init.d/xl2tpd restart
32.;;
33.*)
34.echo "Usage: /etc/init.d/ipsec.vpn start|stop|restart"
35.exit 1
36.;;
37.esac
这会配置防火墙转发。记得修改上面文件的本地IP地址池10.152.2.0/24为你自己的。

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

1.sudo chmod 755 ipsec.vpn
禁止默认的 ipsec 服务脚本运行:

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

1.sudo update-rc.d ipsec.vpn defaults
参考技术A 百度搜酷盛,他们主页有这个的图文教程。你可以去看看 参考技术B apt-get install ipsec*

如何在Ubuntu下配置L2TP VPN

参考技术A 安装软件包
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 ifIPsec got installed and started correctly:
Version check and ipsec on-path [OK]
LinuxOpenswan U2.6.28/K2.6.32-32-generic-pae (netkey)
CheckingforIPsec 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]
Checkingfor'ip' command [OK]
Checkingfor'iptables' command [OK]
OpportunisticEncryptionSupport[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

以上是关于如何在Ubuntu下配置L2TP VPN的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ubuntu下配置L2TP VPN

如何在Ubuntu下配置L2TP VPN

如何在Ubuntu下配置L2TP VPN

如何在Ubuntu下配置L2TP VPN

如何在Ubuntu下配置L2TP VPN

如何在Ubuntu下配置L2TP VPN