centos

centos iptables如何设置默认策略

小樊
31
2025-02-20 15:34:19
栏目: 智能运维

在 CentOS 系统中,使用 iptables 设置默认策略可以通过以下步骤完成。以下示例将展示如何为 INPUTFORWARDOUTPUT 链设置默认策略。

1. 备份当前的 iptables 规则

在进行任何修改之前,建议先备份当前的 iptables 规则,以便在需要时可以恢复。

sudo iptables-save > /etc/iptables/iptables.backup

2. 设置默认策略

使用 iptables 命令为不同的链设置默认策略。常见的默认策略有 ACCEPT(接受)和 DROP(丢弃)。

a. 设置 INPUT 链的默认策略为 DROP

sudo iptables -P INPUT DROP

这意味着除了明确允许的规则外,所有进入本机的流量将被丢弃。

b. 设置 FORWARD 链的默认策略为 DROP

sudo iptables -P FORWARD DROP

这将阻止所有未经明确允许的转发流量。

c. 设置 OUTPUT 链的默认策略为 ACCEPT

sudo iptables -P OUTPUT ACCEPT

通常,默认允许本机发起的流量。

3. 允许必要的流量

根据你的需求,添加规则以允许必要的流量通过。例如:

a. 允许已建立的连接和相关流量

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

b. 允许 SSH 连接(假设使用默认端口 22)

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

c. 允许本地回环接口的流量

sudo iptables -A INPUT -i lo -j ACCEPT

d. 允许 HTTP 和 HTTPS 流量(如果需要)

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

4. 保存 iptables 规则

CentOS 7 及以上版本使用 firewalld 作为默认防火墙管理工具,iptables 规则在重启后不会自动保存。你可以使用 firewalld 来持久化规则,或者手动保存 iptables 规则。

a. 使用 firewalld 持久化规则(推荐)

如果系统已安装并启用了 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

b. 手动保存 iptables 规则

如果你更倾向于使用 iptables 并希望规则在重启后仍然有效,可以安装 iptables-services 并启用保存服务:

sudo yum install iptables-services
sudo systemctl enable iptables
sudo systemctl start iptables

然后,使用以下命令保存规则:

sudo service iptables save

或者,手动将规则保存到 /etc/sysconfig/iptables 文件中。

5. 验证 iptables 规则

使用以下命令查看当前的 iptables 规则,确保设置正确:

sudo iptables -L -v -n

注意事项

通过以上步骤,你可以在 CentOS 系统中使用 iptables 设置默认策略,并根据需要允许特定的网络流量。

0
看了该问题的人还看了