在现代企业网络环境中,远程办公和安全访问内网资源已成为刚需,CentOS作为一款稳定、开源的Linux发行版,常被用于服务器部署,而OpenVPN是一款功能强大、开源且广泛使用的虚拟私人网络(VPN)解决方案,它能够通过加密隧道实现远程用户与内部网络的安全通信,本文将详细介绍如何在CentOS 7或CentOS 8/9系统中安装并配置OpenVPN服务,帮助你构建一个可信赖的远程访问环境。
第一步:准备工作
确保你的CentOS服务器已连接互联网,并具备root权限,建议使用最小化安装版本,避免不必要的软件包冲突,首先更新系统:
sudo yum update -y
第二步:安装OpenVPN及相关工具
OpenVPN依赖于Easy-RSA来管理证书和密钥,因此需要一并安装:
sudo yum install epel-release -y sudo yum install openvpn easy-rsa -y
第三步:生成证书和密钥(使用Easy-RSA)
OpenVPN基于PKI(公钥基础设施)进行身份认证,必须先创建CA证书和服务器/客户端证书。
- 复制Easy-RSA模板到指定目录:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
- 编辑vars文件,设置国家、组织等信息(如CN=China, O=MyCompany):
nano vars
- 执行初始化并生成CA证书:
./clean-all ./build-ca
- 生成服务器证书和密钥:
./build-key-server server
- 为客户端生成证书(每个客户端都需要单独生成):
./build-key client1
- 生成Diffie-Hellman参数(用于密钥交换):
./build-dh
第四步:配置OpenVPN服务器
复制示例配置文件并修改:
cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/openvpn/ nano /etc/openvpn/server.conf
关键配置项包括:
port 1194:指定监听端口(可自定义)proto udp:推荐使用UDP协议以提高性能dev tun:创建TUN设备(点对点隧道)ca ca.crt、cert server.crt、key server.key:引用刚生成的证书dh dh.pem:引用Diffie-Hellman参数server 10.8.0.0 255.255.255.0:分配给客户端的IP地址段push "redirect-gateway def1 bypass-dhcp":强制客户端流量走VPNpush "dhcp-option DNS 8.8.8.8":推送DNS服务器
第五步:启用IP转发和防火墙规则
编辑sysctl.conf允许IP转发:
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p
配置firewalld(CentOS默认防火墙):
sudo firewall-cmd --add-port=1194/udp --permanent sudo firewall-cmd --add-masquerade --permanent sudo firewall-cmd --reload
第六步:启动服务并测试
启动OpenVPN服务:
systemctl enable openvpn@server systemctl start openvpn@server
客户端可通过.ovpn配置文件连接,其中包含服务器IP、证书路径和加密参数,客户端配置文件应包含:
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
通过以上步骤,你可以在CentOS上成功部署一个功能完整的OpenVPN服务,该方案不仅适用于小型办公室远程访问,也可扩展为企业级多用户接入场景,需要注意的是,定期更新证书、加强密码策略以及监控日志是保障安全性的重要措施,若需更高性能或更复杂功能(如负载均衡、双因素认证),可考虑集成OpenVPN与LDAP或OAuth2,CentOS + OpenVPN是一个成熟、灵活且值得信赖的组合,适合各类IT运维人员实践应用。

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速









