首页 > 解决方案 > Fail2Ban - 我想知道如何禁止记录在 Nginx 访问日志中的特定机器人

问题描述

我想用 Fail2Ban 禁止特定的机器人。谁能告诉我怎么做?

这是您要禁止的 Bot:。MJ12bot、AhrefsBot、DotBot、SemrushBot

服务器环境:。CentOS7 Nginx

日志存储在:。

/var/log/nginx/domain-name/access.log
/var/log/nginx/domain-name/error.log

标签: nginxcentos7fail2ban

解决方案


您应该编辑/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

推荐阅读