Как бороться с DDOS’ом: наш опыт
На протяжении последних 10-12 дней многие заметили перебои в работе с нашим сайтом. Причиной этого стала DDOS атака, которой подверглись не только мы, но и ряд медийных коллег. Приносим извинения всем тем, кто не смог своевременно открыть ту или иную статью — хоть мы и старались решать проблемы оперативно, ряд просчетов в выборе решения доставил определенные неудобства как читателям так и нам.
Хотелось бы вкратце описать наш опыт, возможно это пригодится тем, кому DDOS только предстоит, и по возможности коллективно обсудить оптимальные средства профилактики (в комментариях).
Для начала — совсем краткий ликбез, интересующиеся могут почитать
подробное описание на Википедии
:
DDOS — атака на вычислительную систему с целью довести её до отказа, то есть, создание таких условий, при которых легальные пользователи системы не могут получить доступ к предоставляемым системным ресурсам (серверам), либо этот доступ затруднён.
В общем случае DDOS (по-простому «дедос») — атака, во время которой злоумышленники атакуют ваш сервер (выделенный, облачный или виртуальный) большим количеством запросов, обработка которых отбирает драгоценные ресурсы у сервера, который в свою очередь не может обслужить обычных посетителей. Я не являюсь техническим специалистом и надеюсь, что профессионалы с пониманием отнесутся к упрощениям и простят неточности формулировок.
Как только мы узнали, что нас атакуют (типичная атака, в зависимости от того, откуда вы на нее смотрите, может выглядеть примерно так, как на скриншоте ниже), мы сразу начали искать доступные и быстрые варианты решения. Первым в поле зрения попал сервис
Cloudflare
— западный комбайн, который не только защищает от DDOS-атак, но и предлагает кучу других вещей вроде CDN, кэширования, оптимизирования, ускорения и тд.
Мы оперативно купили план за $200 в месяц, настроили все DNS-сервера и стали ждать. У CF есть какое-то подобие аналитики и статистики, но по мнению экспертов она не всегда показывает то, что нужно и доверять этим графикам можно не всегда.
Не буду вдаваться в детали, но решение от Cloudflare ситуацию не исправило. Во-первых, некоторые IP-адреса CF забанены в России Роскомнадзором и сайт случайным образом оказывается недоступен из разных точек страны. Во-вторых, более-менее внятная (но не 100%) защита от DDOS на не самой защищенной платформе WordPress достигается в случае включения всех настроек на максимум, при которых каждому посетителю сайта показывается вот такое окно, которое на некоторых устройствах после обещанных пяти секунд не пропадает:
В-третьих, разнообразное ускорение и кэширование CF не всегда гладко работало с кэшем в WP, и это тоже доставило немало сложных моментов в разработке и верстке сайта.
Поэтому пришлось искать другое решение, и несколько дней мы потратили на то, чтобы оценить сервис
WPEngine
.
Получивший недавно $15M сервис
, который специализируется на хостинге Вордпресса привлек внимание бурной прессой и широкими возможностями.
К сожалению, позитивные впечатление остались только от напора и профессионализма сейлзов WPEngine. Из-за нашего трафика (3M просмотров, 700K уникальных посещений в месяц) мы попали под непростой тарифный план
«Let’s talk»
, в результате чего нам насчитали порядка $2500 в месяц, при том, что для «ускорения работы и защиты от серьезных атак» все равно пришлось бы, по словам саппорта, пользоваться еще и платным тарифом Cloudflare.
С налетом легкого отчаяния пришлось обратиться к последнему варианту —
QRATOR
.
С самого начала атак я консультировался у нашего хостинг-провайдера
Selectel
, и QRATOR стоял в списке возможных вариантов, но был отброшен как «слишком дорогой».
Пословица «скупой платит дважды» в нашем случае звучала как «скупой платит трижды и две недели панически смотрит на падающие сервера».
После заведения аккаунта в QRATOR, обновления DNS, защита заработала, но все равно некоторые посетители видели уже привычные читателям ЦП 502 ошибку
К счастью, после оперативой консультации с техническими специалистами QRATOR выяснилось, что проблема возникала на стороне сервера, который настраивался 3-4 различными профессионалами с разным уровнем подготовки. После внесения нужных правок в iptables, донастройки конфигурации nginx и еще нескольких таинственных для стороннего наблюдателя действий все стало работать как часы.
Вот так, например, выглядит наша, по словам специалистов QRATOR, «детская» DDOS-атака:
А вот так выглядит уже что-то более изобретательное:
Хотелось бы заметить, что в последнее время DDOS-атакам стали подвергаться многие медийные ресурсы совершенно разных размеров.
Roem
,
Lifehacker.ru
, 2ch.hk,
Ведомости
, и другие.
Без работы QRATOR явно не останется.
Отдельное спасибо за помощь в борьбе с DDOS
Василию Борисову
(Selectel),
Александру Лямину
, Артему Гавриченкову, Александру Зубкову, Александру Вяря (все — QRATOR),
Константину Ковшенину
(Automattic) и
Илье Чекальскому
(TJournal).
PS: Ведомости:

Источник:Цукерберг Позвонит