adm-lib.ru

Библиотека админа
Текущее время: 06 дек 2016, 22:55

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: 4) Легкий ддос. Небольшой ботнет.
СообщениеДобавлено: 23 мар 2011, 20:31 
Не в сети
Администратор

Зарегистрирован: 24 янв 2011, 11:05
Сообщений: 43
Начинаем как обычно?
Лирическое отступление.
Один из моих работодателей, и, надеюсь, с недавнего времени, партнеров, СЕО-шник. Но, не просто спец, а Спец с большой буквы, Мастер своего дела. Вы часто встречали специалистов в области СЕО с более чем 15-ти летним стажем? А мне повезло.
Я, толком, не знаю, что она делает с сайтами, даже предположить не могу, но сайты поднимаются очень быстро. Причем, она не только продвиженец, но и маркетолог, организатор, и т.д. и т.п. Поэтому под ее началом строятся сайты. Стоит это недешево, но оно того стоит, простите за тавтологию.
Конец отступления.
Строился новый интернет-магазин. Пока доводился до ума, был запаролен, с внешнего мира невиден. Все шло как всегда: срывались стоки, програмеры, дизайнеры, контентщики, и Ваш покорный слуга получали по очереди и все вместе пи...лей (пилюлей, подзатыльников), но сроки, все равно, срывались. В общем, шел нормальный творческий процесс создания нового проекта.
Наконец, большинство хвостов подтянули и магазин увидел мир, ( или мир увидел магазин?).
Что с ним делали, мне неведомо, СЕО, к сожалению, для меня и по сей день остается чем-то сродни черной магии, но через недельку-полторы по многим запросам сайт начал светится в топе.
Ниша магазина была довольно прибыльная, поэтому, я так думаю, такое положение дел кое-кого конкретно не устроило. Вы уже догадываетесь что произошло? Сайт начали досить.
Начали как-то вяло, запросы то нарастали до запредельной для сервера величины, то наступало затишье. Теперь это уже были не пионеры со своих компов, это был бот-нет, не очень большой, порядка 2000 подконтрольных машин, но довольно неприятный. И он откуда-то управлялся.
Сначала запрашивались картинки, что побольше - для апача хоть это процесс не ресурсоемкий, но все-же сервер затыкался довольно быстро. Вы спросите, стоял ли у меня nginx? Да, в то время уже стоял, но исключительно в качестве фронтэнда, все запросы, в том числе и на графику, отдавались апачу. Спросите, почему так? Очень просто, Вы же знаете, что главный принцип системного администрирования: "работает, не трогай". Поставился nginx, заработал в простейшей конфигурации быстро и красиво, никто его больше и не трогал.
Дальше. Раз боты дружно взялись за картинки, я довольно просто дописал в конфиг nginx отдачу этих самых картинок минуя апач. Теперь уже веселиться стал я: боты дергают картинки, nginx их ненапряжно, легко и свободно отдает, канал загружен далеко не полностью, сайты работаю на ура, а боты уже наелись!
Прошло несколько часов, и такую неприглядную, с его точки зрения, картину обнаружил и человек, управляющий бот-нетом. Атака стихла, я пошел спокойно спать, но, не тут то было.
На следующий день атака возобновилась. Тактика поменялась - на этот раз основная масса запросов пришлась на главную страницу, для генерации которой програмеры умудрились делать несколько(десятков?) запросов к базе, плюс к чему еще и товары на ней выводились не одни и те-же, а, при каждом обращении, выбирались случайным образом. Теперь уже за волной запросов не справлялась связка php-mysql. Настало время мне чесать репу...
Рассуждал, примерно, так: раз при переводе на отдачу статики nginx, сервер справился с атакой, то не такой уж и большой этот бот-нет. А что, если закешировать страницы сайта и отдать их ботам из кеша? Оно то так, но что делать с товарами, которые каждый раз другие на главной странице? Ведь админ не вправе менять логику работы сайта.
Мысль была проста (простота - сестра таланта?) - давайте закешируем страницы, в том числе и главную на 5 секунд! Нормальный пользователь вряд-ли будет обновлять страницу чаще, а боту все равно, какую страницу получать.
Сказано - сделано, доводка конфига до кондиции, проверка корректности работы и...
Пришел праздник и на мою улицу - сайт начал летать, боты наелись. А дело шло к нескольким выходным, не то майские, не то 8-е марта.
Владелец бота еще несколько раз менял тактику, то пробовал атаковать другие страницы, то распределял атаку равномерно по сайту, но я только посмеивался.
Попытки прекратились раньше, чем наступил первый рабочий день. Не то закончились деньги на уплату атаки, не то владелец бот-нета смирился. И слава Богу, поскольку в первый же рабочий день мне позвонил владелец магазина и начал выяснять, почему это он вдруг не может зайти в свой же собственный магазин? Недолгие разборки показали, что кеширование я, таки, настроил некорректно, и его нужно отключить или перестраивать. Я отключил, ведь атака к тому времени уже закончилась!
Да, чуть не забыл - по законам жанра, в конце каждого повествования нужно делать вывод. Не будем отступать от правил.
Из всего вышеизложенного можно сделать вывод, что небольшой бот-нет можно отразить просто правильно настроив сервер.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB