使用“Let’s Encrypt”在CentOS 8 / RHEL 8上设置OpenConnect VPN服务器(ocserv)

本教程将向您展示如何在CentOS 8 / RHEL 8上安装OpenConnect VPN服务器以及如何运行自己的VPN服务器。 OpenConnectVPN服务器,也称为 占位是Cisco AnyConnect VPN协议的开源实现,已被企业和大学广泛使用。 AnyConnect是基于SSL的VPN协议,允许单个用户连接到远程网络。

为什么要建立自己的VPN服务器

  • 也许您是VPN服务提供商或系统管理员,并且需要设置自己的VPN服务器。
  • 使用自托管路由,因为您不信任VPN服务提供商的无日志记录策略。
  • 您可以使用VPN实施网络安全策略。例如,如果您正在运行自己的电子邮件服务器,则可以通过在防火墙上创建IP地址白名单来要求用户仅从VPN服务器的IP地址登录。因此,加强了邮件服务器以防止黑客活动。
  • 也许您只是想知道VPN服务器的工作方式。

OpenConnect VPN服务器功能

  • 轻巧快速。在测试中,我可以使用OpenConnect VPN观看YouTube 4K视频。 YouTube在我的国家(中国)被屏蔽。
  • 在Linux和大多数BSD服务器上运行。
  • 与Cisco AnyConnect客户端兼容
  • 有适用于Linux,MacOS,Windows和OpenWRT的OpenConnect客户端软件。对于Android和iOS,您可以使用Cisco AnyConnect客户端。
  • 支持密码认证和证书认证
  • 支持RADIUS计费。
  • 支持虚拟主机(多个域)
  • 设置简单

我特别喜欢这样一个事实,即与其他VPN技术相比,最​​终用户使用OpenConnect VPN非常容易和方便。如果您的计算机上安装了Linux发行版,并且想要快速取消阻止网站或隐藏IP地址,则只需运行以下命令即可连接到OpenConnect VPN服务器。

sudo openconnect -b vpn.mydomain.com

openconnect 该客户端软件可用于Debian,Ubuntu,Fedora,RHEL,CentOS,Arch Linux和OpenSUSE。易于使用软件包管理器进行安装。

sudo apt install openconnect
sudo dnf install openconnect
sudo pacman -S openconnect

先决条件

要完成本教程,您需要一个虚拟专用服务器(VPS),可以免费访问被阻止的网站(外部或Internet过滤系统)。我会推荐Vultr VPS(这是我的推荐链接。从推荐链接创建一个带有Vultr的帐户并获得50美元的免费信用)。它以每月2.5美元的价格提供带有512M RAM的高性能KVM VPS,非常适合私人VPN服务器。拥有VPS后,在其上安装CentOS 8并按照以下步骤操作。

您还需要一个域名。我已经从isNameCheap的生活中注册了我的域名。因为价格便宜,而Whois的隐私是终身免费的。

注意事项答:新的Vultr $ 2.5 /月计划仅包含IPv6地址。您可以在纽约(NJ)数据中心以每月$ 3.5的套餐使用IPv4和IPv6地址。

步骤1:在CentOS 8上安装OpenConnect VPN服务器(ocserv)

通过SSH登录到CentOS 8服务器。然后运行以下命令进行安装 ocserv 来自EPEL存储库的软件包。

sudo dnf install epel-release
sudo dnf install ocserv

步骤2:在防火墙中打开端口

CentOS防火墙是默认启用的。由于通常将ocserv配置为侦听端口443,因此运行以下命令以打开TCP和UDP端口443:

sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
sudo firewall-cmd --zone=public --permanent --add-port=443/udp

另外,要从“加密”获取TLS证书,您需要打开TCP端口80。

sudo firewall-cmd --zone=public --permanent --add-port=80/tcp

重新加载防火墙,以使更改生效。

sudo systemctl reload firewalld

步骤3:在CentOS 8服务器上安装Let’s Encrypt Client(Certbot)

gnutls-utils 附带的软件包 ocserv 我们提供了创建您自己的CA和服务器证书的工具,但可以获取并安装Let’s Encrypt证书。使用“让我们加密”证书的优点是VPN客户端软件是免费的,易于安装且可靠的。

运行以下命令以在CentOS 8上安装Let’s Encrypt客户端(certbot):

sudo dnf install certbot

要检查版本号,请运行

