# Мониторинг DDoS атак типа SYN-flood по SNMP

Источник: https://blog.xsk.in/it/monitoring-ddos-atak-syn-flood-po-snmp/216/
Опубликовано: 2013-07-01 · Рубрики: IT, Linux


В статье описаны методы определения и динамической защиты, а также реализация мониторинга SYN-flood атак по SNMP с помощью инструментария Cacti. Материал является частичным переводом документации с официального сайта разработчика метода и содержит, помимо всего остального, дополнения для корректной работы в системе.

Принцип динамической защиты заключается в подстройке параметров систем Linux и FreeBSD для работы с TCP в зависимости от величины очереди на SYN. В процессе работы по cron'у или периодическому запуску пуллером из Cacti скрипт проверяет значение очереди и регулирует подстроечные параметры ядра для снижения порога.

Установка и настройка сводится к следующему:

1. Скачать архив с исполняемым скриптом и файлом конфигурации [synflood-defender](http://synflood-defender.net/download/0.1.0 "ссылка на официальную страницу закачки")
2. Распаковать архив в систему и изменить путь внутри sh-файла на валидный
3. Внести изменения в файл snmpd.conf (с аналогичной адаптацией)

   > ```
   > # Synflood-Defender extension
   > extend synflooddefender /change/this/programpath/synflood-defender.sh
   > ```
4. Перечитать и перезапустить SNMP daemon. Это приведет к добавлению в дерево MIB нового OID, позже используемого Cacti:

   > ```
   >  NET-SNMP-EXTEND-MIB::nsExtendOutLine."synflooddefender".1
   > ```
5. Скачать темплейты для Cacti по ссылке выше (Tarball) и импортировать их в веб-приложение
6. Добавить сбор данных для устройства:

   - перейти Console » Management » Data Sources
   - нажать Add в правом верхнем углу
   - выбрать Selected Data Template: Synflood-Defender
   - выбрать устройство в поле Host
   - подтвердить выбор кнопкой Create
7. Создать график:

   - перейти Console » Management » Graph Management
   - нажать Add в правом верхнем углу
   - выбрать Selected Graph Template: Synflood-Defender
   - указать устройство в поле Host
   - после нажатия Create указать Data Source: Synflood-Defender

В процессе развертывания комплекса на системе под управлением Linux Ubuntu в логи Cacti повалили ошибки:

> ```
> 07/01/2013 10:25:02 PM - CMDPHP: Poller[0] Host[1] DS[55] WARNING: Result from SNMP not valid. Partial Result: U 07/01/2013 10:25:02 PM - CMDPHP: Poller[0] WARNING: SNMP Get Timeout for Host:'127.0.0.1', and OID:'NET-SNMP-EXTEND-MIB::nsExtendOutLine."synflooddefender".1'
> ```

При это скрипт работал исправно при запуске вручную из консоли. Попытка получения данных посредством snmp запроса выдала ошибку:

> ```
> # snmpwalk -v2c -c public localhost NET-SNMP-EXTEND-MIB
> NET-SNMP-EXTEND-MIB: Unknown Object Identifier (Sub-id not found: (top) -> NET-SNMP-EXTEND-MIB)
> ```

Это означало, что в системе не хватает определений MIB. Решение тривиальное - доустановить их:

> ```
> apt-get install snmp-mibs-dowloader
> ```

*Ссылки*:

- [Статья на Хабре](http://habrahabr.ru/post/131469/)
- [Официальный сайт разработчика](http://synflood-defender.net/)
- [Решение ошибки с MIB](https://www.zabbix.com/forum/showthread.php?p=123972&postcount=5)

