在CentOS 7上搭建安全可靠的OpenVPN服务,从零开始的网络工程师实践指南

dfbn6 2026-04-02 vpn 24 0

作为一名网络工程师,我经常需要为远程办公、分支机构互联或跨地域数据传输提供安全、稳定的解决方案,在众多虚拟专用网络(VPN)技术中,OpenVPN因其开源、灵活和高度可定制的特点,成为许多企业与个人用户的首选,本文将详细记录如何在CentOS 7操作系统上部署并配置OpenVPN服务,帮助你快速构建一个稳定且安全的远程访问通道。

确保你的CentOS 7服务器已安装并更新至最新状态,执行以下命令:

sudo yum update -y

我们需要安装EPEL仓库,因为OpenVPN及相关工具包可能不在默认软件源中:

sudo yum install epel-release -y

然后安装OpenVPN及其依赖组件:

sudo yum install openvpn easy-rsa -y

安装完成后,我们进入证书颁发机构(CA)的配置阶段,OpenVPN使用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"
export KEY_CN="server"
export KEY_NAME="server"
export KEY_OU="OpenVPN"

接着运行初始化脚本并生成CA证书:

./clean-all
./build-ca

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

./build-key-server server

同样,为客户端生成证书(可以为多个客户端生成不同证书):

./build-key client1

生成Diffie-Hellman参数以增强加密强度:

./build-dh

复制生成的证书和密钥到OpenVPN主目录:

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

配置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

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

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

在防火墙中开放UDP端口1194(若启用firewalld):

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

至此,你的CentOS 7 OpenVPN服务器已经成功部署,客户端只需将ca.crtclient1.crtclient1.key导出,并按标准格式配置OpenVPN客户端即可连接。

作为网络工程师,我们不仅要实现功能,更要确保安全性,务必定期更新证书、监控日志、限制访问IP范围,并考虑结合Fail2Ban等工具进一步提升防护能力,这套方案已在多个生产环境中稳定运行多年,值得信赖。

在CentOS 7上搭建安全可靠的OpenVPN服务,从零开始的网络工程师实践指南

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