certbot --version

样本输出:

certbot 1.0.0

步骤4:从“加密”获取可信的TLS证书

我们建议您使用 standalonewebroot 插件以获取TLS证书。

独立插件

如果您的CentOS 8服务器未运行Web服务器,并且您的OpenConnect VPN服务器使用端口443,则可以使用独立插件从Let’s Encrypt获取TLS证书。设置DNS A记录 vpn.example.com 在您的域名注册商的网站上,运行以下命令以获取证书:

sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email [email protected] -d vpn.example.com

说明:

  • certonly:获取证书,但不要安装它。
  • --standalone:使用独立插件获取证书
  • --preferred-challenges http:执行http-01质询以使用端口80验证域。
  • --agree-tos:我同意加密使用条款。
  • --email:您的电子邮件地址将用于帐户注册和恢复。
  • -d:指定域名。

从下面的屏幕快照中可以看到,您已经成功获得了证书。

ocserv centos 8 letsencrypt

使用webroot插件

如果您的CentOS 8服务器具有一个在端口80和443上侦听的Web服务器,则建议您使用webroot插件来获取证书,因为webroot插件几乎可以与任何Web服务器一起使用。 Web服务器证书。

首先,您需要创建一个虚拟主机 vpn.example.com

阿帕奇

如果您使用的是Apache Web服务器,请创建一个虚拟主机 /etc/httpd/conf.d/ 目录。

sudo nano /etc/httpd/conf.d/vpn.example.com.conf

然后将以下行粘贴到文件中:

        
        ServerName vpn.example.com

        DocumentRoot /var/www/html/

保存并关闭文件。重新加载Apache以使更改生效。

sudo systemctl reload httpd

创建并启用虚拟主机后,运行以下命令以使用webroot插件获取Let’s Encrypt证书。

sudo certbot certonly --webroot --agree-tos --email [email protected] -d vpn.example.com -w /var/www/html/

Nginx的

如果使用的是Nginx Web服务器,请创建一个虚拟主机 /etc/nginx/conf.d/

sudo nano /etc/nginx/conf.d/vpn.example.com.conf

将以下行粘贴到文件中:

server {
      listen 80;
      server_name vpn.example.com;

      root /usr/share/nginx/html/;

      location ~ /.well-known/acme-challenge {
         allow all;
      }
}

保存并关闭文件。重新加载Nginx以使更改生效。

sudo systemctl reload nginx

创建并启用虚拟主机后,运行以下命令以使用webroot插件获取Let’s Encrypt证书。

sudo certbot certonly --webroot --agree-tos --email [email protected] -d vpn.example.com -w /usr/share/nginx/html/

步骤5:编辑OpenConnect VPN服务器配置文件

编辑ocserv配置文件。

sudo nano /etc/ocserv/ocserv.conf

首先,配置密码验证。默认情况下,启用通过PAM(可插入身份验证模块)的密码身份验证。这使您可以使用CentOS系统帐户从VPN客户端登录。可以通过注释掉以下行来覆盖此行为:

auth = "pam"

如果希望用户使用单独的VPN帐户而不是系统帐户登录,则需要通过添加以下行来启用密码文件的密码验证:

auth = "plain[passwd=/etc/ocserv/ocpasswd]"

编辑此配置文件后,检查如何使用它 ocpasswd 生成工具 /etc/ocserv/ocpasswd 该文件包含用户名和编码密码的列表。

注意事项:Ocserv支持客户端证书身份验证,但“加密”不颁发客户端证书。如果要启用证书身份验证,则必须设置自己的CA来颁发客户端证书。

然后,如果您不希望ocserv使用TCP和UDP端口443(使用端口443的Web服务器),请查找以下两行并更改端口号:否则,保持原样。

tcp-port = 443
udp-port = 443

接下来,找到这两行:您需要更改它们。

server-cert = /etc/pki/ocserv/public/server.crt
server-key = /etc/pki/ocserv/private/server.key

将默认设置替换为对服务器证书和服务器密钥文件进行加密的路径。

server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem

我们建议您启用LZ4压缩。因此,取消注释以下行:

compression = true

接下来,设置最大客户端数。默认值为16。设置为零表示无限。

max-clients = 0

设置用户可以同时登录的设备数。预设值为2。设置为零表示无限。

max-same-clients = 0

接下来,找到以下行:改变 falsetrue 启用MTU发现以优化VPN性能。

