CentOS 7搭建OpenVPN服务完整指南,从零开始构建安全远程访问通道

dfbn6 2026-04-18 VPN翻墙 4 0

在当前企业网络架构中,远程办公和跨地域访问已成为常态,为了保障数据传输的安全性与私密性,虚拟专用网络(VPN)技术成为不可或缺的基础设施,作为Linux系统中的经典发行版,CentOS 7因其稳定性和广泛支持,被众多IT运维人员用于搭建企业级VPN服务,本文将详细介绍如何在CentOS 7上使用OpenVPN搭建一个功能完备、安全性高的个人或小型企业级VPN服务器。

确保你的CentOS 7系统已更新至最新状态,通过命令行执行以下指令:

sudo yum update -y

安装OpenVPN及相关依赖包,我们推荐使用EPEL仓库来获取更多可用软件包:

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

完成安装后,配置证书颁发机构(CA),OpenVPN使用SSL/TLS加密通信,因此需要一套完整的PKI体系,复制默认配置文件到指定目录:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

编辑vars文件,根据实际需求修改国家代码、组织名称等信息,然后执行以下命令生成CA证书和密钥:

source ./vars
./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
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

注意:你需要先生成ta.key文件(使用openvpn --genkey --secret ta.key),并将其放在/etc/openvpn/目录下。

启动并启用OpenVPN服务:

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

配置防火墙允许UDP端口1194通过:

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

为了让客户端连接,需将ca.crtclient1.crtclient1.keyta.key打包发送给用户,客户端配置文件示例如下:

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

至此,你已在CentOS 7上成功部署了一个基于OpenVPN的安全远程访问解决方案,该方案支持多用户接入、强加密通信,并可通过日志监控实现基础审计,建议定期轮换证书和密钥以提升安全性,对于生产环境,还应结合IPTables规则、Fail2Ban防护及日志分析工具进一步加固系统。

CentOS 7搭建OpenVPN服务完整指南,从零开始构建安全远程访问通道

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