作为一位经验丰富的网络工程师,我经常被客户问到如何在Linux服务器上部署一个稳定、安全的虚拟私人网络(VPN)服务,在众多开源方案中,OpenVPN凭借其成熟的安全机制、良好的跨平台兼容性和灵活的配置选项,成为许多企业和个人用户的首选,本文将带你一步步在CentOS 7系统上完成OpenVPN服务的搭建与配置,涵盖环境准备、证书生成、服务部署、防火墙设置以及客户端连接测试等关键环节。

确保你的CentOS 7服务器已更新至最新状态,并具备公网IP地址,登录服务器后,执行以下命令更新系统包:

sudo yum update -y

安装EPEL源以获取更多可用软件包:

sudo yum install epel-release -y

安装OpenVPN及其依赖组件(包括easy-rsa用于证书管理):

sudo yum install openvpn easy-rsa -y

接下来是证书和密钥的生成,使用easy-rsa工具创建PKI(公钥基础设施)环境:

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

编辑vars文件,根据需要修改国家、组织名称等信息,然后执行:

source ./vars
./clean-all
./build-ca
./build-key-server server
./build-key client1
./build-dh

这些操作会生成服务器端证书、客户端证书、Diffie-Hellman参数等核心安全材料,完成后,将相关文件复制到OpenVPN配置目录:

cp ca.crt ca.key server.crt server.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"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

启用IP转发功能(使客户端能访问外网):

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

配置防火墙规则(使用firewalld):

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

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

systemctl enable openvpn@server
systemctl start openvpn@server

为客户端准备配置文件,将ca.crtclient1.crtclient1.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
comp-lzo
verb 3

至此,你已在CentOS 7上成功搭建了一个基于OpenVPN的安全远程访问通道,该方案不仅适用于企业内网接入,也适合家庭用户实现远程办公或访问本地NAS,记住定期更新证书、监控日志、加固SSH访问权限,才能让你的VPN服务真正“安全可靠”。

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

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速