使用Let' s Encrypt在Debian 10 Buster上设置OpenConnect VPN服务器(ocserv)

本教程向您展示如何在Debian 10 Buster上安装OpenConnect VPN服务器以及如何运行自己的VPN服务器。 OpenConnect VPN服务器,又名 占位是Cisco AnyConnnect 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客户端并仅用两行命令连接到服务器。

sudo apt install openconnect

sudo openconnect -b vpn.mydomain.com

还有Fedora,RHEL,CentOS,Arch Linux和OpenSUSE的OpenConnect VPN客户端。使用软件包管理器轻松安装。

sudo dnf install openconnect
sudo yum install openconnect
sudo pacman -S openconnect

先决条件

要完成本教程,您需要一个虚拟专用服务器(VPS),可以免费访问被阻止的网站(海外或Internet过滤系统)。我建议使用Vultr VPS(这是我的推荐链接。如果您从推荐链接创建Vultr帐户,您将获得50美元的免费信用)。它提供了带有512M RAM的高性能KVM VPS,每月仅需2.5美元,使其成为专用VPN服务器的理想选择。安装VPS后,在其上安装Debian 10 Buster,然后按照以下步骤操作。

还需要一个域名。我从isNameCheap的生活中注册了域名。价格低廉,whois隐私保护终身免费。

注意事项:新的Vultr $ 2.5 /月计划仅包含IPv6地址。通过在纽约(NJ)数据中心选择月费为3.5美元的计划,可以同时使用IPv4和IPv6地址。

步骤1:在Debian 10 Buster上安装OpenConnect VPN服务器

通过SSH登录Debian 10 Buster服务器。下次使用 apt 安装 ocserv 来自Debian存储库的软件包。

sudo apt update
sudo apt install ocserv

安装OpenConnect VPN服务器后,它将自动启动。您可以通过以下方式检查状态:

systemctl status ocserv

样本输出:

