fail2ban 强制我禁止 google 因为我日志中的 /forward
fail2ban force me to ban google because of /forward in my log
在我的 apache 日志中,我有很多这样的东西:
<IP ADDRESS> - - <DATE> "GET /forward?path=http://vary_bad_link_not_for_children" <NUM1> <NUM2> "-" <String>
: 302 或 404
:5XX、6XX 或 11XX
<字符串>:
"Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/)"
"Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)"
"Mozilla/5.0 (compatible; Googlebot/2.1; +...a link)"
"Mozilla/5.0 (compatible; Exabot/3.0; +...a link)"
等...
我用这个正则表达式为 fail2ban 设置了监狱:
failregex = ^<HOST> .*"GET .*/forward\?path=
除了被禁止的 IP 地址(见日志中的 )是 google 和其他非常知名的公司的 IP 外,一切正常。
真不明白为什么会这样;我的意思是我为什么要禁止 google 和其他公司,如果不是,我为什么要接受对我的服务器的所有这些不适当的请求。
我想澄清我的问题,因为它解释得不好:
1-为什么 Google IP(和其他知名公司)正在做那种 "porn" 请求
2-“/forward?path=...”有什么意义吗?它是 apache 的功能吗?
3-如何在不停止 "good" 机器人引用我的站点的情况下处理此问题。
提前感谢您的帮助!
您可以在 robots.txt 中告诉机器人不要访问您网站的某些部分。
添加
User-agent: *
Disallow: /forward
到您的 robots.txt 将使所有机器人远离所有以 /forward
开头的页面。他们将继续访问和索引其他页面。
如果你想允许 /forward?path=something_nice
但不允许 /forward?path=very_bad_link
,你可以这样做:
User-agent: *
Disallow: /forward?path=a_specific_bad_link
Disallow: /forward?path=another_bad_link
为什么机器人会发出这些请求?
这可能是完全无辜的。也许有人错误地 link 访问了您的网站,也许该页面曾经存在但现在不存在了。
这可能是因为您自己网站上的 link 指向此 URL。检查一下。
在最坏的情况下,可能有人会在不知情的情况下将您用作代理人。确保服务器在请求 /forward
时不提供任何服务,并检查日志是否有任何其他可疑内容。
如果请求继续存在怎么办?
请求可能需要一段时间才能停止。机器人不会每次都请求你的robots.txt,你将不得不等待它们更新。
但是,如果它们最终没有停止,则表示它们是恶意机器人,并且会欺骗 Googlebot 用户代理。 robots.txt 向机器人提供 说明 。善意的机器人尊重他们,但他们不能强迫恶意机器人远离。然后你需要一个像 fail2ban 这样的解决方案。
在我的 apache 日志中,我有很多这样的东西:
<IP ADDRESS> - - <DATE> "GET /forward?path=http://vary_bad_link_not_for_children" <NUM1> <NUM2> "-" <String>
<字符串>:
"Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/)"
"Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)"
"Mozilla/5.0 (compatible; Googlebot/2.1; +...a link)"
"Mozilla/5.0 (compatible; Exabot/3.0; +...a link)"
等...
我用这个正则表达式为 fail2ban 设置了监狱:
failregex = ^<HOST> .*"GET .*/forward\?path=
除了被禁止的 IP 地址(见日志中的
真不明白为什么会这样;我的意思是我为什么要禁止 google 和其他公司,如果不是,我为什么要接受对我的服务器的所有这些不适当的请求。
我想澄清我的问题,因为它解释得不好:
1-为什么 Google IP(和其他知名公司)正在做那种 "porn" 请求
2-“/forward?path=...”有什么意义吗?它是 apache 的功能吗?
3-如何在不停止 "good" 机器人引用我的站点的情况下处理此问题。
提前感谢您的帮助!
您可以在 robots.txt 中告诉机器人不要访问您网站的某些部分。
添加
User-agent: *
Disallow: /forward
到您的 robots.txt 将使所有机器人远离所有以 /forward
开头的页面。他们将继续访问和索引其他页面。
如果你想允许 /forward?path=something_nice
但不允许 /forward?path=very_bad_link
,你可以这样做:
User-agent: *
Disallow: /forward?path=a_specific_bad_link
Disallow: /forward?path=another_bad_link
为什么机器人会发出这些请求?
这可能是完全无辜的。也许有人错误地 link 访问了您的网站,也许该页面曾经存在但现在不存在了。
这可能是因为您自己网站上的 link 指向此 URL。检查一下。
在最坏的情况下,可能有人会在不知情的情况下将您用作代理人。确保服务器在请求 /forward
时不提供任何服务,并检查日志是否有任何其他可疑内容。
如果请求继续存在怎么办?
请求可能需要一段时间才能停止。机器人不会每次都请求你的robots.txt,你将不得不等待它们更新。
但是,如果它们最终没有停止,则表示它们是恶意机器人,并且会欺骗 Googlebot 用户代理。 robots.txt 向机器人提供 说明 。善意的机器人尊重他们,但他们不能强迫恶意机器人远离。然后你需要一个像 fail2ban 这样的解决方案。