Блок badbot с fail2ban через агенты пользователя в access.log

Как я могу создать фильтр для блокирования их с 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, help@moz.com)
   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

Я судил апача-badbot.conf, но это, кажется, не работает...

4
задан 6 February 2019 в 20:14

1 ответ

Корректный способ иметь дело с раздражающими ботами состоит в том, чтобы заблокировать их в "robots.txt". Но Ваши комментарии указывают, что игнорируют ту директиву. Блокирование агентом пользователя в конечном счете будет кошкой и игрой мыши, но если Вы хотите сделать это, Вы хотите следующее.

Так, необходимо включить апачскую-badbots тюрьму, которая читает журнал доступа Apache, если Вы уже не имеете. Создайте файл /etc/fail2ban/jail.d/apache-badbots.local с содержанием:

[apache-badbots]
enabled = true

Основная часть апачской-badbots тюрьмы определяется в /etc/fail2ban/jail.conf таким образом, все, что необходимо сделать, включают его.

Затем, измените апачский-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)"$

к (отмечают дополнительные два .*):

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 clone https://github.com/fail2ban/fail2ban
cd fail2ban/
./files/gen_badbots

Новый файл будет доступен в config/filter.d/apache-badbots.conf. Если Вы хотите использовать его замена /etc/fail2ban/filter.d/apache-badbots.conf с ним.

Для ссылки это - определение апача-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
5
ответ дан 17 November 2019 в 04:22

Другие вопросы по тегам:

Похожие вопросы: