在 CentOS 系统中,使用 iptables 阻止所有外网连接可以通过设置默认策略为 DROP 来实现。以下是具体步骤:
备份当前的 iptables 规则: 在进行任何更改之前,建议先备份当前的 iptables 规则,以便在需要时可以恢复。
sudo iptables-save > /etc/iptables.rules
设置默认策略为 DROP: 将 INPUT、FORWARD 和 OUTPUT 链的默认策略设置为 DROP。
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT DROP
允许本地回环接口的流量: 允许来自本地回环接口(lo)的流量,这对于本地通信是必要的。
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
允许已建立的连接: 允许已经建立的连接和相关的流量通过。
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
允许特定的入站连接: 根据需要,允许特定的入站连接,例如 SSH 连接(默认端口 22)。
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
保存 iptables 规则:
CentOS 7 及以上版本使用 firewalld 作为默认的防火墙管理工具,因此需要使用 firewall-cmd 来保存规则。
sudo firewall-cmd --runtime-to-permanent
重启防火墙服务: 重启防火墙服务以应用新的规则。
sudo systemctl restart firewalld
如果你使用的是 CentOS 6 或其他不支持 firewalld 的版本,可以使用 service iptables save 命令来保存规则。
sudo service iptables save
完成以上步骤后,你的 CentOS 系统将阻止所有外网连接,只允许本地回环接口的流量、已经建立的连接以及你明确允许的特定入站连接。