usando o CentOS com IP estático, existe alguma maneira de determinar se um servidor DHCP está sendo executado na rede usando o bash?
linux
networking
centos
dhcp
Steve
fonte
fonte
Se disponível no repositório, há dhcpdump
da página do manual:
fonte
Se você estiver
tcpdump
disponível, chamar o programa como root com os seguintes parâmetros pode ajudá-lo a encontrar o servidor:Infelizmente, devido ao layout da minha rede, não consigo capturar um handshake DHCP completo imediatamente. No entanto, vejo uma solicitação DHCP do meu iPad:
Depois de deixar o `tcpdump 'rodar durante a noite, acabei vendo este ACK:
Se, ao executar esse
tcpdump
comando, você vir uma Oferta BOOTP / DHCP ou Ack (Nack), será de um servidor DHCP e o endereço MAC do servidor será logo após o registro de data e hora na primeira linha.Portanto, o servidor DHCP (válido) aqui tem o endereço MAC a8: 39: 44: 96: fa: b8`.
Usando uma das muitas ferramentas de pesquisa de endereço MAC na Web , vejo que esse MAC pertence ao
A8:39:44 Actiontec Electronics, Inc
qual é meu roteador.Para capturar pacotes de servidores DHCP não autorizados à medida que ocorrem, eu precisaria deixar esse
tcpdump
processo em execução na janela do terminal:tcpdump -i en0 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8
Isso só me mostrará respostas do servidor DHCP de hosts diferentes do meu servidor DHCP válido, desde que o processo esteja sendo executado em sua própria janela.
O comando a seguir será executado em segundo plano até que 100 pacotes sejam capturados, acrescentando ao arquivo qualquer mensagem não autorizada do servidor DHCP
/tmp/rogue
. Novamente, o endereço MAC do seu servidor DHCP válido deve ser usado no local apropriado, bem como o descritor de interface no seu sistema.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 &
`
fonte
tcpdump
comando em execução, ele exibirá pacotes do servidor DHCP enviados por um endereço MAC diferente do seu servidor DHCP. Claro, você precisará fornecer o endereço no local indicado ... Vou colocá-lo na minha resposta atualmente, para obter uma melhor formatação.Com tempo suficiente, pode ser possível fazer a detecção passivamente: Lembre-se de que um cliente inicializando envia uma transmissão DHCPDISCOVER. Se um dhcpserver estiver disponível, ele fará uma oferta e emitirá (novamente como transmissão!) Um DHCPREQUEST. portanto
O sucesso dos dois primeiros pontos depende do número de outros hosts recém-conectados / inicializados na rede e também dos tempos de concessão.
fonte
Você pode tentar criar um dispositivo de alias e usar um cliente dhcp no modo de teste, onde ele imprime qualquer resposta, sem realmente reconfigurar a interface:
Eu só tenho acesso a uma caixa debian, portanto, se você tiver outra implementação dhcp, a opção dry-run pode ser diferente, como para dhcpcd:
Eu costumava ter um script cron rodando com algo assim, que alertava o administrador (eu!) Sobre servidores desonestos dhcp.
fonte
ifconfig eth0:1 up
a saídaSIOCSIFFLAGS: Cannot assign requested address