搭建CentOS 7/8上的OpenVPN服务器,从零开始配置安全远程访问

dfbn6 2026-04-10 免费VPN 9 0

在当今高度互联的网络环境中,企业或个人用户常常需要通过安全的方式远程访问内部资源,虚拟专用网络(VPN)正是实现这一目标的核心技术之一,OpenVPN 是一款开源、灵活且功能强大的SSL/TLS-based VPN解决方案,广泛应用于Linux系统中,本文将以 CentOS 7 或 8 为例,详细介绍如何在该操作系统上部署和配置 OpenVPN 服务,确保远程用户能够安全、稳定地接入内网。

确保你有一台运行 CentOS 7 或 8 的服务器,并具备 root 权限,建议使用最小化安装版本以减少不必要的软件包依赖,在开始前,请确认你的服务器已连接到公网并拥有一个静态IP地址,因为动态IP可能导致客户端无法持续连接。

第一步是更新系统并安装必要的软件包,执行以下命令:

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

easy-rsa 是用于生成证书和密钥的工具,而 openvpn 是核心服务组件。

第二步是配置证书颁发机构(CA),OpenVPN 使用 PKI(公钥基础设施)进行身份验证,因此我们需要先创建 CA 和服务器证书,进入 /etc/openvpn/easy-rsa/ 目录后,复制模板配置文件并编辑:

cd /etc/openvpn/easy-rsa/
cp vars.example vars
nano vars

vars 文件中,根据你的需求修改如下参数:

  • KEY_COUNTRY="CN"
  • KEY_PROVINCE="Beijing"
  • KEY_CITY="Beijing"
  • KEY_ORG="MyCompany"
  • KEY_EMAIL="admin@example.com"

然后执行初始化脚本和生成 CA 密钥:

./clean-all
./build-ca

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

./build-key-server server

注意:在提示输入Common Name时,必须输入 server(这是OpenVPN默认使用的名称),否则服务将无法启动。

随后生成客户端证书和密钥,例如为名为 client1 的用户创建证书:

./build-key client1

生成 Diffie-Hellman 参数(用于加密交换)和 TLS 密钥(用于认证):

./build-dh
openvpn --genkey --secret ta.key

完成证书生成后,将相关文件复制到 OpenVPN 配置目录:

cp ca.crt ca.key server.crt server.key dh2048.pem ta.key /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
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"
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

此配置启用UDP协议、分配10.8.0.0/24子网给客户端、推送DNS设置,并启用压缩以提升性能。

第四步是启用IP转发和配置防火墙规则,编辑 /etc/sysctl.conf 并取消注释:

net.ipv4.ip_forward = 1

应用更改:

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

如果使用 firewalld,则需添加端口和区域规则。

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

systemctl enable openvpn@server
systemctl start openvpn@server

你可以将客户端证书(client1.crt、client1.key、ca.crt、ta.key)打包成 .ovpn 文件,分发给用户,客户端只需导入该文件即可连接服务器,从而安全访问内网资源。

通过以上步骤,你可以在 CentOS 系统上成功搭建一个功能完整的 OpenVPN 服务器,这种方式不仅成本低廉,而且具有良好的可扩展性和安全性,特别适合中小企业或远程办公场景,建议定期更新证书、监控日志并实施访问控制策略,以进一步保障网络安全。

搭建CentOS 7/8上的OpenVPN服务器,从零开始配置安全远程访问

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