在当前企业数字化转型和远程办公普及的背景下,安全、稳定、高效的远程访问解决方案变得尤为重要,OpenVPN作为一款开源且功能强大的虚拟私人网络(VPN)软件,因其跨平台支持、强加密机制和高度可定制性,成为众多网络工程师部署私有VPN服务的首选工具,本文将详细介绍如何在 CentOS 7 系统上搭建 OpenVPN 服务器,帮助你快速构建一个安全可靠的远程接入环境。

确保你的 CentOS 7 服务器满足基本要求:至少 1GB 内存、20GB 磁盘空间,以及公网 IP 地址(用于外网访问),建议使用最小化安装版本以减少潜在风险,完成系统基础配置后,通过 SSH 登录服务器并执行以下步骤:

第一步:更新系统并安装必要依赖

sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y openvpn easy-rsa

第二步:配置 OpenVPN 证书颁发机构(CA)
OpenVPN 使用 TLS/SSL 加密通信,因此需要生成数字证书,进入 Easy-RSA 工具目录:

cd /usr/share/easy-rsa/
cp -r /usr/share/easy-rsa/3.0/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa/

编辑 vars 文件,修改如下变量(根据实际需求调整):

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

运行初始化脚本并生成 CA 密钥对:

./easyrsa init-pki
./easyrsa build-ca

第三步:生成服务器证书与密钥

./easyrsa gen-req server nopass
./easyrsa sign-req server server

第四步:生成客户端证书(每个用户单独生成)

./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

第五步:生成 Diffie-Hellman 参数和 HMAC 密钥

./easyrsa gen-dh
openvpn --genkey --secret ta.key

第六步:配置 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 ta.key 0
cipher AES-256-CBC
auth SHA256
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

第七步:启用 IP 转发与防火墙规则
编辑 /etc/sysctl.conf 启用转发:

net.ipv4.ip_forward = 1

应用更改:

sysctl -p

配置 iptables 规则(或 firewalld)允许流量转发:

iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

第八步:启动 OpenVPN 服务并设置开机自启

systemctl start openvpn@server
systemctl enable openvpn@server

将客户端证书(client1.crt, client1.key, ca.crt, ta.key)打包分发给用户,并在客户端使用 OpenVPN GUI 或命令行连接,通过上述流程,即可实现基于 OpenVPN 的安全远程访问服务,适用于企业内网访问、远程办公、多分支互联等多种场景。

此方案具备高安全性、易维护性和良好的扩展能力,是中小型企业及个人用户的理想选择,建议定期更新证书、监控日志并结合 fail2ban 等工具增强防护。

CentOS 7搭建OpenVPN服务器完整指南,从零开始构建安全远程访问网络  第1张

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