AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1116001
Accepted
alebal
alebal
Asked: 2019-02-06 21:41:31 +0800 CST2019-02-06 21:41:31 +0800 CST 2019-02-06 21:41:31 +0800 CST

通过 access.log 中的用户代理使用 fail2ban 阻止 badbot

  • 772

如何创建过滤器以使用 fail2ban 阻止这些?

    476 Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)
    892 ltx71 - (http://ltx71.com/)
    5367 Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, [email protected])
   6449 Barkrowler/0.9 (+http://www.exensa.com/crawl)

这份名单由此而来:

sudo cat /var/log/apache2/access.log | awk -F\" '{print $6}' | sort | uniq -c | sort -n

我已经尝试过 apache-badbot.conf,但它似乎不起作用......

fail2ban
  • 1 1 个回答
  • 6849 Views

1 个回答

  • Voted
  1. Best Answer
    Uyghur Lives Matter
    2019-02-10T10:46:08+08:002019-02-10T10:46:08+08:00

    处理烦人的机器人的正确方法是在“robots.txt”中阻止它们。但是您的评论表明他们忽略了该指令。用户代理阻止最终将是一场猫捉老鼠的游戏,但如果你想这样做,你需要以下内容。

    因此,如果您还没有启用读取 Apache 访问日志的apache-badbots jail,则需要启用。使用以下内容创建文件/etc/fail2ban/jail.d/apache-badbots.local:

    [apache-badbots]
    enabled = true
    

    apache-badbots jail的主要部分是在其中定义的,/etc/fail2ban/jail.conf因此您所要做的就是启用它。

    接下来,修改apache-badbots过滤器以包含您的机器人。编辑/etc/fail2ban/filter.d/apache-badbots.conf. 其中有一个自定义机器人的特定行:

    badbotscustom = EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider
    

    机器人是使用正则表达式指定的。要么替换那些,要么把你的用|s 分开。

    badbotscustom = EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider|BLEXBot|ltx71|DotBot|Barkrowler
    # OR
    badbotscustom = BLEXBot|ltx71|DotBot|Barkrowler
    

    接下来,您需要修改该failregex行,以便正则表达式匹配用户代理的任何部分,而不仅仅是整个内容。换行:

    failregex = ^<HOST> -.*"(GET|POST).*HTTP.*"(?:%(badbots)s|%(badbotscustom)s)"$
    

    to(注意另外两个.*):

    failregex = ^<HOST> -.*"(GET|POST).*HTTP.*".*(?:%(badbots)s|%(badbotscustom)s).*"$
    

    最后,重新加载 fail2ban 配置。

    sudo fail2ban-client reload
    

    此信息可能有助于参考。

    查看/etc/fail2ban/filter.d/apache-badbots.conf我拥有的最新 Ubuntu 16.04 服务器的更新,它看起来已经过时了。特别是有这样的评论:

    # DEV Notes:
    # List of bad bots fetched from http://www.user-agents.org
    # Generated on Thu Nov  7 14:23:35 PST 2013 by files/gen_badbots.
    

    我从fail2ban git 存储库生成了一个新的,但它仍然不包括那些机器人(可能源已过时或不完整)。如果你很好奇,你可以用下面的方法生成一个新的。

    git clone https://github.com/fail2ban/fail2ban
    cd fail2ban/
    ./files/gen_badbots
    

    新文件将在config/filter.d/apache-badbots.conf. 如果你想用它替换/etc/fail2ban/filter.d/apache-badbots.conf它。

    作为参考,这是apache-badbots的定义/etc/fail2ban/jail.conf。

    [apache-badbots]
    # Ban hosts which agent identifies spammer robots crawling the web
    # for email addresses. The mail outputs are buffered.
    port     = http,https
    logpath  = %(apache_access_log)s
    bantime  = 172800
    maxretry = 1
    

    %(apache_access_log)s变量来自并/etc/fail2ban/paths-debian.conf定义为/var/log/apache2/*access.log。

    作为参考,这是apache-badbots.conf我生成的(未经修改)。

    # Fail2Ban configuration file
    #
    # Regexp to catch known spambots and software alike. Please verify
    # that it is your intent to block IPs which were driven by
    # above mentioned bots.
    
    
    [Definition]
    
    badbotscustom = EmailCollector|WebEMailExtrac|TrackBack/1\.02|sogou music spider
    badbots = Atomic_Email_Hunter/4\.0|atSpider/1\.0|autoemailspider|bwh3_user_agent|China Local Browse 2\.6|ContactBot/0\.2|ContentSmartz|DataCha0s/2\.0|DBrowse 1\.4b|DBrowse 1\.4d|Demo Bot DOT 16b|Demo Bot Z 16b|DSurf15a 01|DSurf15a 71|DSurf15a 81|DSurf15a VA|EBrowse 1\.4b|Educate Search VxB|EmailSiphon|EmailSpider|EmailWolf 1\.00|ESurf15a 15|ExtractorPro|Franklin Locator 1\.8|FSurf15a 01|Full Web Bot 0416B|Full Web Bot 0516B|Full Web Bot 2816B|8484 Boston Project v 1\.0|Atomic_Email_Hunter/4\.0|atSpider/1\.0|autoemailspider|bwh3_user_agent|China Local Browse 2\.6|ContactBot/0\.2|ContentSmartz|DataCha0s/2\.0|DBrowse 1\.4b|DBrowse 1\.4d|Demo Bot DOT 16b|Demo Bot Z 16b|DSurf15a 01|DSurf15a 71|DSurf15a 81|DSurf15a VA|EBrowse 1\.4b|Educate Search VxB|EmailSiphon|EmailSpider|EmailWolf 1\.00|ESurf15a 15|ExtractorPro|Franklin Locator 1\.8|FSurf15a 01|Full Web Bot 0416B|Full Web Bot 0516B|Full Web Bot 2816B|8484 Boston Project v 1\.0|Atomic_Email_Hunter/4\.0|atSpider/1\.0|autoemailspider|bwh3_user_agent|China Local Browse 2\.6|ContactBot/0\.2|ContentSmartz|DataCha0s/2\.0|DBrowse 1\.4b|DBrowse 1\.4d|Demo Bot DOT 16b|Demo Bot Z 16b|DSurf15a 01|DSurf15a 71|DSurf15a 81|DSurf15a VA|EBrowse 1\.4b|Educate Search VxB|EmailSiphon|EmailSpider|EmailWolf 1\.00|ESurf15a 15|ExtractorPro|Franklin Locator 1\.8|FSurf15a 01|Full Web Bot 0416B|Full Web Bot 0516B|Full Web Bot 2816B|8484 Boston Project v 1\.0|Atomic_Email_Hunter/4\.0|atSpider/1\.0|autoemailspider|bwh3_user_agent|China Local Browse 2\.6|ContactBot/0\.2|ContentSmartz|DataCha0s/2\.0|DBrowse 1\.4b|DBrowse 1\.4d|Demo Bot DOT 16b|Demo Bot Z 16b|DSurf15a 01|DSurf15a 71|DSurf15a 81|DSurf15a VA|EBrowse 1\.4b|Educate Search VxB|EmailSiphon|EmailSpider|EmailWolf 1\.00|ESurf15a 15|ExtractorPro|Franklin Locator 1\.8|FSurf15a 01|Full Web Bot 0416B|Full Web Bot 0516B|Full Web Bot 2816B|8484 Boston Project v 1\.0|Atomic_Email_Hunter/4\.0|atSpider/1\.0|autoemailspider|bwh3_user_agent|China Local Browse 2\.6|ContactBot/0\.2|ContentSmartz|DataCha0s/2\.0|DBrowse 1\.4b|DBrowse 1\.4d|Demo Bot DOT 16b|Demo Bot Z 16b|DSurf15a 01|DSurf15a 71|DSurf15a 81|DSurf15a VA|EBrowse 1\.4b|Educate Search VxB|EmailSiphon|EmailSpider|EmailWolf 1\.00|ESurf15a 15|ExtractorPro|Franklin Locator 1\.8|FSurf15a 01|Full Web Bot 0416B|Full Web Bot 0516B|Full Web Bot 2816B
    
    failregex = ^<HOST> -.*"(GET|POST).*HTTP.*"(?:%(badbots)s|%(badbotscustom)s)"$
    
    ignoreregex =
    
    # DEV Notes:
    # List of bad bots fetched from http://www.user-agents.org
    # Generated on Sat Feb  9 12:59:57 EST 2019 by ./files/gen_badbots.
    #
    # Author: Yaroslav Halchenko
    
    • 7

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve