在现代企业网络环境中,远程访问内网资源已成为日常运维和办公的重要需求,对于使用 CentOS 7.2 这类稳定且广泛部署的 Linux 发行版的企业用户来说,搭建一个安全、可靠的虚拟私人网络(VPN)解决方案至关重要,本文将详细介绍如何在 CentOS 7.2 系统上部署 OpenVPN,以实现加密隧道下的远程安全接入。
确保你的服务器满足基本要求:一台运行 CentOS 7.2 的物理或虚拟机,具备公网IP地址(或可映射的私有IP),以及root权限或sudo权限,我们选择 OpenVPN 是因为它开源、成熟、支持多种认证方式(如证书+密码、双因素等),并且社区支持强大,文档丰富。
第一步是安装必要的软件包,通过以下命令更新系统并安装 OpenVPN 和 Easy-RSA(用于管理PKI证书):
yum update -y yum install -y openvpn easy-rsa
配置 PKI(公钥基础设施),复制 Easy-RSA 模板到 /etc/openvpn/ 目录:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
编辑 vars 文件,设置国家、组织名、密钥长度等参数(建议使用默认值即可,除非有特殊合规要求),然后执行以下命令生成 CA 证书和服务器证书:
./clean-all ./build-ca # 生成根证书(CA) ./build-key-server server # 生成服务器证书 ./build-dh # 生成 Diffie-Hellman 参数
完成后,将生成的文件复制到 OpenVPN 配置目录:
cp keys/{ca.crt,server.crt,server.key,ca.crt,dh2048.pem} /etc/openvpn/
现在创建主配置文件 /etc/openvpn/server.conf如下(可根据实际网络环境调整):
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.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 openvpn-status.log
verb 3
此配置启用UDP协议、TUN模式、自动分配客户端IP段(10.8.0.0/24)、推送DNS和路由规则,便于客户端访问内网资源。
启动服务前,需开启IP转发并配置iptables防火墙:
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
启动 OpenVPN 服务并设置开机自启:
systemctl enable openvpn@server systemctl start openvpn@server
客户端方面,需为每个用户生成独立的证书和配置文件(可通过 build-key client1 命令实现),并将客户端配置文件分发至终端设备,典型客户端配置包括:
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
comp-lzo
verb 3
至此,基于 CentOS 7.2 的 OpenVPN 服务已成功部署,该方案不仅提供端到端加密通信,还支持多用户隔离与细粒度访问控制,适用于远程办公、站点间互联等场景,后续建议结合 Fail2Ban 实现暴力破解防护,并定期轮换证书以增强安全性。

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

