在现代企业网络环境中,远程访问内网资源已成为常态,无论是远程办公、跨地域协作还是运维管理,一个稳定、安全的虚拟专用网络(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)进一步提升安全性。

CentOS 7.2 系统下搭建 OpenVPN 服务详解—从零开始配置安全远程访问  第1张

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