CentOS系统下搭建VPN服务并配置iptables防火墙规则详解

在企业网络或远程办公场景中,通过虚拟私人网络(VPN)实现安全、加密的远程访问已成为刚需,CentOS作为广泛使用的Linux发行版,凭借其稳定性和强大的社区支持,是搭建VPN服务器的理想选择之一,本文将详细介绍如何在CentOS系统上部署OpenVPN服务,并结合iptables防火墙规则,确保服务既可用又安全。

安装必要的软件包,以CentOS 7或8为例,使用YUM包管理器安装OpenVPN及相关依赖:

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

安装完成后,初始化PKI证书系统,运行以下命令生成证书颁发机构(CA)和服务器证书:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server

将生成的证书文件复制到OpenVPN配置目录,并创建主配置文件 /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"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

配置完成后,启用OpenVPN服务并设置开机自启:

sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server

客户端可通过OpenVPN客户端连接至服务器,但若未配置iptables,可能无法正常转发流量或存在安全隐患,关键步骤是添加iptables规则以允许UDP 1194端口通信,并启用IP转发:

sysctl -p
# 添加iptables规则
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
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

保存iptables规则以确保重启后不丢失:

service iptables save

值得注意的是,若服务器位于NAT环境(如云主机),还需在云服务商控制台开放UDP 1194端口,建议定期更新证书、限制用户权限,并监控日志文件(如 /var/log/openvpn-status.log)以排查异常连接。

在CentOS系统中部署OpenVPN并合理配置iptables,可构建一个高效、安全的远程访问通道,适用于中小型企业或个人开发者日常使用,掌握这些基础技能,有助于在网络运维中应对复杂场景,提升整体系统稳定性与安全性。

启用IP转发  第1张

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