如何使用L2TP和Cisco IPSec在Ubuntu/CentOS/Debian上设置IPsec VPN服务器

时间:2020-02-23 14:30:15  来源:igfitidea点击:

我们是否一直在努力在几分钟内在CentOS,Ubuntu和Debian Linux味道上设置IPSec VPN服务器。
将介绍最简单的方法,以便在几分钟内运行VPN服务器,我们需要做的就是提供自己的VPN凭据,让脚本处理其余部分。

IPSec VPN用于确保加密所有网络流量以防止我们与VPN服务器之间的任何窃听。
这是一个强烈推荐的设置,特别是对于使用无担保网络访问互联网的人,例如咖啡馆,Hotel Rooms e.y.c.

设置环境

以下操作系统支持此设置

Ubuntu 18.04(仿生),16.04(Xenial)或者14.04(可靠)Debian 9(延伸)或者8(Jessie)CentOS 7(X86_64)CentOS 6(X86_64)

建议使用具有更新的新安装的服务器。

更新ubuntu/debian

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo reboot

更新CentOS 7/CentOS 6

sudo yum install epel-release
sudo yum -y update
sudo reboot

这将确保我们服务器上的所有包都是最新的。

使用ubuntu/centos/debian的L2TP和Cisco IPSec设置IPsec VPN服务器

我们将使用脚本,该脚本能够在Ubuntu/CentOS/Debian Linux发行版上使用L2TP和Cisco IPsec部署部署IPSec VPN服务器。
这个脚本是由林歌写的。

在Ubuntu 18.04/Ubuntu 16.04/Debian上设置IPsec VPN服务器

在运行部署脚本之前,我们应该更新系统包。
这是一个完全自动化的IPSec VPN服务器设置,无需用户输入。

wget https://git.io/vpnsetup -O vpnsetup.sh && sudo sh vpnsetup.sh

在CentOS 7/CentOS 6上设置IPSec VPN服务器

对于Centos Server,请转而使用以下命令

wget https://git.io/vpnsetup-centos -O vpnsetup.sh && sudo sh vpnsetup.sh

完成后,VPN登录详细信息将在屏幕上随机生成并显示。
如果我们想定义自己的VPN凭据,请编辑 vpnsetup.sh在执行之前。

sudo vim vpnsetup.sh

在单引号内设置值

YOUR_IPSEC_PSK=''
YOUR_USERNAME=''
YOUR_PASSWORD=''

运行 vpnsetup.sh

sudo vpnsetup.sh

示例

** **** **** **** **** **** **** WARNING ** **** **** **** **** **** **** **** *****
The ipsec service is currently disabled. To enable this service issue:
 systemctl enable ipsec.service
** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
../../OBJ.linux.x86_64/testing/enumcheck/enumcheck -> /usr/local/libexec/ipsec/enumcheck
## Creating VPN configuration..
## Updating sysctl settings..
## Updating IPTables rules...
## Enabling services on boot...
## Starting services...
================================================
IPsec VPN server is now ready for use!
Connect to your new VPN with these details:
Server IP: 159.88.127.33
IPsec PSK: EvA6M5wDZw4kbgL8
Username: vpnuser
Password: TNotmZ7EmGyRa2CY
Write these down. You'll need them to connect!
Important notes:   https://git.io/vpnnotes
Setup VPN clients: https://git.io/vpnclients
================================================

使能够 ipsec服务开始启动

sudo systemctl enable ipsec

此部署包括 sysctl.conf优化改进性能。

# Added by hwdsl2 VPN script
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth0.rp_filter = 0
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912

所有VPN流量都封装在UDP中 - 不需要ESP协议。

管理VPN用户

默认情况下,创建了一个用于VPN登录的单个用户帐户。
如果要添加,编辑或者删除用户,请阅读IPsec VPN用户管理。

IPSec PSK(预共享密钥)存储在。 /etc/ipsec.secrets所有VPN用户都共享相同的IPSec PSK。
我们可以通过更改行来设置一个新的:

%any %any : PSK "your_new_ipsec_pre_shared_key"

对于IPSec/L2TP,将指定VPN用户 /etc/ppp/chap-secrets
此文件的格式为:

"your_vpn_username_1" l2tpd "your_vpn_password_1" *
"your_vpn_username_2" l2tpd "your_vpn_password_2" *

为了 IPsec/XAuth ("Cisco IPsec"),VPN用户已指定 /etc/ipsec.d/passwd
此文件的格式为:

your_vpn_username_1:your_vpn_password_1_hashed:xauth-psk
your_vpn_username_2:your_vpn_password_2_hashed:xauth-psk
... ...

此文件中的密码是盐渍和哈希的。
这一步可以使用e.g.这 openssl公用事业:

# The output will be your_vpn_password_1_hashed
openssl passwd -1 'your_vpn_password_1'

最后,如果我们更改为新的PSK,则重新启动服务。
对于添加,编辑或者删除VPN用户,通常不需要重启。

sudo service ipsec restart || sudo systemctl restart ipsec
sudo service xl2tpd restart || sudo systemctl restart xl2tpd

将计算机连接到VPN

最后一步是将计算机或者设备连接以使用VPN。