SYN-Flood и как я с ним боролся

Доброго времени суток.

Столкнулся с SYN-Flood атакой на сервер. Опишу вкратце как с этим боролся. Конкретно при атаке, которую произвели на мой сервер симптомы были такие (помимо того, что была большая куча полуоткрытых SYN-RECV соединений с разных IP-адресов) — сайты на сервере перестали открываться по стандартному 80 порту.

Роль front-end выполняет nginx, back-end — apache. При этом, если открывать сайты по порту, который слушает apache, сайты открывались без проблем. SSL-соединения так же работали отлично. Все это сопровождается большим трафиком.

Можно конечно ограничить количество SYN пакетов (соединений) с одного IP-адреса. Но в моем случае так не получилось — все пакеты были с разных адресов. Решилось все частично (сменился тип атаки) установкой cookie на SYN:

sysctl net.ipv4.tcp_syscookie=1

Тут (журнал Хакер) есть некое руководство, как защитится от подобных атак. С некоторыми изменениями подходит для *nix систем (вся разница в наименовании системных настроек, на сколько я понял).

Единственный минус — после перезагрузки этот параметр встанет в 0 обратно. Так что надо еще занести в стандартную конфигурацию ядра.

Вот собственно и все метод рабочий.



2 Комментарии

  • Дак от какой по мощности атаки удалость отбиться? Синкуки не спасут при серьезных атаках.

    • Мощность была не велика, поэтому синкуки и помогли.
      Согласен, что если атака была бы посильнее, то так просто бы отбиться не получилось бы. Атака хоть была и вялая, но продолжительная: через пару дней попробовали куки отключить — ситуация повторилась.

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

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

    Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    Яндекс.Метрика