Debian Buster 上的 Fail2ban - 正确的配置方法?

Debian Buster 上的 Fail2ban - 正确的配置方法?

Fail2ban 可以在很多地方进行配置。

$ fail2ban-client -i 
Fail2Ban v0.10.2 reads log file that contains password failure report
and bans the corresponding IP addresses using firewall rules.

在 Debian Buster 上,我可以在几个配置文件中编辑我的设置:

/etc/fail2ban/jail.d/defaults-debian.conf
/etc/fail2ban/fail2ban.conf
/etc/fail2ban/jail.conf
/etc/fail2ban/action.d/

最后但同样重要的一点是,一些教程推荐:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

文档fail2ban 说:

修改应在 .local 中进行,而不是在 .conf 中进行。这样可以避免升级时出现合并问题。这些文件有详尽的文档,其中应该有详细信息。

这是否意味着我想要编辑的每个 .conf 文件都应该作为 .local 文件存在?

我很困惑!有人能解释一下吗?

答案1

您只需编辑一个文件。

为了避免系统升级时出现问题,您应该始终只复制jail.confjail.local修改后者。所有其他 fail2ban 配置文件也一样。

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

然后编辑此文件并向下滚动到您想要使用的过滤器。

在这些过滤器中添加enabled = true。我建议不要在开始时启用太多过滤器。一两个就够了。如果您通过 SSH 连接,请小心使用 SSH 过滤器。您可能会把自己锁在外面。

筛选器

查看目录中的filter.d所有可用过滤器。选择一两个合适的过滤器。务必了解它们的正则表达式匹配的内容以及您需要哪些日志文件。

Fail2ban 适用于日志文件。因此过滤器必须与相应的日志文件匹配。您可以使用

fail2ban-regex <logfile> <filter>

例如

fail2ban-regex /var/log/nginx/default_access.log /etc/fail2ban/filter.d/nginx-botsearch.conf

例如,此过滤器会查找404NGINX 中的错误access.log,并在条件匹配时阻止这些错误。有关条件,请参见下文。

编辑完成后重新启动fail2ban:

systemctl restart fail2ban

文件中的其他设置jail.local

所有设置都可以是全局的,也可以是过滤器特定的。

bantime  = 7200
findtime  = 10m
maxretry = 10

意味着 10 分钟内出现 10 次错误将导致 2 小时的禁令。

如果您不想使用 iptables 进行禁止,您可以更改您的banaction。默认禁止操作使用 iptables,它应该适用于我所知道的所有系统,但您可能无法在熟悉的防火墙界面中看到禁止操作。

banaction = ufw

请参阅 中的操作action.d。使用此设置,fail2ban 将使用 ufw 来阻止 IP。然后您可以通过 查看禁令ufw status

特别是对于 SSH,请确保将您的本地 IP 范围排除在禁止范围之外,这样您就无法禁止自己:

ignoreip = 127.0.0.1/8 ::1 192.168.178.0/24

我建议你不是创建或修改新的过滤器或操作。使用包含的过滤器或操作即可。构建自己的正则表达式模式并不容易,而且日志文件格式会不时更改 - 这会破坏您的过滤器。这样您的系统就不安全了。您也不应该编辑Apaches默认日志格式。

相关内容