在 CentOS 系统中,使用 iptables
设置默认策略可以通过以下步骤完成。以下示例将展示如何为 INPUT
、FORWARD
和 OUTPUT
链设置默认策略。
在进行任何修改之前,建议先备份当前的 iptables
规则,以便在需要时可以恢复。
sudo iptables-save > /etc/iptables/iptables.backup
使用 iptables
命令为不同的链设置默认策略。常见的默认策略有 ACCEPT
(接受)和 DROP
(丢弃)。
sudo iptables -P INPUT DROP
这意味着除了明确允许的规则外,所有进入本机的流量将被丢弃。
sudo iptables -P FORWARD DROP
这将阻止所有未经明确允许的转发流量。
sudo iptables -P OUTPUT ACCEPT
通常,默认允许本机发起的流量。
根据你的需求,添加规则以允许必要的流量通过。例如:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
CentOS 7 及以上版本使用 firewalld
作为默认防火墙管理工具,iptables
规则在重启后不会自动保存。你可以使用 firewalld
来持久化规则,或者手动保存 iptables
规则。
如果系统已安装并启用了 firewalld
,可以使用以下命令添加规则并使其在重启后生效:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
如果你更倾向于使用 iptables
并希望规则在重启后仍然有效,可以安装 iptables-services
并启用保存服务:
sudo yum install iptables-services
sudo systemctl enable iptables
sudo systemctl start iptables
然后,使用以下命令保存规则:
sudo service iptables save
或者,手动将规则保存到 /etc/sysconfig/iptables
文件中。
使用以下命令查看当前的 iptables
规则,确保设置正确:
sudo iptables -L -v -n
DROP
可能会导致无法远程访问服务器,除非你已经允许了必要的流量(如 SSH)。通过以上步骤,你可以在 CentOS 系统中使用 iptables
设置默认策略,并根据需要允许特定的网络流量。