在企业网络或远程办公场景中,使用虚拟专用网络(VPN)建立安全、加密的通信通道至关重要,对于运行 CentOS 操作系统的服务器用户而言,OpenVPN 是一个成熟、稳定且开源的解决方案,特别适合用于搭建点对点或点对多点的私有网络连接,本文将详细介绍如何在 CentOS 7/8 或 RHEL 系统上部署并配置 OpenVPN 服务,并最终实现客户端安全接入。

确保你的 CentOS 服务器已更新至最新版本,可通过以下命令完成系统升级:

sudo yum update -y

安装 OpenVPN 及其依赖组件,CentOS 的官方仓库通常包含 OpenVPN 软件包,执行如下命令即可:

sudo yum install -y openvpn easy-rsa

安装完成后,需要生成证书和密钥,这是 OpenVPN 安全通信的核心机制,Easy-RSA 工具是生成 PKI(公钥基础设施)的利器,默认路径为 /usr/share/easy-rsa,建议复制一份到 /etc/openvpn 目录并重命名为 easy-rsa

sudo cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

编辑 vars 文件(位于 /etc/openvpn/easy-rsa/vars),根据实际需求修改组织信息,如国家、省份、公司名等,这将用于后续证书签名,然后执行初始化脚本:

sudo ./clean-all
sudo ./build-ca

此步骤会生成根证书(ca.crt),作为所有客户端和服务端信任的基础。

下一步是生成服务器证书和密钥:

sudo ./build-key-server server

按提示操作,确认后生成 server.crtserver.key

随后,为客户端生成证书(可批量生成多个客户端):

sudo ./build-key client1

这将生成客户端证书和密钥文件,用于客户端身份认证。

生成 Diffie-Hellman 参数(增强密钥交换安全性):

sudo ./build-dh

创建 OpenVPN 主配置文件 /etc/openvpn/server.conf示例如下:

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3

配置完成后,启用 IP 转发并设置防火墙规则(若使用 firewalld):

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
firewall-cmd --add-port=1194/udp --permanent
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload

启动 OpenVPN 服务:

sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server

客户端连接时,需将 ca.crtclient1.crtclient1.key 三个文件打包成 .ovpn 配置文件,并通过 OpenVPN GUI 或命令行工具导入使用。

至此,你已在 CentOS 上成功搭建了基于证书认证的 OpenVPN 服务,实现了安全、可靠的远程访问能力,该方案适用于小型企业、远程运维、跨地域协作等多种场景,具备高扩展性和灵活性。

CentOS 系统下配置 OpenVPN 服务的完整指南,从安装到客户端连接  第1张

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN