在企业网络或远程办公场景中,如何通过安全、稳定的通道让员工从外部网络访问内网资源,是一个常见且关键的问题,CentOS作为一款广泛应用于服务器环境的Linux发行版,凭借其稳定性和良好的社区支持,成为部署虚拟私人网络(VPN)服务的理想平台之一,本文将详细介绍如何在CentOS 7/8系统上使用OpenVPN搭建一个可信赖的外网访问通道,帮助用户实现安全远程接入内网资源。

确保你的CentOS系统已安装并配置完成基础网络,登录服务器后,建议先更新系统软件包:

sudo yum update -y

安装OpenVPN及相关依赖,我们推荐使用EPEL仓库来获取最新版本的OpenVPN软件包:

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

安装完成后,需要生成证书和密钥,这是OpenVPN安全通信的核心,进入EasyRSA目录并初始化PKI(公钥基础设施):

make-cadir /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"

运行以下命令生成CA证书、服务器证书和客户端证书:

./clean-all
./build-ca
./build-key-server server
./build-key client1
./build-dh

所有证书生成后,复制到OpenVPN配置目录:

cp /etc/openvpn/easy-rsa/keys/{ca.crt,server.crt,server.key,dh2048.pem} /etc/openvpn/

接下来配置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

配置完成后,启用IP转发以允许数据包穿越防火墙,编辑 /etc/sysctl.conf 添加:

net.ipv4.ip_forward = 1

然后应用更改:

sysctl -p

配置iptables规则,允许流量转发并开放UDP端口1194:

iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -I INPUT -p udp --dport 1194 -j ACCEPT

最后启动OpenVPN服务:

systemctl enable openvpn@server
systemctl start openvpn@server

至此,OpenVPN服务已在CentOS上成功部署,客户端只需将生成的client1.crt、client1.key和ca.crt合并为一个.ovpn配置文件,即可连接到服务器,这种方式不仅保障了数据传输的加密性,还实现了透明的内网访问——无论你在世界哪个角落,只要能连通互联网,就能像在办公室一样访问公司内部系统。

对于运维人员而言,定期备份证书、更新密钥、监控日志(如/var/log/messages)是维护安全性的关键步骤,OpenVPN虽配置略复杂,但一旦掌握,便是构建私有云与远程办公网络的利器。

CentOS系统搭建OpenVPN实现安全外网访问详解  第1张

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