行业知识
如何在Debian/Ubuntu服务器上架设L2TP/IPSecVPN
Oct.27.2024
在Debian/Ubuntu服务器上架设L2TP/IPSec VPN可以通过以下步骤完成:
1. 安装必要的软件
首先,使用root用户登录服务器,并确保系统已经安装了以下软件:
- StrongSwan:用于配置IPSec VPN连接。
- xl2tpd:用于配置L2TP连接。
如果您的系统上没有这些软件,请使用以下命令来安装:
```
apt update
apt install strongswan xl2tpd
```
2. 配置IPSec
创建并编辑/etc/ipsec.conf文件,添加以下内容:
```
config setup
charondebug="ike 1, knl 1, cfg 0"
conn %default
keyexchange=ikev1
keyingtries=5
ikelifetime=60m
keylife=20m
dpddelay=10s
dpdtimeout=20s
dpdaction=clear
closeaction=restart
# 强制DH算法为组2
ike=aes256-sha1-modp1024!
conn l2tp-psk
# 定义双方的IP地址
left=%any
leftsubnet=0.0.0.0/0
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
# 定义协议和算法
authby=secret
pfs=no
auto=add
```
然后创建并编辑/etc/ipsec.secrets文件,添加以下内容:
```
: PSK "your_ipsec_pre_shared_key"
```
将"your_ipsec_pre_shared_key"替换为您自己的IPSec pre-shared key。
3. 配置L2TP
编辑/etc/xl2tpd/xl2tpd.conf文件,并确保以下内容存在:
```
[global]
listen-addr = your_server_ip_address
[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
require chap = yes
refuse pap = yes
require authentication = yes
name = LinuxVPNserver
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
```
将"your_server_ip_address"替换为您服务器的IP地址。
然后,创建并编辑/etc/ppp/options.xl2tpd文件,添加以下内容:
```
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
```
4. 配置防火墙
如果您的服务器配置了防火墙,请确保允许需要的通信:
```
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -p udp --dport 1701 -j ACCEPT
iptables -A OUTPUT -p udp --sport 500 -j ACCEPT
iptables -A OUTPUT -p udp --sport 4500 -j ACCEPT
iptables -A OUTPUT -p udp --sport 1701 -j ACCEPT
```
然后,重新加载防火墙规则:
```
iptables-save > /etc/iptables.rules
```
编辑/etc/network/if-pre-up.d/iptables文件,添加以下内容:
```
#!/bin/sh
iptables-restore < /etc/iptables.rules
```
然后保存并退出文件,执行以下命令设置脚本权限:
```
chmod +x /etc/network/if-pre-up.d/iptables
```
5. 重启服务
完成上述配置后,重新加载StrongSwan和xl2tpd服务:
```
systemctl restart strongswan
systemctl restart xl2tpd
```
然后,启用StrongSwan和xl2tpd服务以在系统启动时自动启动:
```
systemctl enable strong