如何在 Zentyal 3.4 PDC 上安装和配置 OpenVPN 服务器?

linuxoperating systemopen source

OpenVPN 是一款流行且广泛使用的开源 VPN 解决方案,可实现对网络资源的安全远程访问。Zentyal 3.4 是一个 Linux 发行版,为中小型企业提供完整的服务器平台。本文将讨论如何在 Zentyal 3.4 PDC 上安装和配置 OpenVPN 服务器。

步骤 1:安装 OpenVPN

第一步是在您的 Zentyal 服务器上安装 OpenVPN。打开终端并输入以下命令:

sudo apt-get update
sudo apt-get install openvpn

步骤 2:生成证书和密钥

OpenVPN 使用证书和密钥来验证客户端和服务器的身份。

为了生成这些证书和密钥,我们将使用 OpenVPN 提供的 EasyRSA 脚本。
cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
sudo ./clean-all
sudo ./build-ca
sudo ./build-key-server server

第一个命令将目录更改为 EasyRSA 脚本所在的位置。第二个命令清除所有现有的密钥和证书。第三个命令生成证书颁发机构。最后,第四个命令生成服务器证书和密钥。

步骤 3:配置 OpenVPN

下一步是配置 OpenVPN。使用以下命令创建一个新的配置文件:

sudo nano /etc/openvpn/server.conf

将以下几行添加到该文件中:

port 1194
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

保存文件并退出。

步骤 4:配置防火墙

下一步是配置防火墙以允许 OpenVPN 流量。您需要打开 UDP 端口 1194。为此,请运行以下命令:

sudo ufw allow 1194/udp
sudo ufw enable

步骤 5:启动 OpenVPN

使用以下命令启动 OpenVPN 服务:

sudo service openvpn start

步骤 6:配置客户端

最后一步是配置客户端以连接到 OpenVPN 服务器。为此,您需要向客户端提供以下文件:

ca.crt
client.crt
client.key

您可以使用任何 OpenVPN 客户端软件连接到服务器。只需将这些文件导入客户端软件,然后使用服务器的 IP 地址连接到服务器即可。

配置 OpenVPN(更详细)

让我们仔细看看我们在步骤 3 中添加到 server.conf 文件中的选项:

  • port 1194 - 此项指定 OpenVPN 用于接收传入连接的端口。默认情况下,OpenVPN 使用 UDP 端口 1194。

  • proto udp - 此项指定 OpenVPN 应使用 UDP 协议进行数据传输。由于 UDP 开销更低且更不容易被防火墙阻止,因此 VPN 流量通常优先选择 UDP 而不是 TCP。

  • dev tun - 这指定 OpenVPN 应使用虚拟隧道接口而不是物理网络接口。

  • ca /etc/openvpn/keys/ca.crt - 这指定了我们在步骤 2 中生成的证书颁发机构文件的位置。证书颁发机构用于验证服务器和客户端证书的真实性。

  • cert /etc/openvpn/keys/server.crt - 这指定了我们在步骤 2 中生成的服务器证书的位置。服务器证书用于向客户端验证服务器身份。

  • key /etc/openvpn/keys/server.key - 这指定了服务器私钥的位置,该私钥用于解密传入的 VPN 数据包。流量。

  • dh /etc/openvpn/keys/dh1024.pem - 这指定了 Diffie-Hellman 参数文件的位置,该文​​件用于初始连接期间的密钥交换。

  • server 10.8.0.0 255.255.255.0 − 这指定了将用于 VPN 客户端的虚拟网络的 IP 地址和子网掩码。在本例中,我们使用的是 10.8.0.0/24 子网。

  • ifconfig-pool-persist ipp.txt - 此配置指定 OpenVPN 将存储分配给客户端的 IP 地址的文件。

  • keepalive 10 120 - 此配置指定 OpenVPN 向客户端发送 keepalive 数据包的间隔,以确保连接保持活动状态。

  • comp-lzo - 此配置启用 VPN 流量压缩,以减少带宽使用。

  • persist-key - 此配置指示 OpenVPN 在重启后保留服务器的私钥。

  • persist-tun - 此配置指示 OpenVPN 在重启后保留虚拟隧道接口。

  • status openvpn-status.log - 指定 OpenVPN 连接和性能信息日志的保存位置。

  • verb 3 - 设置 OpenVPN 日志输出的详细程度。值越高,日志越详细。

