используя CentOS со статическим IP, есть ли способ определить, работает ли в сети DHCP-сервер, использующий bash?
linux
networking
centos
dhcp
Стив
источник
источник
Если доступно в репозитории есть dhcpdump
со страницы руководства:
источник
Если у вас есть
tcpdump
доступ, запуск программы с правами root со следующими параметрами может помочь вам найти сервер:К сожалению, из-за структуры моей сети, я не могу сразу получить полное рукопожатие DHCP. Тем не менее, я вижу запрос DHCP от моего iPad:
После того как tcpdump запустился на ночь, я в конце концов увидел ACK:
Если при выполнении этой
tcpdump
команды вы видите предложение BOOTP / DHCP или Ack (Nack), это будет от DHCP-сервера, а MAC-адрес сервера будет указан сразу после отметки времени в первой строке.Таким образом, (действительный) DHCP-сервер здесь имеет MAC-адрес a8: 39: 44: 96: fa: b8`.
Используя один из многих инструментов поиска MAC-адресов в Интернете, я вижу, что этот MAC-адрес принадлежит
A8:39:44 Actiontec Electronics, Inc
моему маршрутизатору.Для того, чтобы перехватить пакеты несанкционированного DHCP-сервера, как они происходят, мне нужно оставить этот
tcpdump
процесс запущенным в окне терминала:tcpdump -i en0 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8
Это покажет мне ответы DHCP-сервера от хостов, отличных от моего действующего DHCP-сервера, если процесс выполняется в своем собственном окне.
Следующая команда будет работать в фоновом режиме до тех пор, пока не будут собраны 100 пакетов, добавляя в файл любые сообщения мошеннического DHCP-сервера
/tmp/rogue
. Опять же, MAC-адрес вашего действующего DHCP-сервера должен использоваться в соответствующем месте, а также дескриптор интерфейса в вашей системе.tcpdump -U -i en0 -c 100 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8 >> /tmp/rogue 2>&1 &
`
источник
tcpdump
команду запущенной, она будет отображать пакеты DHCP-сервера, отправленные по MAC-адресу, отличному от вашего DHCP-сервера. Конечно, вам нужно будет указать адрес в указанном месте ... Сейчас я добавлю его в свой ответ, чтобы улучшить форматирование.При наличии достаточного количества времени может быть возможно выполнить обнаружение пассивно. Вспомните, что инициализирующий клиент отправляет широковещательную рассылку DHCPDISCOVER. Если dhcpserver доступен, он откроет предложение и затем выдаст (снова как широковещательно!) DHCPREQUEST. таким образом
Успех первых двух пунктов зависит от количества других узлов, вновь подключенных / загруженных к сети, а также от времени аренды.
источник
Вы можете попробовать создать псевдоним устройства и использовать клиент dhcp в режиме тестирования, где он печатает любой ответ, фактически не перенастраивая интерфейс:
У меня есть доступ только к коробке Debian, так что если у вас есть другая реализация dhcp, опция пробного запуска может отличаться, как для dhcpcd:
Я имел обыкновение запускать скрипт cron с чем-то вроде этого, который предупредил бы администратора (меня!) О мошеннических серверах dhcp.
источник
ifconfig eth0:1 up
выходнойSIOCSIFFLAGS: Cannot assign requested address