在企业网络和远程办公场景中,虚拟私人网络(VPN)已成为保障数据安全传输的重要工具,对于运行 CentOS 7 的服务器用户而言,OpenVPN 是一个成熟、稳定且开源的解决方案,特别适合用于搭建点对点或点对多点的安全隧道,本文将详细介绍如何在 CentOS 7 上安装、配置并测试 OpenVPN 服务,包括生成证书、设置服务器端参数、启动服务以及配置客户端连接。

确保你拥有一个公网 IP 地址的 CentOS 7 服务器,并已通过 SSH 登录为 root 用户,执行以下命令更新系统软件包:

yum update -y

接着安装 EPEL 源(如果尚未安装),以便获取更多软件包:

yum install epel-release -y

然后安装 OpenVPN 及其依赖项:

yum install openvpn easy-rsa -y

OpenVPN 使用 Easy-RSA 工具来管理 PKI(公钥基础设施)证书,这是实现加密通信的关键,复制 Easy-RSA 配置文件到默认目录:

cp -r /usr/share/easy-rsa/ /etc/openvpn/
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 证书:

./clean-all
./build-ca

接着生成服务器证书和密钥:

./build-key-server server

然后生成客户端证书(可为多个客户端生成不同证书):

./build-key client1

生成 Diffie-Hellman 参数(用于密钥交换):

./build-dh

所有证书和密钥已生成完毕,将它们复制到 OpenVPN 配置目录:

cp keys/ca.crt keys/server.crt keys/server.key keys/dh2048.pem /etc/openvpn/

创建服务器配置文件 /etc/openvpn/server.conf如下:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh 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
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

该配置启用 UDP 协议、使用 TUN 设备、分配私有 IP 段给客户端,并推送 DNS 和路由规则,确保客户端流量通过 VPN 路由。

启用 IP 转发功能(使服务器能转发客户端请求):

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p

配置防火墙允许 OpenVPN 流量(若使用 firewalld):

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

启动 OpenVPN 服务并设为开机自启:

systemctl start openvpn@server
systemctl enable openvpn@server

至此,服务器端配置完成,客户端可通过 OpenVPN 客户端软件(如 OpenVPN Connect 或 GUI 版)导入证书和配置文件进行连接,客户端需包含 client.ovpn 文件,其中包含服务器地址、CA 证书、客户端证书与密钥路径。

通过上述步骤,你可以在 CentOS 7 上成功部署一个功能完整的 OpenVPN 服务,满足远程访问内网资源的安全需求,建议定期备份证书并监控日志以保障长期稳定运行。

CentOS 7 系统下配置 OpenVPN 服务详解,从安装到客户端连接全流程指南  第1张

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