配置客户端(更详细)

要连接到 OpenVPN 服务器,客户端需要导入以下文件:

  • ca.crt - 这是在步骤 2 中生成的证书颁发机构文件。它用于验证服务器和客户端证书的真实性。

  • client.crt - 这是在步骤 2 中生成的客户端证书。它用于向服务器验证客户端身份。

  • client.key - 这是客户端的私钥,用于加密传出的 VPN 流量。

大多数 OpenVPN 客户端软件都提供导入这些文件并配置连接设置的方法。某些客户端可能还需要其他配置选项,例如服务器的 IP 地址和端口号。

使用防火墙规则保护 OpenVPN

我们已将防火墙配置为允许 UDP 端口 1194(OpenVPN 使用的端口)上的入站流量。但是,务必确保正确配置防火墙,以限制只有授权用户和设备才能访问。

一种方法是设置防火墙规则,仅允许来自已知 IP 地址或子网的入站流量。例如,您可以创建一条规则,仅允许来自公司办公室 IP 地址的 OpenVPN 入站流量。

要在 Zentyal 上设置防火墙规则,您可以使用基于 Web 的管理界面。转到"安全">"防火墙",然后单击"添加新规则"以创建新规则。您可以指定源 IP 地址或子网、目标端口(OpenVPN 为 1194)以及要执行的操作(允许或拒绝)。

创建规则后,请务必将其应用到相应的网络接口或区域(例如,如果您接受来自 Internet 的传入连接,则应用到"外部")。

启用双因素身份验证

增强 OpenVPN 连接安全性的另一种方法是启用双因素身份验证 (2FA)。这要求用户除了用户名和密码之外,还需要提供第二种身份验证方式,例如智能手机应用程序生成的一次性代码或物理令牌。

要在 OpenVPN 服务器上启用 2FA,您需要使用支持所选 2FA 方法的插件或模块。例如,OpenVPN Access Server 内置了对 Google Authenticator 和其他 2FA 方法的支持。

安装并配置 2FA 插件后,您需要更新 OpenVPN 服务器配置,以要求客户端连接使用 2FA。这通常需要在 server.conf 文件中添加一个额外的配置选项,例如:

auth-user-pass-optional
auth-token

这会指示 OpenVPN 要求同时使用用户名/密码和双因素身份验证 (2FA) 令牌进行身份验证。您还需要更新客户端配置以包含 2FA 令牌。

监控 OpenVPN 性能

最后,监控 OpenVPN 连接的性能非常重要,以确保其满足您的需求并排查出现的任何问题。

OpenVPN 包含内置的日志记录和监控功能,例如状态日志和实时统计信息。您还可以使用第三方监控工具来收集和分析 OpenVPN 性能指标。

一些有用的监控性能指标包括:

  • 连接速度和延迟

  • 带宽使用情况

  • 并发连接数

  • 错误率和错误信息

  • 服务器和客户端 CPU 及内存使用情况

通过监控这些指标,您可以识别并解决性能问题,避免影响用户或导致服务中断。

结论

本文讨论了如何在 Zentyal 3.4 PDC 上安装和配置 OpenVPN 服务器。OpenVPN 是一款功能强大且灵活的 VPN 解决方案,可提供对网络资源的安全远程访问。按照本文所述的步骤,您可以轻松地在 Zentyal 服务器上设置自己的 OpenVPN 服务器。


相关文章


有用资源