Как распознать дудос и что с этим делать?
Недавно я запустил проект - социальную сеть и маркетплейс для музыкантов и битмейкеров. После двух недель бета-тестирования, рассылок инвайтов, поиска инвесторов, фиксинга багов и страданий мною было принято решение открыть проект для всех желающих.
Спустя пару дней после открытия я стал получать сообщения от пользователей, что сайт, как студент перед дипломом стал часто прикладываться (не к бутылке).
Мы начали вместе с другом искать проблему и последнее о чем я мог подумать, что на мой маленький продукт кто-то решил наслать тонны запросов с целью прибить бедолагу.
htop на сервере периодически показывал 100% нагрузку на все ядра. Сначала помогали перезапуски фпм воркеров и очередей. Но со временем это перестало как либо помогать, мы все чаще и чаще были в даунтайме.
Далее мы оптимизировали все запросы, перестали брать все поля сущностей и переписали некоторые запросы на нативный sql. Проблема по прежнему оставалась вместе с нами. Мысли о дудосе все чаще и чаще закрадывались в мою голову, но этим опасения требовалось подтверждение.
Перебрав все варианты, я пошел читать, четам у девопсов и так как опыта борьбы с такого рода атаками не было, пришлось перечитать все что можно и перейти от теории к действиям.
Первым делом я стал мониторить трафик и это стало нашей первой победой. В логах нгинкса мы углядели сотни разных айпишников, сначала попробовали банить их вручную, но это было как мочиться против ветра, борясь с ветряной мельницей. И тут я решил, что пора, пора переезжать на cloudflare и все наши проблемы уйдут сами собой…
Я был молод и наивен, переехав на клаудфлейр, я включил режим «помогити, бьют» и стал ждать как мои проблемы уйдут сами собой. Спойлер: нет Даунтаймы продолжились несмотря на капчу для всех входящих. Почесав репу я дальше пошел читать четамкакувсех. Помониторив трафик я увидел, что больше всего запросов летит из Индонезии, Китая и России. Пришлось вручную настроить пачку правил, чтобы буря утихла и о да, буря стала затихать. Спустя пару дней атака прекратилась, в среднем на сайт прилетало по 10 миллионов запросов.
Спасибо, что прочитали статью, девопсов прошу не плеваться, писал глупый разработчик
Сайт доступен по ссылке: https://snipy.space