Убиваем «незаконные» DHCP сервера в сети

Давненько нашел дропалку DHCP-серверов, но никак не доходили руки до попробовать. Сегодня испытал в работе это дело. Переполняет запросами пул сервера и тот перестает отвечать. Сказочно.

Итак, расскажу об установке под Ubuntu.

Первым делом ставим необходимое для сборки dhcdrop:

$ sudo apt-get install build-essential automake libtool libpcap-dev

Теперь скачиваем последние исходники из svn:

$ svn co https://svn.codenet.ru/netpatch/dhcdrop/trunk/ /tmp/dhcdrop

Запускаем сборку:

$ cd /tmp/dhcdrop
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Из официальной документации:

  • -h — показывает help-сообщение.
  • -D — просмотр списка имён и индексов сетевых интерфейсов. Актуально в ОС Windows — см. пример ниже.
  • -t — Режим теста. В этом режиме dhcdrop не выполняет подавление сервера. Производится лишь посылка DHCPDISCOVER, если на него приходит ответ нелегального сервера, то программа заверается возвращаяя код 200 и выводя на экран строку вида DHCP SRV: 10.7.7.1 (IP-hdr: 10.7.7.1) SRV ether: 00:02:44:75:77:E4, YIP: 10.7.7.205 содержащую минимум информации о создающем проблему DHCP сервере.
  • -y — подразумевается ответ «yes» на любой вопрос программы.
  • -r — отключает рандомизацию MAC адреса источника. Каждый последующий MAC адрес источника увеличивается на 1.
  • -b — указывает на необходимость использования флага BROADCAST в отправляемых DHCP пакетах.
  • -a — всегда ожидать ответа сервера на порт DHCP клиента по умолчанию (68), даже если задано значение номера порта клиента отличное от значения по умолчанию.
  • -A — всегда ожидать ответа с порта DHCP сервера по умолчанию (67), даже если задано значение номера порта сервера отличное от значения по умолчанию.
  • -f — режим флуда запросами DHCPDISCOVER. ПРИМЕНЯТЬ С ОСТОРОЖНОСТЬЮ. Удобен для стресс-тестирования сервера. В случае указания опции -r все отправляемые пакеты имеют одинаковый MAC адрес.
  • -R — отправляет сообщение DHCPRELEASE с MAC адресом источника указанном при запуске программы и IP адресом указанным при помощи опции -F к серверу указанному опцией -s.
  • -q — «тихий» режим работы. Выводится минимум информации.
  • -m count — максимальное число попыток получения ответа от сервера.
  • -c count — максимальное число адресов арендуемых у сервера.
  • -n hostname — значение DHCP опции HostName (по умолчанию — «DHCP-dropper»)
  • -N clientname — значение DHCP опции Vendor-Class (по умолчанию — «DHCP-dropper»)
  • -p port — порт используемый клиентом для отправки DHCP сообщений. По умолчанию — 68.
  • -P port — порт сервера, на который отправляются DHCP сообщения. По умолчанию — 67.
  • -w секунд — задаёт таймаут рестарта процесса получения IP адресов в случае использования агрессивного режима. По умолчанию — 60 секунд.
  • -T timeout — устанавливает таймаут ожидания ответа сервера (в секундах). По умолчанию — 3 секунды.
  • -M хостов-максимум — максимально допустимое количество сканируемых хостов в случае использования агрессивного режима.
  • -l MAC-address — Ethernet адрес сервера который необходимо игнориновать при выполненении поиска ложных DHCP серверов в сети. В этой опции следует указать адрес DHCP сервера ответственного за раздачу адресов в данном сегменте сети. Может быть указано несколько адресов — каждый должен предваряться ключом -l.
  • -L легальная-сеть — указывает легальную IP подсеть для выбранного интерфейса. Использование этой опции автоматически включает агрессивный режим получения IP адресов. Может быть указано несколько сетей — каждая должна предваряться ключом -L. Подробное описание смотрите ниже.
  • -S сеть/маска — ARP сканирование сети ‘сеть’ с использованием сетевой маски ‘маска’ в CIDR нотации. IP адрес источника задаётся опцией -F. Если IP адрес источника не задан — используется случайный адрес из диапазона указанной подсети. Пример использования смотрите ниже.
  • -F исходящий-IP-адрес — указывает IP адрес источника для сканирования сети (опция -S), либо IP адрес DHCP клиента для отправки сообщения DHCPRELEASE (опция -R).
  • -s IP-адрес-сервера — задаёт IP адрес DHCP сервера. Используется с опцией -R.
  • -C count — число порождаемых процессов-потомков. Совместим только с флагом -f. Используется для увеличения числа отправляемых пакетов за единицу времени. При значении этого параметра равном 30, 10000 пакетов генерировалось менее чем за 1,5 секунды.
  • -i interface — имя либо индекс сетевого интерфейса (см. ключ -D). Не может быть «any»! Единственный обязательный параметр программы.
  • initial MAC address — задаёт MAC адрес источника используемый при отправке первого DHCP сообщения, либо используемый постоянно, в случае использования опции ‘-f’ (flood) вместе с опцией ‘-r’. Если не указан, то используется случайный MAC адрес источника.

Простейший запуск:

$ sudo dhcdrop -i eth0

Найдет все DHCP-сервера и по порядку спросит чего с ними делать. Остальное можно прочитать на официальном сайте. Тем более, что он русский. :)

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

5 комментариев(я)

(Обязательно)
(Обязательно, не публикуется)

Админ не опаздывает - у него просто сегодня плохой трафик!
Яндекс.Метрика beget