try-mtu-discovery = true

您可以使用以下两个参数来设置客户端在断开连接之前可以保持空闲状态的时间。如果客户端无限期保持连接,请注释掉这两个参数。

idle-timeout=1200
mobile-idle-timeout=2400

然后更改默认域 vpn.example.com

default-domain = vpn.example.com

默认的IPv4网络配置如下:由于大多数家用路由器还设置了IPv4网络范围,因此造成了问题。 192.168.1.0/24

#ipv4-network = 192.168.1.0
#ipv4-netmask = 255.255.255.0

您可以使用其他私有IP地址范围(例如10.10.10.0/24)来避免IP地址冲突,因此请取消注释上述两行, ipv4-network

ipv4-network = 10.10.10.0

然后取消注释以下行以通过VPN隧道传输所有DNS查询:

tunnel-all-dns = true

更改DNS解析器地址。您可以使用Google的公共DNS服务器。

dns = 8.8.8.8
dns = 8.8.4.4

或Cloudflare的公共DNS服务器。

dns = 1.1.1.1
dns = 1.0.0.1

注意事项答:对于VPN服务提供商,我们建议您运行自己的DNS解析器。如果DNS解析器在同一服务器上运行,则将DNS指定为

dns = 10.10.10.1

10.10.10.1是VPN LAN中的OpenConnect VPN服务器的IP地址。这样可以消除VPN服务器与DNS解析器之间的网络延迟,从而使客户端的DNS查找略快一些。

