CentOS系统中配置OpenVPN与iptables防火墙的完整指南
在企业网络或远程办公环境中,使用虚拟私人网络(VPN)技术实现安全的数据传输至关重要,CentOS作为一款稳定、可靠的Linux发行版,在服务器部署中广泛应用,本文将详细介绍如何在CentOS系统中配置OpenVPN服务,并结合iptables防火墙规则,确保网络安全与访问控制。
安装OpenVPN服务,在CentOS 7或8上,可通过YUM包管理器快速安装:
sudo yum install epel-release -y sudo yum install openvpn easy-rsa -y
安装完成后,需生成证书和密钥,进入EasyRSA目录并初始化PKI环境:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa sudo ./easyrsa init-pki sudo ./easyrsa build-ca nopass sudo ./easyrsa gen-req server nopass sudo ./easyrsa sign-req server server sudo ./easyrsa gen-req client1 nopass sudo ./easyrsa sign-req client client1
上述步骤生成服务器和客户端所需的证书与密钥文件,随后,复制相关文件到OpenVPN配置目录:
sudo cp pki/ca.crt pki/private/server.key pki/issued/server.crt /etc/openvpn/
接下来配置OpenVPN服务器主文件 /etc/openvpn/server.conf,关键配置包括:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh 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"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
启动OpenVPN服务:
sudo systemctl enable openvpn@server.service sudo systemctl start openvpn@server.service
此时OpenVPN已运行,但若未配置iptables,外部无法访问该服务,为允许OpenVPN流量通过,需添加以下iptables规则:
# 启用IP转发(使客户端能访问内网) echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p # 添加NAT规则,让客户端流量通过主机网卡出去 sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT sudo iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
最后保存iptables规则,防止重启后失效:
sudo service iptables save
至此,一个完整的基于CentOS的OpenVPN服务已部署完毕,具备防火墙保护和路由转发功能,用户可通过客户端配置连接至服务器,实现加密隧道通信,此方案适用于中小型组织的远程办公需求,兼顾安全性与易用性,建议定期更新证书、监控日志,并根据实际网络结构调整iptables策略,以确保长期稳定运行。

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






