nginx - Fail2Ban - 我想知道如何禁止记录在 Nginx 访问日志中的特定机器人
问题描述
我想用 Fail2Ban 禁止特定的机器人。谁能告诉我怎么做?
这是您要禁止的 Bot:。MJ12bot、AhrefsBot、DotBot、SemrushBot
服务器环境:。CentOS7 Nginx
日志存储在:。
/var/log/nginx/domain-name/access.log
/var/log/nginx/domain-name/error.log
解决方案
您应该编辑/etc/fail2ban/jail.conf
以启用nginx-botsearch
过滤器
[nginx-botsearch]
enabled = true
然后你必须将你的 RegEx 过滤器添加到/etc/fail2ban/filter.d/nginx-botsearch.conf
# Fail2Ban filter to match web requests for selected URLs that don't exist
#
[INCLUDES]
# Load regexes for filtering
before = botsearch-common.conf
[Definition]
failregex = ^<HOST> \- \S+ \[\] \"(GET|POST|HEAD) \/<block> \S+\" 404 .+$
^ \[error\] \d+#\d+: \*\d+ (\S+ )?\"\S+\" (failed|is not found) \(2\: No such file or directory\), client\: <HOST>\, server\: \S*\, request: \"(GET|POST|HEAD) \/<block> \S+\"\, .*?$
HERE_YOUR_NEW_REGEX
ignoreregex =
# DEV Notes:
# Based on apache-botsearch filter
#
# Author: Frantisek Sumsal
最后你必须重新启动 Fail2Ban 服务
service fail2ban restart
推荐阅读
- apache-kafka - spring kafka如何处理保持心跳
- sql-server - 向现有表添加其他地址类型
- .net - NullReferenceException:对象引用未设置为对象的实例。Microsoft.AspNetCore.Http.Internal.DefaultHttpRequest.get_Query()
- javascript - 模块未找到 npm 脚本的导入功能
- android - 如何使用表情符号库在文本中添加表情符号?
- android - Android VTS 未在 Android-Oreo 8.1 上运行
- reactjs - Jest/Enzyme 单元测试
- android - 没有从数据库中获取行。SQLite、安卓、科特林
- java - java.lang.ExceptionInInitializerError 在 AndroidLauncher.oncreate();
- android - 让我们讨论一下 Oreo 的后台执行限制