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

Gil*_*tes 5 fail2ban debian-buster

很多地方都可以配置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.
Run Code Online (Sandbox Code Playgroud)

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

/etc/fail2ban/jail.d/defaults-debian.conf
/etc/fail2ban/fail2ban.conf
/etc/fail2ban/jail.conf
/etc/fail2ban/action.d/
Run Code Online (Sandbox Code Playgroud)

一些教程推荐:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Run Code Online (Sandbox Code Playgroud)

fail2ban 的文档说:

修改应该发生在 .local 而不是 .conf 中。这避免了升级时的合并问题。这些文件都有详细的文档记录,并且应该可以在那里获得详细信息。

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

我很迷惑!有人可以对此有所了解吗?

Cor*_*rni 7

您只需要编辑一个文件。

为了避免在系统升级的问题,您应该总是复制jail.confjail.local只有修改后者。对于所有其他 fail2ban 配置文件也是如此。

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Run Code Online (Sandbox Code Playgroud)

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

在这些过滤器中,添加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
Run Code Online (Sandbox Code Playgroud)

jail.local文件中的其他设置:

所有设置都可以设为全局以及特定于过滤器。

bantime  = 7200
findtime  = 10m
maxretry = 10
Run Code Online (Sandbox Code Playgroud)

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

如果你不想使用 iptables 来禁止,你可以改变你的banaction. 默认的banaction 使用iptables,它应该适用于我知道的所有系统,但您可能在熟悉的防火墙界面中看不到禁令。

banaction = ufw
Run Code Online (Sandbox Code Playgroud)

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

特别是对于 SSH,一定要从禁止中排除您的本地 IP 范围,这样您就无法禁止自己:

ignoreip = 127.0.0.1/8 ::1 192.168.178.0/24
Run Code Online (Sandbox Code Playgroud)

我建议您不要创建或修改新的过滤器或操作。使用包含的那些并快乐。构建自己的正则表达式模式并不容易,并且日志文件格式会不时更改 - 这会破坏您的过滤器。那时您的系统将不会受到保护。您也不应该编辑Apaches默认日志格式。