从 CentOS 7 开始,FirewallD 取代了 iptables 成为默认的防火墙管理工具。

FirewallD 是一个完整的防火墙解决方案,可以通过名为 firewall-cmd 的命令行实用程序进行控制。如果您更习惯使用 Iptables 命令行的语法,则可以禁用 FirewallD 并恢复经典的 iptables 设置。

本教程将向您展示如何禁用 FirewallD 服务并安装 iptables。

前提条件

在开始本教程之前,请确保您已登录为具有 sudo 权限的用户。

禁用 FirewallD

要在您的 CentOS 7 系统上禁用 FirewallD,请按照以下步骤操作:

  1. 输入以下命令以停止 FirewallD 服务:

    sudo systemctl stop firewalld
  2. 禁用 FirewallD 服务,使其不在系统启动时自动运行:

    sudo systemctl disable firewalld
  3. 屏蔽 FirewallD 服务,以防止其他服务启动它:

    sudo systemctl mask --now firewalld

安装并启用 Iptables

执行以下步骤在 CentOS 7 系统上安装 Iptables:

  1. 运行以下命令从 CentOS 软件仓库安装 iptables-service 包:

    sudo yum install iptables-services
  2. 安装包完成后,启动 Iptables 服务:

    sudo systemctl start iptables
    sudo systemctl start ip6tables
  3. 启用 Iptables 服务,使其在系统启动时自动运行:

    sudo systemctl enable iptables
    sudo systemctl enable ip6tables
  4. 通过以下命令检查 iptables 服务状态:

    sudo systemctl status iptables
    sudo systemctl status ip6tables
  5. 要查看当前的 iptables 规则,请使用以下命令:

    sudo iptables -nvL
    sudo ip6tables -nvL

    默认情况下,仅开放 SSH 端口 22。输出结果应如下所示:

    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
     5400 6736K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
        2   148 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
        3   180 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT 4298 packets, 295K bytes)
     pkts bytes target     prot opt in     out     source               destination     

至此,您已成功启用 iptables 服务,可以开始构建您的防火墙了。这些更改将在重启后依然有效。