接下来,注释掉所有路由参数(在下一行的开头添加#字符),并将服务器设置为客户端的默认网关。

#route = 10.10.10.0/255.255.255.0
#route = 192.168.0.0/255.255.0.0
#route = fef4:db8:1000:1001::/64

#no-route = 192.168.5.0/255.255.255.0

最后,向下滚动到文件末尾(在Nano文本编辑器中,按Next(下一步)转到文件末尾 Ctrl+W然后按 Ctrl+V),注释掉 user-profile 参数。对于iOS和Android上的OpenConnect客户端或Cisco AnyConnect客户端,不需要用户配置文件XML文件。

#user-profile = profile.xml

注意事项答:如果启用了用户配置文件,则在连接到OpenConnect VPN服务器时,iOS上的Cisco AnyConnect客户端会产生以下错误。

Failed to download the AnyConnect profile. Please try again.

保存并关闭文件。

步骤6:建立VPN帐户

接下来,使用ocpasswd工具创建一个VPN帐户。

sudo ocpasswd -c /etc/ocserv/ocpasswd username

系统将要求您设置用户密码,并将信息保存到 /etc/ocserv/ocpasswd 文件要重置密码,只需再次运行以上命令。

您现在可以开始 ocserv 服务。

sudo systemctl start ocserv

然后在启动时启用自动启动。

sudo systemctl enable ocserv

您可以通过以下方式检查状态:

systemctl status ocserv

样本输出:

● ocserv.service - OpenConnect SSL VPN server
   Loaded: loaded (/usr/lib/systemd/system/ocserv.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-01-03 19:04:53 CST; 15s ago
     Docs: man:ocserv(8)
 Main PID: 19851 (ocserv-main)
    Tasks: 2 (limit: 5061)
   Memory: 3.2M
   CGroup: /system.slice/ocserv.service
           ├─19851 ocserv-main
           └─19853 ocserv-sm

提示:如果上述命令没有立即结束,则可以按Q重新获得对终端的控制。

默认情况下,OpenConnect VPN服务器侦听TCP和UDP端口443。如果由Web服务器使用,则无法启动VPN服务器。稍后我们将看到如何对OpenConnect VPN服务器和Web服务器使用相同的端口。

步骤7:在Linux内核中启用IP转发

为了使VPN服务器能够在VPN客户端和Internet之间路由数据包,必须启用IP转发。编辑 sysctl.conf 文件

sudo nano /etc/sysctl.conf

将以下行添加到此文件的末尾:

net.ipv4.ip_forward = 1

保存并关闭文件。然后使用以下命令应用更改:的 -p 选项加​​载sysctl设置 /etc/sysctl.conf 文件系统重新启动后,此命令将保存更改。

sudo sysctl -p

步骤8:使用防火墙配置IP Masquerade

要在服务器防火墙上启用IP伪装,请执行以下命令:

sudo firewall-cmd --zone=public --permanent --add-masquerade
sudo systemctl reload firewalld

这使得VPN网络对于外部世界是不可见的。因此,就像隐藏私人家庭网络的家庭路由器一样,Internet只能显示VPN服务器的IP,而不能显示VPN客户端的IP。

现在,您的OpenConnect VPN服务器已准备就绪,可以接受客户端连接。

在CentOS 8 / Fedora Desktop上安装和使用OpenConnect VPN客户端

运行以下命令以在Fedora桌面上安装OpenConnect VPN命令行客户端。

sudo dnf install openconnect

在CentOS 8上,您需要启用EPEL存储库以安装客户端。

sudo dnf install epel-release
sudo dnf install openconnect

然后,您可以从命令行按如下所示连接到VPN服务器: -b 建立连接后,该标志在后台运行。

sudo openconnect -b vpn.example.com

默认情况下,openconnect客户端将请求发送到服务器上的端口443。如果为服务器配置了其他端口,则可以添加端口号。

sudo openconnect -b vpn.example.com:port-number

系统将提示您输入VPN用户名和密码。如果成功建立连接,您将看到以下消息:

Got CONNECT response: HTTP/1.1 200 CONNECTED
CSTP connected. DPD 90, Keepalive 32400
Connected as 10.10.50.139, using SSL + lz4
Continuing in background; pid 2137
Established DTLS connection (using GnuTLS). Ciphersuite (DTLS1.2)-(PSK)-(AES-256-GCM).

如果连接失败,则可以检查ocserv日志以了解原因。 (可能您未正确输入密码。)

sudo journaltcl -eu ocserv

要停止连接:

sudo pkill openconnect

要以非交互方式运行客户端,请使用以下语法:

echo -n password | sudo openconnect -b vpn.example.com -u username --passwd-on-stdin

如果与VPN服务器的连接成功,但是未更改公共IP地址,则IP转发或IP伪装无法正常工作。

系统启动时自动连接

您可以创建一个systemd服务单元,以便OpenConnect VPN客户端在引导时自动连接到服务器。

sudo nano /etc/systemd/system/openconnect.service

将以下行添加到文件中:替换红色文本。

[Unit]
  Description=OpenConnect VPN Client
  After=network-online.target
  Wants=network-online.target

[Service]
  Type=simple
  ExecStart=/bin/bash -c '/bin/echo -n password | /usr/sbin/openconnect vpn.example.com -u username --passwd-on-stdin'
  KillSignal=SIGINT
  Restart=always
  RestartSec=2

[Install]
  WantedBy=multi-user.target

保存并关闭文件。接下来,启用此服务,使其在启动时启动。

sudo systemctl enable openconnect.service

文件内容说明:

  • After=network-online.targetWants=network-online.target 网络启动后运行此服务。
  • 实际上,您可以在网络上线之前运行此服务。我们将添加 Restart=alwaysRestartSec=2 如果此服务失败,请在2秒钟后重新启动。
  • Systemd无法识别管道重定向。因为 ExecStart 对于指令,将命令括在单引号中并在Bash shell中执行它。
  • OpenConnect VPN客户端作为systemd服务运行,该服务在后台运行,无需添加。 -b 标记为 openconnect 命令
  • KillSignal 指令到系统 SIGINT 有时会发出信号 systemctl stop openconnect 发出命令。这将通过注销会话并还原DNS服务器设置和Linux内核路由表来执行干净关闭。

要立即启动此Systemd服务,请执行以下操作

sudo systemctl start openconnect

要停止此Systemd服务,请运行

sudo systemctl stop openconnect

适用于Windows和MacOS的OpenConnect GUI客户端

您可以从OpenConnect GUI Github页面下载它。

速度

OpenConnect VPN非常快。可用于在YouTube上观看4k视频。

ocserv letsencrypt

自动续订让我们加密证书

编辑root用户的crontab文件。

sudo crontab -e

每天通过在文件末尾添加以下行来运行Cron作业:如果证书在30天后过期,certbot将尝试续订证书。要获取新的证书和密钥文件,您需要在VPN服务器上重新启动ocserv服务。

@daily certbot renew --quiet && systemctl restart ocserv

最佳化

OpenConnect默认使用基于UDP的TLS协议(DTLS)进行加速,但是UDP无法提供可靠的传输。 TCP比UDP慢,但是可以提供可靠的传输。一个优化技巧是禁用DTLS,使用标准TLS(通过TCP),然后启用TCP BBR以提高TCP速度。

由于DTLS使用UDP端口443,因此可以禁用DTLS以绕过防火墙限制。标准TLS使用TCP端口443。

要禁用DTLS,请在ocserv配置文件中注释掉以下行(在开头添加#号):

udp-port = 443

保存并关闭文件。接下来,重新启动ocserv服务。

sudo systemctl restart ocserv.service

要启用TCP BBR,请参阅下一个教程。尽管是为Ubuntu编写的,但它也可以在CentOS上使用。

  • 如何启用TCP BBR轻松提高服务器网络性能

在我的测试中,启用TCP BBR的标准TLS是DTLS的两倍。

故障排除

如果使用的是OpenVZ VPS,请在VPS控制面板中启用TUN虚拟网络设备。 (如果使用的是Vultr VPS,则无需担心,因为有一个基于KVM的VPS。)

如果有任何问题,请检查OpenConnect VPN服务器上的日志。

sudo journalctl -eu ocserv.service

我将端口443更改为另一个端口,发现良好的中文防火墙阻止了此VPN连接。

使OpenConnect VPN服务器和Web服务器同时使用端口443

通常,一个端口只能使用一个进程。但是,您可以使用HAproxy(高可用性代理)和SNI​​(服务器名称指示)来强制ocserv和Apache / Nginx同时使用端口443。

首先,编辑ocserv配置文件。

sudo nano /etc/ocserv/ocserv.conf

找到以下行:

#listen-host = [IP|HOSTNAME]

更改为

listen-host = 127.0.0.1

这将导致ocserv监听127.0.0.1。这是因为以后的HAproxy需要侦听公共IP地址。

接下来,添加以下行:这使ocserv可以获取客户端IP地址而不是HAproxy IP地址。

listen-proxy-proto = true

保存并关闭文件。重新启动ocserv以使更改生效。

sudo systemctl restart ocserv

其次,除了侦听公共IP地址外,还需要确保Web服务器仅侦听本地主机。如果使用Nginx,请编辑服务器阻止文件。

sudo nano /etc/nginx/conf.d/www.example.com.conf

在SSL服务器块中,找到以下指令:

listen 443 ssl;

更改为

listen 127.0.0.2:443 ssl;

这次我告诉你 127.0.0.2:443 因为 127.0.0.1:443 已由ocserv获得。保存并关闭文件。接下来,重新启动Nginx。

sudo systemctl restart nginx

接下来,安装HAproxy。

sudo dnf install haproxy

编辑配置文件。

sudo nano /etc/haproxy/haproxy.cfg

复制以下行并将其粘贴到文件末尾。交换 12.34.56.78 使用服务器的公共IP地址。交换 vpn.example.com ocserv使用的域名 www.example.com 使用Web服务器使用的域名。

frontend https
   bind 12.34.56.78:443
   mode tcp
   tcp-request inspect-delay 5s
   tcp-request content accept if { req_ssl_hello_type 1 }

   use_backend ocserv if { req_ssl_sni -i vpn.example.com }
   use_backend nginx if { req_ssl_sni -i www.example.com }
   use_backend nginx if { req_ssl_sni -i example.com }

   default_backend ocserv

backend ocserv
   mode tcp
   option ssl-hello-chk
   server ocserv 127.0.0.1:443 send-proxy-v2

backend nginx
   mode tcp
   option ssl-hello-chk
   server nginx 127.0.0.2:443 check

保存并关闭文件。接下来,重新启动HAproxy。

sudo systemctl restart haproxy

在上述配置中,我们使用了TLS的SNI(服务器名称显示)功能来区分VPN流量和常规HTTPS流量。

  • 什么时候 vpn.example.com 在TLS客户端Hello上,HAProxy将流量重定向到ocserv后端。
  • 什么时候 www.example.com 在TLS客户端Hello中,HAProxy将流量重定向到nginx后端。
  • 如果客户端未在TLS客户端Hello中指定服务器名称,则HAproxy将使用默认后端(ocserv)。

测试此配置 openssl 工具。首先,多次执行以下命令。

echo | openssl s_client -connect your-server-IP:443 | grep subject

因为我们没有在上面的命令中指定服务器名称,所以HAproxy始终将请求传递到默认后端(ocserv),并将证书发送到客户端。然后,执行以下两个命令:

echo | openssl s_client -servername www.example.com -connect your-server-IP:443 | grep subject

echo | openssl s_client -servername vpn.example.com -connect your-server-IP:443 | grep subject

由于我们在命令中指定了服务器名称,因此HAproxy将相应地传递请求。 Cisco AnyConnect应用程序不支持TLS SNI,建议进行配置 ocserv 作为HAProxy配置文件的默认后端。

续订网站的“让我们加密”证书时,建议使用 http-01 挑战代替 tls-alpn-01 这是因为HAproxy正在侦听公用IP地址的端口443,这可能会干扰更新过程。

sudo certbot renew --preferred-challenges http-01

修复HAproxy错误

如果浏览器中未显示Nginx Web服务器,并且haproxy日志中显示以下消息(/var/log/haproxy.log

Server nginx/nginx is DOWN, reason: Socket error, info: "Connection reset by peer

backend nginx has no server available!

Layer6 invalid response

可能需要装订扩展名,因为后端Nginx Web服务器将TLS证书与OCSP一起使用。 Nginx不会在第一个HTTP请求上发送OCSP主信息。为了使其工作,请确保将以下解析器添加到您的Nginx虚拟主机配置中。

{
     ....
     ssl_trusted_certificate /etc/letsencrypt/live/www.example/chain.pem;
     ssl_stapling on;
     ssl_stapling_verify on;

    resolver 8.8.8.8;
    ....
}

保存并关闭文件。接下来,重新启动Nginx。

sudo systemctl restart nginx

还可以考虑删除HAproxy后端服务器运行状况检查。所以改变

server nginx 127.0.0.2:443 check

server nginx 127.0.0.2:443

保存并关闭文件。接下来,重新启动HAproxy。

sudo systemctl restart haproxy

如何在ocserv中禁用TLS 1.0和TLS 1.1

PCI理事会将于2018年6月30日停用TLS 1.0,主流Web浏览器将在2020年禁用TLS 1.0和TLS 1.1。您需要对VPN服务器执行相同的操作。编辑主配置文件。

sudo nano /etc/ocserv/ocserv.conf

找到以下行:

tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-VERS-SSL3.0"

要在OpenConnect VPN服务器上禁用TLS 1.0和TLS 1.1,请替换为:

tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT:-RSA:-VERS-SSL3.0:-ARCFOUR-128:-VERS-TLS1.0:-VERS-TLS1.1"

保存并关闭文件。接下来,重新启动ocserv。

sudo systemctl restart ocserv

目前,ocserv仅接受TLS 1.2。有关在ocserv中配置TLS参数的详细信息,请参见GnuTLS优先级字符串。

要检查您的OpenConnect VPN服务器是否支持TLS 1.0,请执行以下命令:

openssl s_client -connect vpn.your-domain.com:443 -tls1

检查TLS 1.1

openssl s_client -connect vpn.your-domain.com:443 -tls1_1

如果在输出中看到以下消息,则表示不支持TLS版本。

New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported

每用户或每组配置

Ocserv允许按用户和按组配置。要启用此功能,请取消注释以下两行 /etc/ocserv/ocserv.conf 文件

config-per-user = /etc/ocserv/config-per-user/
config-per-group = /etc/ocserv/config-per-group/

保存并关闭文件。接下来,创建每个用户和每个组的配置目录。

sudo mkdir /etc/ocserv/config-per-user/
sudo mkdir /etc/ocserv/config-per-group/

然后,您可以在这两个目录下创建文件。例如,创建 user1 允许自定义配置的文件 user1

sudo nano /etc/ocserv/config-per-user/user1

您也可以创建 group1 允许对指定组进行自定义配置的文件 group1

sudo nano /etc/ocserv/config-per-group/group1

您可以将以下内容添加到文件中:

route = 10.10.10.0/255.255.255.0

这意味着 user1 连接到此VPN服务器,仅访问 10.10.10.0/24 网络通过VPN服务器路由。到其他IP地址的流量将通过原始网关进行路由。使用此允许另一个VPS(虚拟专用服务器)连接到此VPN服务器。

保存并关闭文件。重新启动ocserv以使更改生效。

结论

就是这样!我希望本教程将帮助您在CentOS 8 / RHEL 8服务器上安装和配置OpenConnect VPN。与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻快讯以获取提示和技巧。保重