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 文件存在?
我很困惑!有人可以对此有所了解吗?
您只需要编辑一个文件。
为避免在系统升级过程中出现问题,您应该始终只复制
jail.conf
和jail.local
修改后者。所有其他的 fail2ban 配置文件都是一样的。然后编辑此文件并向下滚动到您要使用的过滤器。
在这些过滤器中,添加
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
例如,此过滤器
404
会在您的 NGINX 中查找错误access.log
并在条件匹配时阻止它们。有关条件,请参见下文。完成编辑后重启fail2ban:
文件中的其他设置
jail.local
:所有设置都可以全局化,也可以特定于过滤器。
意味着 10 分钟内出现 10 个错误将导致 2 小时禁令。
如果你不想使用 iptables 来禁止,你可以改变你的
banaction
. 默认禁令使用 iptables,它应该适用于我知道的所有系统,但您可能在熟悉的防火墙界面中看不到禁令。请参阅 中的操作
action.d
。使用此设置,fail2ban 将使用 ufw 阻止 IP。然后你可以通过 看到禁令ufw status
。特别是对于 SSH,请务必将您的本地 IP 范围排除在禁止之外,这样您就无法禁止自己:
我建议您不要创建或修改新的过滤器或操作。使用随附的并感到高兴。构建自己的正则表达式模式并不容易,并且日志文件格式会不时更改 - 这会破坏您的过滤器。您的系统将不会受到保护。您也不应该编辑
Apaches
默认日志格式。