如何检查firewalld 是否阻止了传入的 IP 地址?

如何检查firewalld 是否阻止了传入的 IP 地址?

我有带防火墙的 CentOS 7。我安装了 fail2ban 并使用了防火墙cmd-new 操作。我在 fail2ban 日志中看到了禁令,我想在防火墙cmd 中检查它们是否被阻止。我该怎么做?

答案1

首先,我强烈建议您使用,banaction = firewallcmd-ipset因为当禁令列表开始变大时,它将提供更好的性能。

现在,使用 fail2ban 的任何防火墙操作,它都会添加一条直接规则,您可以使用以下命令进行检查firewall-cmd --direct --get-all-rules

# firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 0 -p tcp -m multiport --dports ssh -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport --dports 0:65535 -m set --match-set fail2ban-nginx-http-auth src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport --dports http,https -m set --match-set fail2ban-nginx-wordpress-login src -j REJECT --reject-with icmp-port-unreachable

如您所见,我使用的是firewallcmd-ipset,因此实际被禁止的 IP 地址未在此处列出。相反,我使用 来查找它们ipset list

# ipset list
Name: fail2ban-sshd
Type: hash:ip
Revision: 1
Header: family inet hashsize 1024 maxelem 65536 timeout 600
Size in memory: 16528
References: 1
Members:

Name: fail2ban-nginx-http-auth
Type: hash:ip
Revision: 1
Header: family inet hashsize 1024 maxelem 65536 timeout 600
Size in memory: 16528
References: 1
Members:

Name: fail2ban-nginx-wordpress-login
Type: hash:ip
Revision: 1
Header: family inet hashsize 1024 maxelem 65536 timeout 86400
Size in memory: 40656
References: 1
Members:
108.62.172.244 timeout 70819
108.62.172.121 timeout 82750
212.252.164.233 timeout 69907
108.62.24.87 timeout 58024
23.19.127.20 timeout 84310
### many more omitted...

答案2

详情请见此处:https://fedoraproject.org/wiki/FirewallD#Which_zones_are_available.3F

  • 列出所有已启用功能的区域。

    firewall-cmd --list-all-zones

  • 打印启用了功能的区域。如果省略区域,则将使用默认区域。

    firewall-cmd [--zone=<zone>] --list-all

如果上述命令没有显示足够的信息,你可以尝试

对于最高级的用法或 iptables 专家,FirewallD 提供了一个直接接口,允许您将原始 iptables 命令传递给它。除非使用 --permanent,否则直接接口规则不是持久的。

要查看添加到 FirewallD 的所有自定义链或规则:

firewall-cmd --direct --get-all-chains

firewall-cmd --direct --get-all-rules

相关内容