我有带防火墙的 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 直接接口(引自:CentOS 上的 FirewallD 介绍)
对于最高级的用法或 iptables 专家,FirewallD 提供了一个直接接口,允许您将原始 iptables 命令传递给它。除非使用 --permanent,否则直接接口规则不是持久的。
要查看添加到 FirewallD 的所有自定义链或规则:
firewall-cmd --direct --get-all-chains
firewall-cmd --direct --get-all-rules