● ocserv.service - OpenConnect SSL VPN server
   Loaded: loaded (/lib/systemd/system/ocserv.service; enabled; vendor preset: enabled
   Active: active (running) since Thu 2017-11-30 05:45:07 UTC; 11s ago
     Docs: man:ocserv(8)
 Main PID: 19235 (ocserv-main)
   CGroup: /system.slice/ocserv.service
           ├─19235 ocserv-main                                                  
           └─19242 ocserv-secm 

提示:如果上述命令没有立即完成,您可以通过按Q键重新获得对终端的控制。

如果它没有运行,则可以通过以下方式启动它:

sudo systemctl start ocserv

默认情况下,OpenConnect VPN服务器侦听TCP和UDP端口443。如果Web服务器使用了VPN服务器,则无法启动。稍后我们将解释如何在OpenConnect VPN配置文件中更改端口。

如果服务器运行防火墙,则必须打开端口80和443。例如,如果您使用的是UFW,请运行以下命令:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

第2步:在Debian 10 Buster服务器上安装Let' s加密客户端(Certbot)

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

运行以下命令以在Debian 10上安装Let's Encrypt客户端(certbot)。

sudo apt install certbot

运行以检查版本号

certbot --version

样本输出:

certbot 0.31.0

步骤3:从Let' s Encrypt获取可信的TLS证书

建议使用 standalonewebroot 获得TLS证书的插件。

独立插件

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

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:指定域名。

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

安装openconnect debian服务器

使用webroot插件

如果Debian 10 Buster服务器的Web服务器在端口80和443上侦听,则webroot插件可用于几乎所有Web服务器,并且不需要安装,因此请使用webroot插件获取证书。建议使用Web服务器证书。

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

阿帕奇

如果您使用的是Apache Web服务器,请创建一个虚拟主机 /etc/apache2/sites-available/ 目录。

sudo nano /etc/apache2/sites-available/vpn.example.com.conf

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

        
        ServerName vpn.example.com

        DocumentRoot /var/www/ocserv

保存并关闭文件。接下来,创建一个Web根目录。

sudo mkdir /var/www/ocserv

将www-data(Apache用户)设置为Web根所有者。

sudo chown www-data:www-data /var/www/ocserv -R

启用此虚拟主机。

sudo a2ensite vpn.example.com

重新加载Apache以使更改生效。

sudo systemctl reload apache2

创建并启用虚拟主机后,请运行以下命令以使用webroot插件获取Let' s加密证书:

sudo certbot certonly --webroot --agree-tos --email (email protected) -d vpn.example.com -w /var/www/ocserv/

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 /var/www/ocserv/;

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

保存并关闭文件。接下来,创建一个Web根目录。

sudo mkdir /var/www/ocserv

将www-data(Nginx用户)设置为Web根所有者。

sudo chown www-data:www-data /var/www/ocserv -R

重新加载Nginx以使更改生效。

sudo systemctl reload nginx

创建并启用虚拟主机后,请运行以下命令以使用webroot插件获取Let' s加密证书:

sudo certbot certonly --webroot --agree-tos --email (email protected) -d vpn.example.com -w /var/www/ocserv/

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

编辑ocserv配置文件。

sudo nano /etc/ocserv/ocserv.conf

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

auth = "pam(gid-min=1000)"

如果要用户使用单独的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/ssl/certs/ssl-cert-snakeoil.pem
server-key = /etc/ssl/private/ssl-cert-snakeoil.key

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

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

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

max-clients = 128

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

max-same-clients = 2

然后找到以下行:改变 falsetrue 启用可以优化VPN性能的MTU发现。

try-mtu-discovery = false

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

idle-timeout=1200
mobile-idle-timeout=1800

然后将默认域设置为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.0.0.0/8
#route = 172.16.0.0/12
#route = 192.168.0.0/16
#route = fd00::/8
#route = default

#no-route = 192.168.5.0/255.255.255.0

保存并关闭文件,然后重新启动VPN服务器以使更改生效。

sudo systemctl restart ocserv

步骤5:建立VPN帐户

接下来,使用ocpasswd工具生成一个VPN帐户。

sudo ocpasswd -c /etc/ocserv/ocpasswd username

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

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

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

sudo nano /etc/sysctl.conf

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

net.ipv4.ip_forward = 1

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

sudo sysctl -p

步骤7:在防火墙上配置IP伪装

必须在服务器防火墙上配置IP伪装,以便服务器成为VPN客户端的虚拟路由器。使用UFW,即iptables防火墙的前端。使用以下命令在Debian上安装UFW:

sudo apt install ufw

首先,您需要允许SSH流量。

sudo ufw allow 22/tcp

下一步编辑 /etc/default/ufw 文件

sudo nano /etc/default/ufw

将默认的传输策略从“ DROP”更改为“ ACCEPT”。

DEFAULT_FORWARD_POLICY="ACCEPT"

保存并关闭文件。接下来,找到服务器主网络接口的名称。

ip addr

如您所见,名称是 ens3 在我的Debian服务器上。

ocserv debian 10破坏者

要配置IP伪装,您需要将iptables命令添加到UFW配置文件中。

sudo nano /etc/ufw/before.rules

默认情况下, filter 表。将以下行添加到此文件的末尾:交换 ens3 使用您自己的网络接口名称。

# NAT table rules
*nat
:POSTROUTING ACCEPT (0:0)
-A POSTROUTING -o ens3 -j MASQUERADE

# End each table with the 'COMMIT' line or these rules won't be processed
COMMIT

在Nano文本编辑器中,您可以通过按进入文件末尾 Ctrl+W然后按 Ctrl+V

以上行将被添加(-A规则结束 路由后 链条 t 表。将虚拟专用网络链接到Internet。它还从外部隐藏了网络。因此,Internet只能显示VPN服务器的IP,而不能显示VPN客户端的IP,因此家庭路由器会隐藏专用家庭网络。

保存并关闭文件。接下来,启用UFW。

sudo ufw enable

如果以前启用了UFW,则可以使用systemctl重新启动UFW。

sudo systemctl restart ufw

现在,如果您使用以下命令在NAT表的POSTTROUTING链中列出规则:

sudo iptables -t nat -L POSTROUTING

您可以看到化妆舞会规则。

ocserv IP伪装

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

运行以下命令以打开TCP和UDP端口443:如果您为ocserv配置了其他端口,请将443更改为已配置的端口。

sudo ufw allow 443/tcp
sudo ufw allow 443/udp

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

如何在Debian 10 Buster Desktop上安装和使用OpenConnect VPN客户端

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

sudo apt 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 60, Keepalive 300
Connected as 10.10.10.139, using SSL + LZ4, with DTLS + LZ4 in progress
Continuing in background; pid 17050

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

sudo journaltcl -eu ocserv

要停止连接,请执行以下操作:

sudo pkill openconnect

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

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

如果使用网络管理器来管理VPN连接,则必须安装这些软件包。

sudo apt install network-manager-openconnect network-manager-openconnect-gnome

如果即使成功连接到VPN服务器,公用IP地址也没有更改,则IP转发或IP伪装无法正常工作。由于iptables命令中的错字,计算机无法再浏览Internet。

系统启动时自动连接

您可以创建一个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

自动续订Let' s加密证书

编辑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,请在ocserv配置文件中的以下行中注释掉(在开头添加#号):

udp-port = 443

保存并关闭文件。然后重新启动ocserv服务。

sudo systemctl restart ocserv.service

要启用TCP BBR,请参阅以下教程。

  • 如何启用TCP BBR轻松提高Debian网络性能

在我的测试中,启用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

取消注释下一行。这允许ocserv获取客户端IP地址而不是HAproxy IP地址。

listen-proxy-proto = true

然后找到以下行:

#listen-host = (IP|HOSTNAME)

更改为

listen-host = 127.0.0.1

这将导致ocserv监听127.0.0.1。这是因为以后的HAproxy需要侦听公共IP地址。保存并关闭文件。然后重新启动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 apt 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 HAProxy位于TLS客户端上,可将流量重定向到ocserv后端。
  • 什么时候 www.example.com HAProxy位于TLS客户端Hello中,将流量重定向到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配置文件的默认后端。

建议在更新网站的Let' s加密证书时使用 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

升级到最新版本的HAproxy也很有帮助。以前,从默认Debian存储库中使用HAproxy 1.6时,日志文件显示的信息不多。要安装最新版本,请运行以下命令:

sudo add-apt-repository ppa:vbernat/haproxy-1.8

sudo apt update

sudo apt install 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:-RSA:-VERS-SSL3.0:-ARCFOUR-128"

要在OpenConnect VPN服务器上禁用TLS 1.0和TLS 1.1,只需添加 -VERS-TLS1.0-VERS-TLS1.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以使更改生效。

总结

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