Поиск ip адресов спам ботов в access логах веб сервера

в разделе Администрирование | Метки:

Последнее время как то особенно активировались спам-боты, которые постят комментарии, reCaptcha уже успешно пробивается ими и перестала быть проблемой. Я решил банить ботов по айпишникам на веб-сервере, пока их количество не очень большое и особой проблемы добавить еще один айпишник в .htaccess не составит. Для тех у кого большой посещаемый сайт лучше конечно будет банить ботов на iptables/ipfw.

Собственно команда для поиска:

$ cat ~/logs/apache/access_mindinmotion_*|grep 'POST /comment/' | awk '{print $1}' | sort | uniq -c |sort -rn
143 92.241.169.70
112 95.64.12.14
104 91.195.230.11
36 77.93.2.81
26 91.201.66.61
20 91.201.66.35
16 193.201.81.3
16 193.105.210.174
14 194.187.151.104
14 188.143.232.26
8 95.64.12.12

Некоторые пояснения:

  • grep 'POST /comment/' - выбрать только те записи, где бот делает запрос POST к урлу /comment/*
  • awk '{print $1}' - вырезать первую колонку из лога, ip-адрес в моем случае
  • uniq -c - выбрать только уникальные
  • sort -rn - отсортировать в обратном порядке по количеству запросов.

На выходе получается список в котором первая колонка - количество запросов с айпишника, вторая колонка - айпишник.