używając CentOS ze statycznym adresem IP, czy jest jakiś sposób na określenie, czy serwer DHCP działa w sieci za pomocą bash?
linux
networking
centos
dhcp
Steve
źródło
źródło
Jeśli jest dostępny w repozytorium, istnieje dhcpdump
ze strony man:
źródło
Jeśli masz
tcpdump
do dyspozycji, wywołanie programu jako root z następującymi parametrami może pomóc w znalezieniu serwera:Niestety z powodu układu mojej sieci nie mogę od razu zarejestrować pełnego uścisku dłoni DHCP. Widzę jednak żądanie DHCP z mojego iPada:
Po pozwoleniu `tcpdump 'na działanie przez noc, w końcu zobaczyłem to ACK:
Jeśli po uruchomieniu tej
tcpdump
komendy zobaczysz ofertę BOOTP / DHCP lub Ack (Nack), będzie ona pochodzić z serwera DHCP, a adres MAC serwera będzie znajdował się zaraz po znaczniku czasu w pierwszym wierszu.Tak więc (prawidłowy) serwer DHCP ma tutaj adres MAC a8: 39: 44: 96: fa: b8`.
Używając jednego z wielu narzędzi do wyszukiwania adresów MAC w sieci , widzę, że ten MAC należy do
A8:39:44 Actiontec Electronics, Inc
mojego routera.Aby złapać nieuczciwe pakiety serwera DHCP, musiałbym pozostawić ten
tcpdump
proces uruchomiony w oknie terminala:tcpdump -i en0 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8
To pokaże mi tylko odpowiedzi serwera DHCP od hostów innych niż mój prawidłowy serwer DHCP, o ile proces działa we własnym oknie.
Następujące polecenie będzie działać w tle, aż do przechwycenia 100 pakietów, dołączając do pliku wszelkie nieuczciwe komunikaty serwera DHCP
/tmp/rogue
. Ponownie adres MAC ważnego serwera DHCP musi zostać użyty w odpowiednim miejscu, a także deskryptor interfejsu w systemie.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 &
`
źródło
tcpdump
polecenie uruchomione, wyświetli się pakiety serwera DHCP wysłane przez adres MAC inny niż adres serwera DHCP. Oczywiście musisz podać adres we wskazanym miejscu ... Umieszczę go obecnie w mojej odpowiedzi, aby uzyskać lepsze formatowanie.Przy wystarczającej ilości czasu wykrycie pasywne może być możliwe: Przypomnij sobie, że klient inicjujący wysyła transmisję DHCPDISCOVER. Jeśli dostępny jest serwer dhcpserver, opuści on ofertę, a następnie wyemituje (ponownie jako transmisję!) ŻĄDANIE DHCP. A zatem
Sukces pierwszych dwóch punktów zależy od liczby innych hostów nowo podłączonych / uruchomionych do sieci, a także od czasu dzierżawy.
źródło
Możesz spróbować utworzyć urządzenie aliasowe i użyć klienta dhcp w trybie testowym, w którym wypisuje on dowolną odpowiedź bez faktycznej rekonfiguracji interfejsu:
Mam tylko dostęp do skrzynki debian, więc jeśli masz inną implementację dhcp, opcja uruchamiania na sucho może być inna, jak w przypadku dhcpcd:
Kiedyś miałem skrypt crona uruchamiany z czymś takim, co ostrzegałoby administratora (mnie!) O nieuczciwych serwerach dhcp.
źródło
ifconfig eth0:1 up
do wyjściaSIOCSIFFLAGS: Cannot assign requested address