Еще один способ защиты от несложной DDOS атаки

Итак ваш сервер подвергся очередной DDoS атаке.

В логах обнаружились повторяющиеся записи вида
Nov 28 22:07:05 srv1 kernel: ip_conntrack: table full, dropping packet.
Nov 28 22:07:10 srv1 kernel: printk: 224 messages suppressed.
Nov 28 22:07:10 srv1 kernel: ip_conntrack: table full, dropping packet.
Nov 28 22:07:15 srv1 kernel: printk: 244 messages suppressed.
Nov 28 22:07:15 srv1 kernel: ip_conntrack: table full, dropping packet.

Nov 28 22:07:20 srv1 kernel: printk: 217 messages suppressed.

Что означает переполнение таблицы соединений.

Проверим, что в действительности имеем

Факт на лицо – гигантское количество соединений.

Что у нас с параметрами tcp

Держать tcp соединение открытым в течение 2-х часов. Перебор !!!

Что можно предпринять для защиты от DDoS (не панацея, но жизнь облегчит)

1. Корректируем параметры tcp

Ищем файл /etc/sysctl.conf. В него вписываем следующее

# через 60 секунд с момента наступления тишины в канале сервером выполняется проба. Если клиент жив, то серверу высылается ответный пакет

# если ответа на проверку нет, то с интервалом в 10 секунд повторить

# Сколько раз повторить проверку после чего закрыть соединение

Сохраняем файл и обновляем системные переменные

После этого необходимо перезагрузиться, иначе надо ждать два часа, чтобы отвалились открытые соединения. Минут через 5 после перезагрузки посмотрим что получилось

Отбились.

2. Теперь iptables.

Опять же недавно был HTTP DDoS. С разных IP шли запросы

Побороли это просто (должен быть загружен модуль iptables string, iptables должен быть не ниже версии 1.3.5, а ядро – не ниже 2.6.18, собранным с опцией

Далее можно поставить ограничение по количеству одновременных соединений

# Лимит на 20 запросов в секунду для интерфейса eth0

# Максимум 10 одновременных соединений с одного IP

# Блокировка более 10 SYN

# 20 соединений на сеть класса С

вот и все….

Рейтинг материала
[Голосов: 0 Рейтинг: 0]
20 декабря 2014, 15:49

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

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