Debian 使用 iptables 和 fail2ban 无法禁止 IP

Debian 使用 iptables 和 fail2ban 无法禁止 IP

我的服务器是 Debian 9。我已安装 fail2ban 并对其进行了配置。它可以与 sshd 配合使用(登录失败时禁止 IP),但我无法使其与 apache-auth 配合使用(IP 被禁止但 iptables 不会阻止它)。

jail.local 看起来像:

[DEFAULT]
bantime  = 720h
findtime  = 60m
banaction = iptables
mta = sendmail
destemail = [email protected]
action = %(action_mw)s
maxretry = 2

[sshd]
enabled = true

[apache-auth]
enabled = true

当我运行 compand 时:

fail2ban-client status sshd

它显示被禁止的 IP。当我运行命令时:

iptables -L -n

它显示了上一个命令中的 IP。所以它工作正常。

当我跑步时:

fail2ban-client status apache-auth

它显示禁止IP(我)。

iptables -L -n

不显示之前列表中的任何 IP。iptables 显示的内容可能很重要:

Chain f2b-apache-auth (0 references)

我仍然可以通过 WWW 连接到服务器。我使用 nginx 时遇到了同样的问题,所以我改用 apache,我认为这可以解决我的问题。

答案1

我的 apache jail.conf 部分看起来有点不同

[阿帕奇]
已启用=真
端口 = http,https
过滤器 = apache-auth
日志路径 = /var/log/apache*/*error.log
最大重试次数 = 6

您可以使用以下方式找到已加载的配置

fail2ban-client -d

您说您正在本地测试。请确保您的 IP 不在 中给出的网络掩码中ignoreip

由于该操作可能会在您的案例中触发,请查看actionban那里的条目,看看它是否实际添加了所需的 iptables 规则。

也许var/log/fail2ban.log有更多信息?

答案2

我找到解决办法了!

[apache-auth]
enabled = true
action   = iptables-multiport[port="http,https"]
port     = http,https

缺少“操作”。fail2ban 正在发送端口范围,而 iptables 期望单个端口……添加这样的“操作”后,一切都运行良好。

所以我们可以说问题已经解决了。

@Jonas Eberle - 你的配置在所有教程中,不幸的是也没有起作用 :(

相关内容