dhcdrop — убиваем «незаконные» DHCP сервера

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

 

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

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

 

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

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

 

$ 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-сервера и по порядку спросит чего с ними делать. 

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

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