Анализируем access_log в bash
Если вы стали жертвой фрода, ваш сайт пытались взломать или нагрузка на ваш ресурс резко возросла, найдите IP злоумышленников и заблокируйте доступ в .htaccess с помощью директивы Deny:
Deny from 111.22.33.44
IP злоумышленников есть в файлах access_logs (логи доступа). Чтобы найти IP, с которого посетили, например, ‘order/1234’, переходим в папку с логами и вводим команду:
$ grep ‘order/1234’ * | awk ‘{print $2}’ | uniq
Если таких страниц много, создайте файл со списком url (например, ban.txt) и найдите сразу все IP одной командой:
$ grep -f ban.txt * | awk ‘{print $2}’ | uniq
Обратите внимание, что файл нужно создавать в unix (из-за разницы в том, как ОС делают переносы строк). Список запретных URL особенно эффективен, чтобы найти тех, кто сканирует сайт на уязвимости: например, ищет администраторскую (admin, root), техническую (var, database, php) и отладочную информацию (debug, test, error, exception).
А еще давайте найдем тех, кто создает аномально много запросов:
$ cat access_log-20241030 | awk ‘{print $2}’ | sort | uniq -c | sort | tail -5
Вывод команды покажет 5 наиболее активных посетителей в указанном логе (access_log-20241030) с количеством запросов. Проверьте тех, кто создает в намного больше запросов, чем остальные — это могут быть как очень активные пользователи или боты поисковых систем, так и злоумышленники.
Все посты подряд / Информационная безопасность / Хабр