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