如何在Ubuntu/CentOS/Debian上使用L2TP和Cisco IPsec设置IPSec VPN服务器
IPsec VPN可以确保对所有网络流量进行加密,以防止我们和VPN服务器之间的任何窃听。强烈建议使用此设置,特别是对于使用不安全的网络访问互联网(例如在机场,例如咖啡店,酒店客房等)的人。
设定环境
以下操作系统支持此设置
Ubuntu 18.04(Bionic),16.04(Xenial)或者14.04(Trusty),Debian 9(Stretch)或者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服务器,请改为运行以下命令
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"),在/etc/ipsec.d/passwd中指定了VPN用户。该文件的格式为:
your_vpn_username_1:your_vpn_password_1_hashed:xauth-psk your_vpn_username_2:your_vpn_password_2_hashed:xauth-psk ... ...
此文件中的密码被添加盐分和散列。此步骤可以使用例如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。