Анализ и защита от DDOS-атак

Диагностика DDOS-атаки

 

Подсчет кол-ва подключений к серверу

     — для Centos5

     — для Centos6

 

SYNflood

Подсчет кол-ва попыток установить соединение

 

Просмотр кол-ва запросов с каждого адреса на установку соединений

 

Проверка кол-ва полузакрытых соединений

 

Просмотр кол-ва и типов установленных соединений

 

Просмотр кол-ва подключений на каждый порт

 

HTTP-flood

 

Подсчет кол-ва процессов Apache(если он используется)

 

Подсчет кол-ва подключений на 80-порт

 

Подсчет кол-ва подключений с каждого адреса на 80 порт

 

Подсчет кол-ва подключений с каждого адреса по протоколу tcp или udp

 

Запись в файл первых 1000 пакетов на порт 80 на интрфейсе eth0

 

Анализ файла /tmp/ddos.log – просмотр списка адресов, с которых идет подключения на 80 порт отсортированного по кол-ву подключений с каждого адреса

 

Просмотр логов на предмет резкого увеличения их размеров

 

Определение через server-status имени сайта, на который направлен DDOS при использовании apache(предварительно нужно настроить модуль mod_status)

 

после обнаружения имени сайта закрываем доступ к нему

а) в Apache через добавление  в .htaccess в корне сайта строки

b) в Nginx через добавление в файл описания вирт.хоста

в секцию server после директивы server_name строки deny all;

 

Фильтрация пакетов

 

Блокирование доступа к 80 порту с конкретного адреса xxx.xxx.xxx.xxx

или с подсети xxx.xxx.0.0/16

 

Ограничение максимального числа «полуоткрытых» соединений с одного IP к конкретному порту (необходим соответствующий модуль):

 

Ограничение кол-ва одновременных соединений с одного IP-адреса

 

Добавление в ipset адресов,которые имеют больше,например, 1000 подключений при анализе log-файла виртуального хоста

 

Добавление в ipset адресов,которые имеют больше,например, 1000 подключений при анализе текущих подключений на 80 порт

 

Скрипт для автоматизации – который  каждые 30 секунд проверяет кол-во подключений   и блокирует доступ к порту 80 для адресов, которые, например, имеют больше 1000 подключений(если адрес уже добавлен в ipset, то он дублироваться не будет)

 

Аналогично,только не блокировка адресов при обработке лога конкретного виртуального хоста, а  блокировка текущих подключений на 80 порт  для всех виртуальных хостов.

 

ICMPflood

Защита от ICMP-флуда

 

Настройки перемнных ядра (sysctl) для уменьшения эффективности DDOS-атаки, направленной на израсходование ресурсов сервера

 

ICMP-flood

Команда ниже поможет при отражении атаки типа icmp-flood.

   (по умолчанию — 0)

 

SYN-flood

Уменьшение времени удержания «полуоткрытых» соединений:

   (по умолчанию — 5)

Включение TCP syncookies:

  (по умолчанию — 1)

 

Увеличиваем размер очереди полуоткрытых соединений.

(по умолчанию — 2048)

 

Проверять TCP-соединение каждую минуту. Если на другой стороне — легальная машина, она сразу ответит.

(по умолчанию – 7200=2часа)

 

Повторить проверку через 20 секунд

 

Количество проверок перед закрытием соединения

(по умолчанию – 9)

 

Изменяем время ожидания приема FIN

(по умолчанию – 60)

 

Защита от спуфинга(подмены адреса)

 

Для применения настроек после перезагрузки добавляем их в

 

Борьба с DDOS-атакой с помощью готовых решений

http://10serv.com/borba-s-ddos-atakoy-s-pomoshhyu-d-dos-deflate/

 

Защита от использования злоумышленником Вашего сервера в участии в DDOS-атаках

(NTP-amplification)

В качестве меры для предотвращения участия NTP-серверов в DDoS-атаках рекомендуется запретить выполнение команды мониторинга через директиву «disable monitor»

проверка

 

Источник:

http://firstwiki.ru/index.php/%D0%9A%D1%80%D0%B0%D1%82%D0%BA%D0%BE%D0%B5_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_%D0%B1%D0%BE%D1%80%D1%8C%D0%B1%D0%B5_%D1%81_DDOS-%D0%B0%D1%82%D0%B0%D0%BA%D0%B0%D0%BC%D0%B8_%D0%BD%D0%B0_http-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80

http://yourweb.net.ua/?p=437

 

Базовая работа с Ipset

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

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