Quelle est la meilleure approche pour déterminer si mon réseau contient un serveur DHCP non autorisé?
Je me demande comment la plupart des administrateurs abordent ce genre de problèmes. J'ai trouvé DHCP Probe lors d'une recherche et j'ai pensé à l'essayer. Quelqu'un en at-il déjà fait l'expérience? (J'aimerais savoir avant de prendre le temps de le compiler et de l'installer).
Connaissez-vous des outils utiles ou des pratiques recommandées pour la recherche de serveurs DHCP non autorisés?
networking
dhcp
l0c0b0x
la source
la source
Réponses:
Une méthode simple consiste simplement à exécuter un renifleur tel que tcpdump / wireshark sur un ordinateur et à envoyer une requête DHCP. Si vous voyez des offres autres que celles de votre vrai serveur DHCP, alors vous savez que vous avez un problème.
la source
tcpdump
,arp
etc. avec des paramètres explicites et explication de ces paramètres.Pour récapituler et ajouter à certaines des autres réponses:
Désactivez temporairement votre serveur DHCP de production et vérifiez si d'autres serveurs répondent.
Vous pouvez obtenir l'adresse IP du serveur en exécutant
ipconfig /all
sur une machine Windows, puis vous pouvez obtenir l'adresse MAC en recherchant cette adresse IP à l'aide dearp -a
.Sur un Mac, lancez
ipconfig getpacket en0
(ou en1). Voir http://www.macosxhints.com/article.php?story=20060124152826491 .Les informations sur le serveur DHCP se trouvent généralement dans / var / log / messages.
sudo grep -i dhcp /var/log/messages*
Désactiver votre serveur DHCP de production peut ne pas être une bonne option, bien sûr.
Utilisez un outil qui recherche spécifiquement les serveurs DHCP non autorisés
Voir http://en.wikipedia.org/wiki/Rogue_DHCP pour une liste d'outils (dont beaucoup ont été répertoriés dans d'autres réponses).
Configurer les commutateurs pour bloquer les offres DHCP
La plupart des commutateurs gérés peuvent être configurés pour empêcher les serveurs DHCP non autorisés:
http://www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.2SX/configuration/guide/snoodhcp.html
http://www.juniper.net/techpubs/en_US/junos9.2/topics/concept/port-security-dhcp-snooping.html
http://h40060.www4.hp.com/procurve/uk/en/pdfs/application-notes/AN-S12_ProCurve-DHCP-snooping-final.pdf
la source
dhcpdump , qui prend le formulaire en entrée tcpdump et affiche uniquement les paquets liés à DHCP. M'a aidé à trouver Windows rootkited, en se faisant passer pour un faux DHCP sur notre réseau local.
la source
Les approches Wireshark / DHCP explorer / DHCP Probe conviennent à un contrôle ponctuel ou périodique. Cependant, je vous conseillerais de vous renseigner sur la prise en charge de DHCP Snooping sur votre réseau. Cette fonctionnalité offre une protection constante contre les serveurs DHCP non autorisés du réseau et est prise en charge par de nombreux fournisseurs de matériel.
Voici la fonctionnalité définie comme indiqué dans les documents Cisco .
la source
dhcploc.exe est le moyen le plus rapide et le plus pratique sur les systèmes Windows. Il est disponible dans les outils de support XP. Les outils de support se trouvent sur chaque disque OEM / XP XP, mais peuvent ou non se trouver sur des "disques de récupération" fournis par certains OEM. Vous pouvez également les télécharger à partir de MS.
C'est un simple outil en ligne de commande. Vous exécutez dhcploc {votre adresse IP} , puis appuyez sur la touche 'd' pour effectuer une fausse découverte. Si vous le laissez fonctionner sans appuyer sur aucune touche, il affichera chaque requête DHCP et répondra. Appuyez sur 'q' pour quitter.
la source
Scapy est un outil de création de paquets basé sur Python qui convient à ces tâches de tri. Il y a un exemple de comment faire exactement cela ici .
la source
Pour développer le commentaire de l0c0b0x sur l'utilisation en
bootp.type == 2
tant que filtre. Le filtre bootp.type est uniquement disponible dans Wireshark / tshark. Il n'est pas disponible dans tcpdump, ce que la position contextuelle de son commentaire m'a amené à croire.Tshark fonctionne parfaitement pour cela.
Notre réseau est divisé en plusieurs domaines de diffusion, chacun disposant de sa propre sonde basée sur Linux avec un point de présence sur le domaine de diffusion "local" et sur un sous-réseau administratif d'une manière ou d'une autre. Tshark, associé à ClusterSSH, me permet de rechercher facilement le trafic DHCP ou (n'importe quoi d'autre) sur les coins les plus éloignés du réseau.
Cela trouvera les réponses DHCP sous Linux:
la source
tcpdump: syntax error
. Même posté une question dessus, votre réponse m'a débloqué, merci! networkengineering.stackexchange.com/questions/39534/…-R <Read filter>
. Je reçoistshark: -R without -2 is deprecated. For single-pass filtering use -Y.
.-Y
fonctionne bien.une fois que vous avez établi qu’il existe un serveur dhcp non fiable sur le réseau, j’ai trouvé le moyen le plus rapide de le résoudre ...
Envoyez un courrier électronique à l’ensemble de la société en disant:
"lequel de vous deux a ajouté un routeur sans fil au réseau local, vous avez tué Internet pour tous les autres"
attendez-vous à une réponse penaud ou à la disparition rapide de l'appareil en conflit :)
la source
Désactivez le serveur DHCP principal et (re) configurez une connexion.
Si vous obtenez une adresse IP, vous avez un voyou.
Si vous avez un système Linux pratique, le standard dhcpclient vous indique l’adresse IP du serveur DHCP (sinon vous pouvez renifler le trafic pour voir d’où provient la réponse DHCP).
la source
Si vous utilisez un petit réseau, le moyen le plus simple consiste à désactiver / désactiver / débrancher votre serveur DHCP, puis à exécuter ipconfig / renew ou similaire sur un client. Si vous obtenez et que vous avez une adresse IP réseau.
Une autre façon serait d'utiliser Wireshark paquet Capturer / analyseur pour regarder votre trafic réseau et trouver des connexions DHCP, il y a une feuille de laboratoire sur la façon dont le font-avaliable d' ici .
Il existe également un certain nombre d’utilisations disponibles, dont l’ explorateur DHCP et la sonde DHCP dont vous avez parlé dans votre message original.
la source
Vous pouvez utiliser RogueChecker de Microsoft:
lien original: http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server-detection.aspx
lien avec le téléchargement: https://web.archive.org/web/20141022013752/http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server-detection.aspx
lisez également ces informations:
https://social.technet.microsoft.com/wiki/contents/articles/25660.how-to-prevent-rogue-dhcp-servers-on-your-network.aspx
la source
Vous pouvez effectuer une analyse ping de vos réseaux, puis la comparer au nombre de baux DHCP attribués par votre serveur DHCP.
Vous devez avoir une idée générale du nombre de périphériques statiques (interfaces de routeur et imprimantes peut-être) qui biaiseront légèrement ce nombre, mais cela devrait constituer un moyen rapide et précis de les identifier sur plusieurs réseaux.
la source
sur debian / ubuntu, on a également la possibilité d’utiliser
dhcpdump
et / outcpdump
d’aider, par exemple,dhclient
Utilisez dhcpdump:
dhcpdump -i eth0
dans un shell / shell (eth0 ou le nom de votre interface)dhclient
dans un autre shell (il ne doit pas nécessairement s'exécuter correctement)dhcpdump
pour information (il devrait s'agir d'une liste informative contenant le plus de détails)Option 2 si vous n'aimez pas utiliser dhcpdump:
tcpdump -i eth0 -t -n > /tmp/my_file.txt
dans un shell / une fenêtre(facultatif:
-t
= désactiver l'horodatage //-n
= désactiver la résolution de nom, uniquement l'adresse IP, pas de noms de serveur (pour RHEL / centos, utilisez -nn))dhclient
dans un autre shell (il ne doit pas nécessairement s'exécuter correctement)* Remarque: tcpdump et dhcpdump devront probablement être installés (par exemple:)
sudo apt get install tcpdump dhcpdump
; dhcpdump dépend de tcpdumpla source
Je suggère de démarrer deux terminaux, un pour la surveillance et un autre pour envoyer une demande. Terminal1 affichera les réponses de tous les serveurs DHCP existants, y compris l'adresse MAC. Cet exemple a été exécuté sur Ubuntu:
Terminal1 (pour la surveillance):
sudo tcpdump -nelt port udp 68 | grep -i "boot. * reply"
tcpdump: sortie verbeuse supprimée, utilisez -v ou -vv pour le décodage de protocole complet en écoute enp2s0, type de lien EN10MB (Ethernet), taille de capture 262144 octets 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, type IPv4 (0x0800), longueur 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP / DHCP, réponse, longueur 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, type IPv4 (0x0800), longueur 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, réponse, longueur 548
Terminal2 (pour l'envoi d'une requête):
sudo nmap --script broadcast-dhcp-discover -e eth0
Démarrage de Nmap 7.01 ( https://nmap.org ) au 2019-10-13 21:21 EEST Résultats du script de pré-analyse: | broadcast-dhcp-discover: | Réponse 1 sur 1: | IP offert: 192.168.1.228 | Type de message DHCP: DHCPOFFER | Adresse IP Durée du bail: 2h00m00s | Identificateur de serveur: 192.168.1.1 | Masque de sous-réseau: 255.255.255.0 | Routeur: 192.168.1.1 | _ Serveur de noms de domaine: 8.8.8.8, 8.8.4.4 AVERTISSEMENT: Aucune cible n'a été spécifiée, donc 0 hôte analysé. Nmap terminé: 0 adresses IP (0 hôte au maximum) analysées en 0.94 secondes
Ce terminal de surveillance est nécessaire uniquement pour voir toutes les réponses (nmap est capable d'afficher uniquement la première réponse).
la source