插件窝 干货文章 Centos7 替换防火墙为iptables

Centos7 替换防火墙为iptables

iptables systemctl firewalld sudo 751    来源:    2025-05-12

CentOS 7 替换 firewalld 为 iptables 的完整指南

在 CentOS 7 中,默认使用 firewalld 作为防火墙管理工具。如果您需要切换回传统的 iptables,可以按照以下步骤操作:

1. 停止并禁用 firewalld 服务

sudo systemctl stop firewalld
sudo systemctl disable firewalld

2. 安装 iptables 相关软件包

sudo yum install iptables-services -y

3. 启动并启用 iptables 服务

sudo systemctl start iptables
sudo systemctl enable iptables

4. 启动并启用 ip6tables 服务(如果需要 IPv6 支持)

sudo systemctl start ip6tables
sudo systemctl enable ip6tables

5. 检查服务状态

sudo systemctl status iptables

6. 配置 iptables 规则

默认情况下,iptables 会加载 /etc/sysconfig/iptables 中的规则。您可以使用以下命令编辑规则:

sudo vi /etc/sysconfig/iptables

或者使用交互式命令配置:

sudo iptables -L  # 查看当前规则
sudo iptables -F  # 清空当前规则(谨慎操作)

7. 保存 iptables 规则

配置完规则后,需要保存:

sudo service iptables save

8. 重启 iptables 服务使新配置生效

sudo systemctl restart iptables

注意事项

  1. 从 firewalld 切换到 iptables 后,之前配置的 firewalld 规则不会自动转换,需要手动重新配置 iptables 规则。

  2. 如果需要切换回 firewalld,可以执行:

    sudo systemctl stop iptables
    sudo systemctl disable iptables
    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  3. 在 CentOS 7 中,iptables 服务实际上是调用了 iptables 命令并加载保存的规则,底层仍然是使用 netfilter 框架。

  4. 对于新安装的系统,建议优先考虑使用 firewalld,因为它提供了更高级的功能和动态管理能力。