在当前远程办公和跨地域协作日益普及的背景下,企业或个人用户对安全、稳定的网络连接需求持续增长,虚拟私人网络(VPN)作为实现远程安全访问内网资源的重要手段,其部署变得尤为关键,本文将以 CentOS 7 为例,详细讲解如何搭建一个基于 OpenVPN 的私有 VPN 服务器,确保数据传输加密、身份验证可靠,并支持多用户接入。
确保你拥有一个运行 CentOS 7 的物理或虚拟服务器,且具备公网 IP 地址,建议使用最小化安装版本以减少不必要的服务干扰,登录系统后,执行以下步骤:
第一步:更新系统并安装必要软件包
sudo yum update -y sudo yum install epel-release -y sudo yum install openvpn easy-rsa -y
第二步:配置 Easy-RSA 证书颁发机构(CA)
OpenVPN 使用 PKI(公钥基础设施)进行身份认证,因此需要生成 CA 根证书和服务器/客户端证书。
cp -r /usr/share/easy-rsa/* /etc/openvpn/ cd /etc/openvpn/ vi vars # 修改默认参数,如国家、组织名称等
编辑 vars 文件时,可设置:
export KEY_COUNTRY="CN" export KEY_PROVINCE="Beijing" export KEY_CITY="Beijing" export KEY_ORG="MyCompany" export KEY_EMAIL="admin@example.com"
接着初始化密钥库并生成 CA 证书:
./easyrsa init-pki ./easyrsa build-ca
此时会提示输入 CA 密码,用于保护私钥安全。
第三步:生成服务器证书和密钥
./easyrsa gen-req server nopass ./easyrsa sign-req server server
生成客户端证书(每新增一个用户需重复此步骤):
./easyrsa gen-req client1 nopass ./easyrsa sign-req client client1
第四步:生成 Diffie-Hellman 参数和 TLS 密钥
./easyrsa gen-dh openvpn --genkey --secret ta.key
第五步:配置 OpenVPN 服务端文件
创建 /etc/openvpn/server.conf 文件,内容如下:
port 1194 proto udp dev tun ca /etc/openvpn/pki/ca.crt cert /etc/openvpn/pki/issued/server.crt key /etc/openvpn/pki/private/server.key dh /etc/openvpn/pki/dh.pem 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 /var/log/openvpn-status.log verb 3 tls-auth /etc/openvpn/ta.key 0
第六步:启用 IP 转发与防火墙规则
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p firewall-cmd --permanent --add-port=1194/udp firewall-cmd --permanent --add-masquerade firewall-cmd --reload
第七步:启动并设置开机自启
systemctl enable openvpn@server systemctl start openvpn@server
将客户端配置文件分发给用户(包含 ca.crt、client1.crt、client1.key 和 ta.key),并在客户端设备上使用 OpenVPN GUI 或命令行工具连接。
通过以上步骤,你已在 CentOS 7 上成功搭建了一个功能完整的 OpenVPN 服务器,该方案支持多用户、强加密(AES-256)、TLS 认证和自动路由重定向,适用于小型企业或远程办公场景,运维过程中应定期更新证书、监控日志,并结合 fail2ban 等工具增强安全性。

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

