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 文件存在?
我很迷惑!有人可以对此有所了解吗?
您只需要编辑一个文件。
为了避免在系统升级的问题,您应该总是复制jail.conf
到jail.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
例如,此过滤器会查找404
NGINX 中的错误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
默认日志格式。
归档时间: |
|
查看次数: |
5236 次 |
最近记录: |