@Drammm

Автоматизация обратного DNS-запроса?

У меня сильно нашпигованный конфиг Nginx ибо я очень не люблю плохих ботов.
одним из условий в конфиге я собираю в отдельный лог запросы от ботов которые косят юзерагеном под поисковых ботов, но таковыми не являются.

Но так как подсети поисковиков могут измениться хотелось бы настроить автоматическую проверку к примеру топ 10 IP из этого лога.

Прошу вас - помогите написать bash скрипт для автоматизации проверки.
К примеру такой командой
cat /var/log/nginx/access.zakos_pod_good_bot.log | awk '{if ($9=="503") {print $1}}' | sort | uniq -c | sort -nr | head

я получаю ТОП 10 IP , далее пишу их в файл

#!/bin/bash
cat /var/log/nginx/access.zakos_pod_good_bot.log | awk '{if ($9=="503") {print $1}}' | sort | uniq -c | sort -nr | head > dns.txt

Далее логику работы я вижу такой - каждый из этих IP проверяем командой Host, например
host 95.213.246.202
Host 202.246.213.95.in-addr.arpa. not found: 3(NXDOMAIN)

и т.д. Куда то записываем эти данные, в лог какой-то. Далее сканируем этот лог на наличие в нем

yandex.ru
google.com

Так как IP ботов яндекса и гугла возвращает

host 37.9.113.197
197.113.9.37.in-addr.arpa domain name pointer 37-9-113-197.spider.yandex.com.

host 66.249.76.57
57.76.249.66.in-addr.arpa domain name pointer crawl-66-249-76-57.googlebot.com.

Если при сканировании лога нашли Яндекс или Гугл - шлем уведомление админу.
Помогите дописать bash скрипт пожалуйста
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ISE73
С помощью xargs -n 1 вызывай host и пиши ответы в файл.
Дальше grep и по коду возврата уведомляй админа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы