在 Ubuntu 22.04 上设置和配置 OpenVPN 的分步指南
本文将全面介绍如何在 Ubuntu 22.04 上设置和配置 OpenVPN 服务器,并介绍正确的安全和优化实践。.

在 Ubuntu 22.04 上设置和配置 OpenVPN 的分步指南

本文将教您如何在 Ubuntu 22.04 上安装和配置 OpenVPN 服务器。本指南涵盖各种步骤,包括安装软件包、配置防火墙和安全提示。.
0 股票
0
0
0
0

为什么要在 Ubuntu 22.04 上设置 OpenVPN?

本指南提供了一套实用且全面的设置和配置教程。 OpenVPNUbuntu 22.04 它专为系统管理员、DevOps工程师、交易员和游戏玩家设计。步骤包括安装软件包、使用EasyRSA创建PKI、配置服务器和客户端、设置防火墙(ufw/iptables)、启用路由以及安全解决方案等。 tls-crypt证书吊销列表 (CRL) 管理和使用 失败2禁止 这将是。.

先决条件

要遵循本指南,您需要以下物品:

  • 服务器 Ubuntu 22.04 拥有访问权限的用户 sudo
  • 公网 IP 地址或专用 IP 地址范围(必要时可使用 IPv4/IPv6)
  • 自由港(建议: UDP 1194 或使用自定义端口以降低被扫描的可能性)
  • 基本负载至少需要 1GB 内存;企业级应用或数百个连接需要增加资源。

第一部分——安装 OpenVPN 和 EasyRSA

首先更新软件包,然后安装 OpenVPN 和 EasyRSA。.

sudo apt update && sudo apt upgrade -y
sudo apt install -y openvpn easy-rsa

复制 EasyRSA 模板并准备 PKI:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki

第二部分——创建 CA、密钥和证书

使用 EasyRSA 创建 CA、密钥和证书的步骤:

./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
./easyrsa gen-dh
openvpn --genkey --secret /etc/openvpn/ta.key
./easyrsa gen-crl
cp pki/crl.pem /etc/openvpn/crl.pem
chmod 644 /etc/openvpn/crl.pem

服务器所需文件:

  • /etc/openvpn/server.crt
  • /etc/openvpn/server.key
  • /etc/openvpn/ca.crt
  • /etc/openvpn/dh.pem
  • /etc/openvpn/ta.key
  • /etc/openvpn/crl.pem

第三部分——配置 OpenVPN 服务器

示例配置文件 /etc/openvpn/server/server.conf 创建。以下示例是使用 AES-256-GCM 和 tls-crypt 的基本安全配置。.

port 1194
proto udp
dev tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-crypt /etc/openvpn/ta.key

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt

push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"

keepalive 10 120
cipher AES-256-GCM
auth SHA256
ncp-ciphers AES-256-GCM
persist-key
persist-tun

user nobody
group nogroup

status /var/log/openvpn/status.log
log /var/log/openvpn/openvpn.log
verb 3

crl-verify /etc/openvpn/crl.pem

尖端:

  • 使用 AES-256-GCMSHA256 身份验证 受到推崇的。.
  • 为了在交易或游戏等敏感网络上实现最小延迟, UDP 它更合适;在网络资源有限的情况下也是可行的。 TCP 或许有必要。.
  • 你可以 tls-version-min 1.2 或者 tls-version-min 1.3 此外,还要添加一份更严格的加密算法列表。.

第四部分——启用路由和NAT

必须启用转发功能并配置 NAT,才能将客户端流量转发到 Internet。.

临时启用 IPv4 转发:

sudo sysctl -w net.ipv4.ip_forward=1

为了使其永久有效:

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-openvpn.conf
sudo sysctl --system

使用 iptables 添加 NAT 规则(假设输出接口为 eth0):

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

要使规则持久生效,请使用 iptables-persistent 或 netfilter-persistent:

sudo apt install -y iptables-persistent
sudo netfilter-persistent save

如果来自 nftables 您可以使用 nft 中 NAT 的等效定义。.

UFW 配置(如果已启用)

如果来自 ufw 启用 NAT 之前,您需要使用该文件。 /etc/ufw/before.rules 编辑并添加 NAT 部分。简短示例:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

然后 /etc/default/ufw 数量 IPv4转发 到 “是的”或者使用 sysctl 命令。然后打开 OpenVPN 端口并启用 ufw:

sudo ufw allow 1194/udp
sudo ufw enable

第五部分——设置 OpenVPN 服务

运行并启用该服务(服务名称可能因发行版而异):

sudo systemctl start [email protected]
sudo systemctl enable [email protected]

查看状态和日志:

sudo systemctl status openvpn-server@server
journalctl -u openvpn-server@server -f

第六部分 — 创建带有内联证书的客户端文件 (.ovpn)

为了便于分发,请创建一个包含所有内容的 .ovpn 文件 证书/密钥 它们是内联内容。请根据生成的值替换以下示例:

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3

<ca>
-----BEGIN CERTIFICATE-----
(محتوای ca.crt)
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
(محتوای client1.crt)
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
(محتوای client1.key)
-----END PRIVATE KEY-----
</key>
<tls-crypt>
-----BEGIN OpenVPN Static key V1-----
(محتوای ta.key)
-----END OpenVPN Static key V1-----
</tls-crypt>

将此文件传输到您的 Windows、Mac 或 Linux 客户端。在 Linux 系统上,您可以使用 NetworkManager 或以下命令。 openvpn --config client.ovpn 使用。.

第 7 节 — 用户管理、证书吊销和安全

用户管理和安全包括以下内容:

  • 添加新用户: 生成密钥并像 client1 一样签名。.
  • 证书撤销(撤销): ./easyrsa revoke client1 && ./easyrsa gen-crl 然后将 crl.pem 复制到 /etc/openvpn/crl.pem 并重新加载服务器。.
  • 结合使用基于证书和用户密码的身份验证: 您可以使用 PAM 或 RADIUS,并添加 OTP/2FA 以提高安全性。.
  • 禁止失败: 安装和配置以监控日志并阻止入侵尝试。.
  • 日志管理: 降低生产环境中的日志级别,并使用 logrotate 来维护日志文件。.
sudo apt install -y fail2ban
# create a custom jail for openvpn as needed

第 8 节 — 应用技术提示和优化

针对不同情况的一些实用建议:

用于交易/外汇和加密货币

  • 选择靠近交易所或交易服务器的位置以减少往返时间(例如伦敦、法兰克福、纽约、东京)。.
  • 使用专用的 VPS 进行交易,该 VPS 具有低延迟、专用资源和防 DDoS 服务器。.
  • 使用 UDP 并设置适当的 MTU(例如 tun-mtu 1500 或更小)以避免分片。.

用于游戏

  • 选择延迟最低的服务器位置,并使用网络速度快的 VPS 或高速服务器。.
  • 通过 A/B 测试来检验 VPN 是否真的能改善路由并降低延迟。.

用于人工智能和渲染

  • 对于大数据传输,最好使用云私有网络 (VPC) 或带有 BGP 的网络级 VPN。.
  • 使用具备 10Gbps 网络带宽的服务器连接到 GPU 服务器。.

第九节——地点和基础设施比较

按地区划分的福利示例:

  • 欧洲(法兰克福、伦敦、阿姆斯特丹): 适合欧洲交易者,且交易所延迟低。.
  • 美国(纽约、新泽西、迈阿密): 适用于北美市场和对延迟敏感的负载。.
  • 亚洲(东京、新加坡、首尔): 适用于亚太市场以及该地区的游戏和人工智能服务。.

我们公司拥有超过 全球85个地点它提供 BGP 和 CDN 网络,可以有效降低延迟、提高稳定性并防止 DDoS 攻击。.

第 10 节 — 监测和维护

维护和可扩展性技巧:

  • 使用 Prometheus/Grafana 或 Zabbix 进行 OpenVPN 监控(使用导出器或日志分析)。.
  • 定期维护 CRL 并检查连接日志。.
  • 对于大量客户端,请使用负载均衡器和多个具有高可用性和共享 CA 的 OpenVPN 服务器。.

快速故障排除

  • 查看日志: sudo journalctl -u openvpn-server@server -e
  • 隧道检查: ip a 显示 tun0
  • 端口检查: sudo ss -ulpn | grep 1194
  • NAT 测试:从 VPN 客户端 ping 8.8.8.8 和服务器的公网 IP 地址。.

摘要和安全建议

主要建议:

  • 务必使用 TLS(tls-crypt)和强大的 CA。.
  • 使用强加密(AES-256-GCM)和至少 TLS 1.2。.
  • 实施撤销和 CRL 程序,以便在发生密钥泄露时移除访问权限。.
  • 在防火墙中使用 fail2ban 和速率限制规则。.
  • 别忘了监控并定期查看日志。.

基础设施和地理位置带来的好处

利用多地点部署的现成基础设施可带来诸多优势,例如降低延迟、提高稳定性以及提供DDoS防护。针对特定应用场景,我们还提供交易型VPS、游戏服务器、GPU服务器和反DDoS服务器等多种选择。.

常见问题解答

您可能也喜欢