在当今企业数字化转型加速的背景下,远程办公和安全访问内网资源已成为刚需,CentOS 7 作为一款稳定、成熟且广泛使用的 Linux 发行版,非常适合用于部署企业级虚拟私有网络(VPN)服务,本文将详细介绍如何在 CentOS 7 系统上使用 OpenVPN 搭建一个功能完整的点对点加密隧道服务,实现安全、可控的远程访问。
准备工作
首先确保你有一台运行 CentOS 7 的服务器(建议配置至少 2GB 内存、1核 CPU 和 20GB 硬盘空间),并具备公网 IP 地址,通过 SSH 登录服务器后,执行以下命令更新系统软件包:
sudo yum update -y
接着安装 EPEL 源(Extra Packages for Enterprise Linux),以便获取 OpenVPN 所需的依赖项:
sudo yum install epel-release -y
然后安装 OpenVPN 及其管理工具:
sudo yum install openvpn easy-rsa -y
生成证书与密钥(PKI 配置)
OpenVPN 使用 TLS/SSL 加密通信,因此需要建立一套公钥基础设施(PKI),我们使用 easy-rsa 工具来生成 CA 根证书、服务器证书和客户端证书。
-
复制模板文件:
sudo cp -r /usr/share/easy-rsa/ /etc/openvpn/ sudo chown -R root:root /etc/openvpn/easy-rsa/ cd /etc/openvpn/easy-rsa/
-
编辑
vars文件,修改以下参数以符合你的环境:export KEY_COUNTRY="CN" export KEY_PROVINCE="Beijing" export KEY_CITY="Beijing" export KEY_ORG="MyCompany" export KEY_EMAIL="admin@mycompany.com" export KEY_CN="server" export KEY_NAME="server" export KEY_ALTNAMES="server.mycompany.com"
-
初始化 PKI 并生成 CA:
./clean-all ./build-ca
-
生成服务器证书和密钥:
./build-key-server server
-
为客户端生成证书(可为多个用户生成不同证书):
./build-key client1
-
生成 Diffie-Hellman 参数(增强安全性):
./build-dh
配置 OpenVPN 服务
复制示例配置文件到 /etc/openvpn/ 目录,并命名为 server.conf:
sudo cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/ sudo nano /etc/openvpn/server.conf
关键配置项如下(请根据实际需求调整):
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
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
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"
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
启用 IP 转发与防火墙规则
开启内核 IP 转发功能:
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p
配置防火墙允许 OpenVPN 流量(假设使用 firewalld):
sudo firewall-cmd --permanent --add-port=1194/udp sudo firewall-cmd --permanent --add-service=openvpn sudo firewall-cmd --reload
启动服务并设置开机自启
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server sudo systemctl status openvpn@server
客户端配置
将之前生成的客户端证书(client1.crt)、私钥(client1.key)和 CA 证书(ca.crt)打包成 .ovpn 文件,
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
tls-auth ta.key 1
auth-user-pass
verb 3
客户端下载此文件后,在 OpenVPN GUI 或命令行中导入即可连接。
通过以上步骤,你已在 CentOS 7 上成功搭建了一个基于 OpenVPN 的安全远程访问服务,该方案具备高安全性、易维护性和良好的扩展性,适合中小企业或个人开发者部署,后续可根据业务需求增加多用户认证、日志审计、负载均衡等功能,进一步提升可用性和安全性。

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






