在当今远程办公和跨地域协作日益普及的背景下,虚拟私人网络(VPN)已成为企业与个人用户保障数据传输安全的重要工具,OpenVPN 是一个开源、灵活且功能强大的 VPN 解决方案,广泛应用于 Linux 系统环境,尤其是 CentOS 这类稳定的企业级发行版,本文将详细介绍如何在 CentOS 7/8 或 CentOS Stream 系统上搭建一套完整的 OpenVPN 服务器,并配置客户端连接,确保安全性与可扩展性。

第一步:准备工作
确保你有一台运行 CentOS 的物理或云服务器(推荐使用 CentOS 7.9 或 8.4+),具备公网 IP 地址,并已登录为 root 用户或拥有 sudo 权限,更新系统软件包:

sudo yum update -y

第二步:安装 OpenVPN 和 Easy-RSA
OpenVPN 依赖于 Easy-RSA 工具来管理证书和密钥,安装相关组件:

sudo yum install -y openvpn easy-rsa

第三步:配置证书颁发机构(CA)
Easy-RSA 提供了生成 PKI(公钥基础设施)所需的脚本,复制模板并初始化:

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

编辑 vars 文件,设置国家、组织名称等信息(如 CN=China, O=MyCompany):

nano vars

执行以下命令生成 CA 密钥对:

source ./vars
./clean-all
./build-ca

第四步:生成服务器证书和密钥

./build-key-server server

此步骤会提示输入 Common Name(CN),建议填写“server”。

第五步:生成 Diffie-Hellman 参数和 HMAC 消息认证码密钥

./build-dh
openvpn --genkey --secret ta.key

第六步:配置 OpenVPN 服务器
创建主配置文件 /etc/openvpn/server.conf

nano /etc/openvpn/server.conf

示例配置如下(可根据需求调整):

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.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/keys/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

配置 iptables(若使用 firewalld,请用相应命令):

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -p udp --dport 1194 -j ACCEPT

第八步:启动 OpenVPN 服务

systemctl enable openvpn@server
systemctl start openvpn@server

第九步:生成客户端证书和配置文件
在服务器端为每个客户端生成独立证书:

cd /etc/openvpn/easy-rsa
./build-key client1

将以下文件打包发送给客户端(或通过加密方式传输):

  • ca.crt
  • client1.crt
  • client1.key
  • ta.key

客户端配置文件(client.ovpn)示例:

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 上成功部署,该方案支持多用户并发连接,通过 TLS 加密保障通信安全,适合中小型企业或远程办公场景,后续可通过日志监控、访问控制列表(ACL)进一步优化安全策略,记住定期更新证书、补丁和备份配置文件,是运维的核心实践。

在 CentOS 系统上搭建安全可靠的 OpenVPN 服务器,从零开始的完整指南  第1张

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