在现代企业网络环境中,远程办公和安全访问内网资源已成为刚需,OpenVPN作为一种开源、跨平台的虚拟私人网络(VPN)解决方案,因其灵活性高、安全性强、易于部署而广受欢迎,对于使用CentOS操作系统的网络管理员来说,掌握如何在CentOS上搭建OpenVPN服务是一项非常实用的技能,本文将详细讲解如何在CentOS 7或8系统中从零开始配置OpenVPN服务器,实现安全的远程访问。

确保你拥有一个运行CentOS的服务器(物理机或云主机),并具备root权限,推荐使用CentOS Stream或传统版本的CentOS 7/8,因为它们对OpenVPN支持良好且社区资源丰富。

第一步:更新系统并安装必要软件包
执行以下命令更新系统并安装OpenVPN及相关依赖:

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

easy-rsa 是用于生成证书和密钥的工具,是OpenVPN认证机制的核心。

第二步:配置证书颁发机构(CA)
进入EasyRSA目录并初始化PKI(公钥基础设施):

cd /usr/share/easy-rsa/
cp -r /usr/share/easy-rsa/* /etc/openvpn/
cd /etc/openvpn/

编辑 vars 文件,设置国家、组织等基本信息,

export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@mycompany.com"

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

./easyrsa init-pki
./easyrsa build-ca

这会生成 ca.crtca.key,是后续所有客户端和服务端通信的基础。

第三步:生成服务器证书和密钥

./easyrsa gen-req server nopass
./easyrsa sign-req server server

此步骤生成服务器证书(server.crt)、私钥(server.key)以及签名文件。

第四步:生成Diffie-Hellman参数和TLS密钥

./easyrsa gen-dh
openvpn --genkey --secret ta.key

DH参数用于加密协商,ta.key是TLS-auth增强安全性所用。

第五步:配置OpenVPN服务
创建主配置文件 /etc/openvpn/server.conf示例如下:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
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

第六步:启动并启用OpenVPN服务

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

第七步:配置防火墙(如果启用了firewalld)

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

为每个客户端生成证书和配置文件,分发到客户端设备即可连接,建议使用 .ovpn 配置文件封装证书、密钥和服务器地址,简化用户操作。

通过以上步骤,你就在CentOS上成功搭建了一个功能完整、安全可靠的OpenVPN服务,它不仅可用于企业远程办公,也可用于个人隐私保护,是网络工程师必备的实战技能之一。

CentOS系统搭建OpenVPN服务详解,从零开始配置安全远程访问通道  第1张

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