在当前企业网络架构日益复杂、远程办公需求激增的背景下,搭建一个稳定、安全且易于管理的虚拟私人网络(VPN)服务已成为许多组织的刚需,CentOS作为一款广泛应用于服务器环境的Linux发行版,因其稳定性高、社区支持完善,成为部署OpenVPN等开源网络服务的理想平台,本文将详细介绍如何在CentOS 7或8系统中搭建OpenVPN服务,涵盖环境准备、证书生成、配置文件设置、防火墙调整及客户端连接等全流程。

第一步:准备工作
确保你已获得一台运行CentOS 7或8的服务器,并拥有root权限,建议使用静态IP地址以避免后续配置混乱,更新系统软件包:

sudo yum update -y

第二步:安装OpenVPN及相关工具
使用yum安装OpenVPN和Easy-RSA(用于生成SSL/TLS证书):

sudo yum install openvpn easy-rsa -y

第三步:配置证书颁发机构(CA)
复制Easy-RSA模板到指定目录并初始化:

make-cadir /etc/openvpn/easy-rsa
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@example.com"

执行以下命令生成CA证书:

./clean-all
./build-ca

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

./build-key-server server

然后为每个客户端生成独立证书(client1):

./build-key client1

最后生成Diffie-Hellman参数(提升加密强度):

./build-dh

第四步:配置OpenVPN服务器
复制示例配置文件并编辑:

cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/openvpn/
vi /etc/openvpn/server.conf

关键配置项包括:

  • port 1194:监听端口(可改为你需要的端口)
  • proto udp:推荐UDP协议,性能更优
  • dev tun:创建TUN设备(路由模式)
  • ca ca.crtcert server.crtkey server.key:指向刚才生成的证书文件
  • dh dh.pem:指定Diffie-Hellman参数文件
  • server 10.8.0.0 255.255.255.0:分配给客户端的IP段
  • push "redirect-gateway def1 bypass-dhcp":强制客户端流量走VPN
  • push "dhcp-option DNS 8.8.8.8":推送DNS服务器

第五步:启用IP转发与防火墙规则
编辑sysctl.conf开启IP转发:

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

配置iptables允许转发并开放端口(如使用firewalld则用相应命令):

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 enable openvpn@server
systemctl start openvpn@server

客户端需下载ca.crt、client1.crt、client1.key三个文件,配合OpenVPN客户端软件连接。
至此,你已在CentOS上成功搭建了一个基于SSL/TLS认证的OpenVPN服务,支持多用户安全接入,适用于远程办公、站点间互联等多种场景,后续可根据业务需求扩展至双因素认证、日志审计等功能。

CentOS系统下搭建OpenVPN服务完整指南,从零开始构建安全远程访问通道  第1张

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