在当今远程办公和分布式团队日益普及的背景下,企业与个人用户对安全、稳定的远程访问需求不断增长,虚拟私人网络(VPN)作为实现这一目标的核心技术之一,能够加密通信流量并隐藏用户真实 IP 地址,从而保障数据传输的安全性,CentOS 作为一个稳定、开源且广泛应用于企业环境的操作系统,非常适合用于部署功能完整的 VPN 服务,本文将详细介绍如何在 CentOS 7 或 CentOS 8 上搭建一个基于 OpenVPN 的安全 VPN 服务器,并提供完整的配置步骤和最佳实践建议。

确保你有一台运行 CentOS 的物理机或虚拟机,具备公网 IP 地址(若使用云服务器如阿里云、腾讯云等),并拥有 root 权限,我们选择 OpenVPN 是因为其成熟、跨平台支持良好、社区活跃,且可以结合 Easy-RSA 工具实现证书管理。

第一步:更新系统并安装依赖包

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

第二步:配置 OpenVPN 服务器
复制示例配置文件到 /etc/openvpn/server/ 目录:

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

编辑配置文件 /etc/openvpn/server/server.conf,关键修改包括:

  • port 1194:设置监听端口(可改为其他非冲突端口)
  • proto udp:推荐使用 UDP 协议以提高性能
  • dev tun:使用隧道模式
  • ca /etc/openvpn/easy-rsa/pki/ca.crt:CA 根证书路径
  • cert /etc/openvpn/easy-rsa/pki/issued/server.crt:服务器证书
  • key /etc/openvpn/easy-rsa/pki/private/server.key:私钥
  • dh /etc/openvpn/easy-rsa/pki/dh.pem:Diffie-Hellman 参数

第三步:生成证书和密钥
进入 Easy-RSA 目录并初始化 PKI:

cd /etc/openvpn/easy-rsa/
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass  # 创建 CA 证书(不设密码)
sudo ./easyrsa gen-req server nopass  # 生成服务器证书请求
sudo ./easyrsa sign-req server server  # 签署服务器证书
sudo ./easyrsa gen-dh  # 生成 Diffie-Hellman 参数

第四步:启用 IP 转发和防火墙规则
编辑 /etc/sysctl.conf,添加:

net.ipv4.ip_forward = 1

执行 sysctl -p 生效。

配置 iptables 或 firewalld 放行 1194 端口并启用 NAT:

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

第五步:启动并测试服务

sudo systemctl enable openvpn-server@server
sudo systemctl start openvpn-server@server
sudo systemctl status openvpn-server@server

为客户端生成证书和配置文件(使用 easyrsa gen-req client1 nopasssign-req client client1),并将客户端配置文件(.ovpn)分发给用户。

注意事项:

  • 定期更新 OpenVPN 和操作系统补丁;
  • 使用强密码和定期轮换证书;
  • 建议结合 Fail2Ban 防止暴力破解;
  • 若需高可用,可考虑使用 Keepalived + OpenVPN 多节点架构。

通过以上步骤,你可以在 CentOS 上快速构建一个功能完善、安全性高的 OpenVPN 服务器,满足远程办公、分支机构互联等多种场景需求,这不仅提升了网络灵活性,也为组织的数据安全提供了坚实基础。

在 CentOS 系统上搭建安全可靠的 VPN 服务器,从零开始的完整指南  第1张

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