Несколько команд linux для защиты от парсеров в Битрикс окружении

Столкнулся с ситуацией, когда интернет-магазин на 1С-Битрикс работающий на VPS в битрикс окружении начал жестко тормозить. С помощью мониторинга (у меня установлен на этом сервере zabbix и есть мониторинг от хостера) единственную аномалию, которую обнаружил — сильно подрос исходящий трафик с сервера. При этом нагрузка на процессор, жесткий диск осталась в пределах обычной нормы, когда ничего не тормозит. Единственное, что пришло на ум — кто то парсит (а парсить было что ценного, да еще и довольно нагрузные страницы в огромном количестве).

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

Для начала, я пытался в логах nginx найти IP адреса с которых было много обращений. В логах апача все IP 127.0.0.1 (видимо из за связки с nginx). Вот команда, которая сортирует все IP адреса лога nginx по количеству совпадений.

В целом команда работает, но мне она ничего не дала, я там не увидел никакие IP адреса с большим количеством обращений к сайту. Да и вообще, это разбирается лог за день, а надо бы вообще за последний час, а как это сделать — я не нашел.

Далее решил, что видимо парсят в большое количество проксиков и поэтому не смогу я их так определить. Вроде как можно поставить специальное ПО для мониторинга, но я не нашел доступной инструкции для Centos по этому вопросу.

На помощь пришла мысль, что надо просто посмотреть сколько соединений в данный момент на порту https. Для этого есть команды (одна для http, другая для https).

Соединений оказалось не так и много (меньше 100), значит никаких кучи проксиков нет. И тут пришла на помощь команда, показывающая сколько соединений с каждого IP адреса.

И так уж свезло, что там был всего 1 IP адрес (не 127.0.0.1 — это от апача) который имел в районе 60 соединений, остальные максимум 4 соединения. Вот этот IP я проверил в whois, на удивление он был из города, в котором находилась компания, чей сайт. И благополучно забанил его. Нагрузку как рукой сняло.

UPDATE 21/06/2023: Команда для группировки IP адресов по количеству обращений к сайту за определенную дату:

Вывод: надо настраивать fail2ban.

PS. Прошу прощения, если есть неточности, правьте в комментах, я не специалист в этой области, мог многое напутать. И буду признателен за подсказки полезных против парсеров и брутфорсеров утилит.

One thought on “Несколько команд linux для защиты от парсеров в Битрикс окружении

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *