随着远程办公和移动办公的普及,企业与个人用户对网络安全访问的需求日益增长,OpenVPN 是一款开源、功能强大且广泛使用的虚拟私人网络(VPN)解决方案,它支持多种加密协议、跨平台兼容性,并能有效保护数据传输的安全,本文将详细介绍如何在 CentOS 系统(以 CentOS 7 或 CentOS 8 为例)上搭建一个稳定、安全的 OpenVPN 服务器,适用于小型团队或个人使用。

第一步:准备工作
确保你有一台运行 CentOS 的服务器(物理机或云主机),并具备公网 IP 地址,登录服务器后,首先更新系统软件包:

sudo yum update -y

接着安装 EPEL 源(如果尚未安装):

sudo yum install epel-release -y

然后安装 OpenVPN 和 easy-rsa(用于证书管理):

sudo yum install openvpn easy-rsa -y

第二步:配置证书颁发机构(CA)
OpenVPN 使用 SSL/TLS 加密通信,因此需要先生成 CA 证书和私钥,进入 easy-rsa 目录并初始化 PKI(公钥基础设施):

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

编辑 vars 文件,设置你的国家、组织名称等信息(如需自定义):

nano vars
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@mycompany.com"

执行以下命令生成 CA 证书和私钥:

./clean-all
./build-ca

第三步:生成服务器证书和密钥
继续执行:

./build-key-server server

按提示输入信息,最后确认“sign”以签署服务器证书。

第四步:生成客户端证书
为每个客户端生成独立证书(示例为 client1):

./build-key client1

第五步:生成 Diffie-Hellman 参数
这是 TLS 握手过程中的关键组件,提高安全性:

./build-dh

第六步:配置 OpenVPN 服务器
复制模板配置文件:

cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/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"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
cipher AES-256-CBC
auth SHA256
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

第七步:启用 IP 转发和防火墙规则
编辑 /etc/sysctl.conf,取消注释以下行:

net.ipv4.ip_forward = 1

应用更改:

sysctl -p

配置防火墙(使用 firewalld):

firewall-cmd --permanent --add-port=1194/udp
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

第八步:启动 OpenVPN 服务

systemctl enable openvpn@server
systemctl start openvpn@server

第九步:分发客户端配置文件
创建客户端配置文件 client.ovpn包括 CA 证书、客户端证书、私钥和服务器地址:

client
dev tun
proto udp
remote your-server-ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
cipher AES-256-CBC
auth SHA256
verb 3

将该文件连同证书一起分发给客户端,即可通过 OpenVPN 客户端连接服务器。


本教程基于 CentOS 系统成功部署了 OpenVPN 服务器,提供了完整的证书体系、加密策略和网络配置,此方案可满足大多数中小型场景下的安全远程访问需求,建议定期更新证书、监控日志、实施访问控制策略以进一步提升安全性。

在 CentOS 系统上搭建安全可靠的 OpenVPN 服务器指南  第1张

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