آموزش نصب و راه‌اندازی OpenConnect VPN Server بر روی اوبونتو 22.04 با Let's Encrypt
在 Ubuntu 22.04 上安装 OpenConnect VPN 服务器 (ocserv) 并获取 Let's Encrypt 证书的分步指南。.

如何在 Ubuntu 22.04 上安装和设置 OpenConnect 服务器 (ocserv) 以及 Let's Encrypt

本文将介绍如何在 Ubuntu 22.04 上使用 Let's Encrypt 证书设置 OpenConnect VPN 服务器 (ocserv)。本指南涵盖 VPN 服务的安装、配置、安全提示和优化。.
0 股票
0
0
0
0

 

本技术指南涵盖哪些内容?

本技术指南将一步步指导您如何设置该服务。 OpenConnect (ocserv)Ubuntu 22.04 除了接收和管理证书之外 Let's Encrypt涵盖了安全配置、防火墙和 NAT 设置、用户身份验证以及连接客户端和自动续订证书的技巧。.

对于交易、游戏或企业访问等敏感环境,选择合适的服务器位置并使用具备防DDoS保护的服务器至关重要。我们公司在全球拥有超过85个服务器位置、防DDoS服务器以及BGP网络。.

 

先决条件和地点选择

开始之前,请确保:

  • 服务器 Ubuntu 22.04 您拥有root或sudo权限。.
  • 域名(例如 vpn.example.com指的是服务器 IP 地址。.
  • 港口 80443 它们在防火墙上是开放的,可以接收 Let's Encrypt 证书。.

为什么地理位置很重要?

  • 对于交易者和游戏玩家来说,选择延迟低的地点(例如伦敦、法兰克福或东京)是首要考虑因素。.
  • 为了提高稳定性,组织可能需要多个部署了 BGP 和 CDN 的位置。.
  • 为了保障安全和稳定性,建议使用具备防 DDoS 保护功能的服务器。.

 

正在安装 ocserv 和所需软件包

首先,更新系统并安装基本软件包:

sudo apt update && sudo apt upgrade -y
sudo apt install ocserv certbot libnss3-tools -y

推荐用于运行环境的软件包:

  • ufw 或 nftables 用于防火墙管理
  • fail2ban 用于抵御暴力破解攻击
  • 如果需要测试 TLS,请使用 openssl 或 gnutls-bin。

 

获取 Let's Encrypt 证书(方法)

获得认证的两种常见途径:

方法A——使用nginx(如果您有Web服务器)

如果您使用的是 nginx,则可以启用虚拟主机并将 certbot 与 nginx 插件一起使用:

sudo apt install nginx
sudo certbot --nginx -d vpn.example.com

然后,在ocserv配置文件中,按如下方式指定证书路径:

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

方法 B — 独立运行(如果您没有 nginx)

由于 ocserv 默认监听 443 端口,因此在运行 certbot standalone 之前,必须暂时停止 ocserv 或使用 DNS 质询:

sudo systemctl stop ocserv
sudo certbot certonly --standalone -d vpn.example.com
sudo systemctl start ocserv

 

ocserv 配置 — ocserv.conf 示例

主配置文件: /etc/ocserv/ocserv.conf. 关键部分示例:

# ports
tcp-port = 443
udp-port = 443

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

# network
default-domain = vpn.example.com
dns = 1.1.1.1
dns = 1.0.0.1
route = 0.0.0.0/0
no-route = 192.168.0.0/16

# limits
max-clients = 250
max-same-clients = 2

# security and performance
keepalive = 60
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
compression = false
tls-priorities = "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2"
allow-roaming = true

重要提示: 路由 = 0.0.0.0/0 对于全隧道,请添加所需网络。对于拆分隧道,请仅添加所需网络。出于安全考虑。 压缩 = false 受到推崇的。.

 

防火墙和 NAT(IP 转发)设置

启用 IP 转发:

sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf

以下是 NAT 的 iptables 规则示例(假设出接口为 eth0,内部网络为 10.10.10.0/24):

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT

为在重启后保留规则,请使用 iptables-persistent 或在 nftables 中保存配置。.

UFW 命令示例:

sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw allow 80/tcp
sudo ufw enable

 

身份验证和用户管理

基于本地 passwd 文件的简单方法:

sudo ocpasswd -c /etc/ocserv/ocpasswd alice

您可以从 帕姆 用于 LDAP/AD 集成(配置) auth = "pam"" 在 ocserv.conf 中)。.

对于基于证书的身份验证 (x.509),请生成客户端密钥/证书:

sudo certtool --generate-privkey --outfile client-key.pem
sudo certtool --generate-certificate --load-privkey client-key.pem --outfile client-cert.pem --template client.tmpl

要添加双因素身份验证,您可以使用 libpam-google-authenticator 并设置 PAM /etc/pam.d/ocserv 使用。.

 

安全性、强化和优化

  • 限制 TLS 版本 使用 TLS优先级.
  • 禁用压缩 出于安全原因(例如犯罪)。.
  • 限制同时连接数(最大相同客户端数).
  • 启用日志记录和资源监控。.
  • 安装并配置 fail2ban 以防止重复登录尝试。.

简单的 fail2ban 设置示例:

[ocserv]
enabled = true
port = 443
filter = ocserv
logpath = /var/log/syslog
maxretry = 5

需要根据 ocserv 日志创建合适的过滤器(正则表达式)。.

 

测试和连接客户

Linux 命令行客户端 OpenConnect:

sudo apt install openconnect
sudo openconnect vpn.example.com

在 Linux 桌面上 网络管理器-openconnect 在 Windows/macOS 系统上,可以使用 OpenConnect GUI 或 Cisco AnyConnect 兼容客户端。.

查看服务状态:

sudo systemctl status ocserv
sudo journalctl -u ocserv -f

 

证书续期和维护自动化

如果您使用 nginx 或 apache 作为反向代理,certbot 通常可以在不停止服务的情况下续订证书,并在续订后重新加载 ocserv:

sudo certbot renew --deploy-hook "systemctl reload ocserv"

如果您使用的是独立版本,并且 ocserv 已在 443 端口启用,则可以使用 DNS 质询或使用前置/后置钩子:

sudo certbot renew --pre-hook "systemctl stop ocserv" --post-hook "systemctl start ocserv"

 

实用技巧和应用案例

  • 贸易: 选择距离最近的服务器以获得最低延迟;具有 443 端口和 UDP/DTLS 的交易专用 VPS 可能很有用。.
  • 赌博: 使用分流隧道技术,仅通过 VPN 发送必要的流量,从而降低游戏延迟。.
  • 人工智能与渲染: 使用同一区域的 GPU 服务器可以降低网络负载和延迟。.
  • 组织安全: 建议结合使用 LDAP/AD、双因素身份验证、监控和反 DDoS 服务器。.

我们公司提供高性能云服务、图形服务器(GPU)、交易/游戏VPS、域名注册、CDN和BGP网络。 全球85多个地点 使您能够将 VPN 部署在靠近用户的位置,并享受 DDoS 防护带来的益处。.

 

结论

本指南实际上涵盖了在 Ubuntu 22.04 上设置 OpenConnect (ocserv) 的步骤,从安装到获取 Let's Encrypt 证书、安全配置、防火墙和 NAT、身份验证、优化和续订自动化。.

通过遵守以下安全预防措施: 现代TLS禁用压缩连接限制、2FA 激活和 fail2ban 可以为团队、游戏玩家和交易员提供安全可靠的 VPN 服务。.

您可能也喜欢