在现代企业网络环境中,远程访问内网资源已成为常态,无论是远程办公、跨地域协作还是运维管理,一个稳定、安全的虚拟专用网络(VPN)解决方案至关重要,本文将详细介绍如何在 CentOS 7.2 操作系统上搭建 OpenVPN 服务,实现加密隧道连接,确保数据传输的安全性和私密性。
准备工作
首先确认你的服务器环境满足以下条件:
- CentOS 7.2 系统(建议使用最小化安装,避免冗余服务干扰)
- 公网IP地址(用于外部客户端连接)
- root 权限或 sudo 权限
- 防火墙开放端口(默认为 UDP 1194)
- 可选:域名绑定(便于证书配置和客户端连接)
安装 OpenVPN 和 Easy-RSA 工具
OpenVPN 是开源的 VPN 解决方案,支持多种认证方式(如用户名密码、证书),安全性高,我们通过 yum 安装:
sudo yum update -y sudo yum install epel-release -y sudo yum install openvpn easy-rsa -y
安装完成后,复制模板配置文件到 /etc/openvpn/ 目录,并生成 CA 根证书和服务器证书:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa vi vars # 修改变量,如国家、组织名称等(可按需修改)
编辑 vars 文件时,建议设置:
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@mycompany.com"
然后执行初始化和签发操作:
./clean-all ./build-ca # 生成 CA 根证书 ./build-key-server server # 生成服务器证书 ./build-dh # 生成 Diffie-Hellman 参数
配置 OpenVPN 服务
创建主配置文件 /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 转发与防火墙规则
为了使客户端能访问内部网络,需要开启 IP 转发:
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p
配置 iptables 规则:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -A INPUT -p udp --dport 1194 -j ACCEPT service iptables save systemctl restart iptables
启动 OpenVPN 服务
systemctl enable openvpn@server systemctl start openvpn@server systemctl status openvpn@server
生成客户端证书与配置
在服务器上为每个客户端生成唯一证书:
cd /etc/openvpn/easy-rsa ./build-key client1
将以下文件打包发送给客户端(或通过安全渠道传输):
- ca.crt(CA 根证书)
- client1.crt(客户端证书)
- client1.key(客户端私钥)
- ta.key(TLS 验证密钥)
客户端配置文件(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 GUI 客户端(Windows)或 Linux 命令行工具连接
- 查看日志:
journalctl -u openvpn@server.service - 若连接失败,检查防火墙、证书是否过期、IP 转发是否生效
通过以上步骤,你可以在 CentOS 7.2 上成功部署一个功能完整的 OpenVPN 服务,实现安全、可靠的远程访问,此方案适用于小型企业、远程办公或开发测试场景,具有良好的扩展性和稳定性,建议结合双因素认证(如 Google Authenticator)进一步提升安全性。

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

