网站搜索

如何在 Linux 中创建您自己的 IPsec VPN 服务器


使用 VPN(虚拟专用网络)有很多好处,其中包括通过加密流量来保证您的互联网安全,并帮助您从任何地方访问被阻止的内容/网站/Web 应用程序。更不用说,VPN还可以帮助您匿名浏览互联网。

在本文中,您将学习如何在 CentOS/RHELUbuntuDebian Linux 发行版。

先决条件:

  1. 来自 Linode 等任何提供商的全新 CentOS/RHELUbuntu/Debian VPS虚拟专用服务器)。

在 Linux 中设置 IPsec/L2TP VPN 服务器

为了设置 VPN 服务器,我们将使用 Lin Song 创建的一系列精彩的 shell 脚本,安装 Libreswan 作为 IPsec 服务器,以及 xl2tpd作为L2TP提供商。该产品还包括用于添加或删除 VPN 用户、升级 VPN 安装等的脚本。

首先,通过 SSH 登录您的 VPS,然后运行适合您的发行版的相应命令来设置 VPN 服务器。默认情况下,该脚本将为您生成随机 VPN 凭据(预共享密钥VPN 用户名密码),并将其显示在安装结束。

但是,如果您想使用自己的凭据,首先需要生成强密码PSK,如图所示。

openssl rand -base64 10
openssl rand -base64 16

接下来,按照以下命令所述设置这些生成的值,所有值必须放在“单引号”内,如图所示。

  • VPN_IPSEC_PSK – 您的 IPsec 预共享密钥。
  • VPN_USER – 您的 VPN 用户名。
  • VPN_PASSWORD – 您的 VPN 密码。
---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnsetup-centos -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sh vpnsetup.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnsetup -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sudo sh vpnsetup.sh

将安装的主要软件包是bind-utils、net-tools、bison、flex、gcc、libcap-ng-devel、libcurl-devel、libselinux-devel、nspr-devel、nss-devel、pam-devel、xl2tpd、 iptables-services、systemd-devel、fipscheck-devel、libevent-devel 和fail2ban(用于保护 SSH)及其各自的依赖项。然后它从源代码下载、编译和安装 Libreswan,启用并启动必要的服务。

安装完成后,将显示 VPN 详细信息,如下图所示。

接下来,您需要设置一个 VPN 客户端,对于具有图形用户界面的台式机或笔记本电脑,请参阅本指南:如何在 Linux 上设置 L2TP/Ipsec VPN 客户端。

要在移动设备(例如 Android 手机)中添加 VPN 连接,请转至设置 –> 网络和互联网 (或无线和网络 –> 更多–> 高级 –> VPN。选择添加新 VPN 的选项。 VPN 类型应设置为 IPSec Xauth PSK,然后使用上面的 VPN 网关和凭据。

如何在 Linux 中添加或删除 VPN 用户

要创建新的 VPN 用户或使用新密码更新现有 VPN 用户,请使用以下 wget 命令下载并使用 add_vpn_user.sh 脚本。

wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh
sudo sh add_vpn_user.sh 'username_to_add' 'user_password'

要删除 VPN 用户,请下载并使用 del_vpn_user.sh 脚本。

wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh
sudo sh del_vpn_user.sh 'username_to_delete'

如何升级 Linux 中的 Libreswan 安装

您可以使用 vpnupgrade.shvpnupgrade_centos.sh 脚本升级 Libreswan 安装。确保在脚本中将 SWAN_VER 变量编辑为您要安装的版本。

---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnupgrade-centos -O vpnupgrade.sh && sh vpnupgrade.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnupgrade -O vpnupgrade.sh && sudo sh  vpnupgrade.sh

如何在 Linux 中卸载 VPN 服务器

要卸载VPN安装,请执行以下操作。

在 RHEL/CentOS 上

yum remove xl2tpd

然后打开/etc/sysconfig/iptables配置文件并删除不需要的规则并编辑/etc/sysctl.conf/etc/rc.local > 文件,并删除两个文件中注释 #Added by hwdsl2 VPN script 后面的行。

在 Debian/Ubuntu 上

sudo apt-get purge xl2tpd

接下来,编辑 /etc/iptables.rules 配置 文件并删除任何不需要的规则。此外,编辑 /etc/iptables/rules.v4(如果存在)。

然后编辑/etc/sysctl.conf/etc/rc.local文件,删除注释#Added by hwdsl2 VPN script后面的行,在两个文件中。如果exit 0存在,请勿删除。

或者,您可以删除在 VPN 设置期间创建的某些文件和目录。

rm -f /etc/ipsec.conf* /etc/ipsec.secrets* /etc/ppp/chap-secrets* /etc/ppp/options.xl2tpd* /etc/pam.d/pluto /etc/sysconfig/pluto /etc/default/pluto 
rm -rf /etc/ipsec.d /etc/xl2tpd

要使用 Strongswan 设置基于 IPSec 的站点到站点 VPN,请查看我们的指南:

  1. 如何在 Debian 和 Ubuntu 上使用 Strongswan 设置基于 IPSec 的 VPN
  2. 如何在 CentOS/RHEL 8 上使用 Strongswan 设置基于 IPSec 的 VPN

至此,您自己的 VPN 服务器已启动并运行。您可以使用下面的评论表分享任何疑问或向我们提供反馈。