fail2ban-apache 没有阻止 IP

fail2ban-apache 没有阻止 IP

我正在尝试配置 fail2ban,我尝试多次登录我的 Web 服务器来触发规则,并且查看我的 iptables 似乎已经起作用了:

Chain fail2ban-apache (1 references)
target     prot opt source               destination
DROP       all  --  192.168.1.70         0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

但是如果我尝试从 .70 访问 Apache 服务器,我仍然可以!

有任何想法吗?

根据要求的完整列表:

Chain INPUT (policy ACCEPT 100998 packets, 137858737 bytes)
     pkts      bytes target        prot opt in     out     source         destination

       0        0 fail2ban-apache  tcp  --  *      *       0.0.0.0/0      0.0.0.0/0            multiport dports 80,443
    1925   322694 fail2ban-ssh     tcp  --  *      *       0.0.0.0/0      0.0.0.0/0            multiport dports 22

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source             destination

Chain OUTPUT (policy ACCEPT 43963 packets, 7223477 bytes)
    pkts      bytes target     prot opt in     out     source             destination

Chain fail2ban-apache (1 references)
    pkts      bytes target     prot opt in     out     source             destination

       0        0 DROP       all  --  *      *       192.168.1.70         0.0.0.0/0
       0        0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain fail2ban-ssh (1 references)
    pkts      bytes target     prot opt in     out     source             destination

    1925   322694 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

答案1

这里发生的情况是,在尝试多次 SSH 后,fail2ban 规则已添加192.168.1.70fail2ban-apache链中,但此链仅适用于端口 80 和 443。端口 22 仍然被允许,因为192.168.1.70尚未添加到fail2ban-ssh链中。

您会发现无法从 Web 服务器发出 http 或 https 请求,192.168.1.70但仍然可以使用 SSH。

您可能希望更改 SSH 规则的 fail2ban 操作以阻止 SSH 而不是 http 和 https。

答案2

优先级较高的规则之一是允许在防火墙到达阻止规则之前进行通信。阻止规则应排在规则的首位,或非常接近首位。

答案3

如果您想在出现暴力 ssh 攻击或 apache 攻击时阻止所有端口,您需要添加或编辑以下行:

banaction = iptables-allports

[ssh]或此处的或[apache] 行 之后/etc/fail2ban/jail.conf执行默认操作

# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = iptables-allports

如果你不想阻止所有端口,你可以在此行添加端口名称,数字

[apache]

enabled  = true
port     = http,https,dns,6969 <-
filter   = apache-auth
logpath  = /var/log/apache*/*error.log
maxretry = 6

相关内容