Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Домашняя Ubuntu dhcdrop - убиваем «незаконные» DHCP сервера

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

Домашняя Ubuntu dhcdrop - убиваем «незаконные» DHCP сервера