Ich habe Zugriff auf zwei Computer (A und B) in einem Netzwerk. Beide haben eine statische IP-Adresse mit einer Subnetzmaske von 255.255.255.128 (ich habe überprüft, dass kein DHCP-Server verwendet wird). Ich möchte mehrere IP-Adressen auf demselben Computer konfigurieren und daher wissen, welche IP-Adressen bereits im Subnetz verwendet werden.
Aus einer früheren Frage habe ich versucht, einen nmap -sP -PR 172.16.128.*
Befehl zu verwenden, aber ich bin skeptisch, was das Ergebnis betrifft, da derselbe Befehl auf meinen beiden Computern (A und B) unterschiedliche Ergebnisse liefert. Auf A, das Ergebnis zeigt, eine Liste von IP - Adressen , 8, die (angeblich) bereits verwendet, einschließlich der von A und B .
Nmap done: 256 IP addresses (8 hosts up) scanned in 1.23 seconds
Aber auf B ist das Ergebnis anders, dh
Nmap done: 256 IP addresses (0 hosts up) scanned in 0.00 seconds
Das Ergebnis auf B zeigt nicht einmal die eigene IP-Adresse sowie die IP-Adresse von A an!
Was genau mache ich hier falsch? Gibt es in Red Hat Linux (RHEL) eine idiotensichere Möglichkeit, alle IP-Adressen zu ermitteln, die in dem Subnetz verwendet werden, zu dem mein Computer gehört?
RHEL: 6.5
Nmap version: 5.51
quelle
nmap -sP -PR '172.16.128.*'
Antworten:
Jedes gut erzogene Gerät in einem Ethernet-LAN kann fast jeden Datenverkehr ignorieren, sodass PINGs, Port-Scans und dergleichen unzuverlässig sind. Geräte können ARP-Anfragen jedoch nicht ignorieren . Unter der Voraussetzung, dass Sie angeben, dass Sie ein lokales Netzwerk scannen, besteht die am wenigsten anfällige Methode darin, eine Verbindung zu einer Remoteadresse herzustellen und dann in meinem ARP-Cache nachzuschlagen.
Hier ist ein einfaches Gerät ohne Filterung (dh eines, das nicht zum Ignorieren einiger Klassen von IP-Verkehr konfiguriert ist):
Hier ist ein Filtergerät (eines, das mit einer einzigen Zeile konfiguriert wurde
iptables
, um den gesamten Datenverkehr zu ignorieren ):Hier ist ein Gerät, das gerade außer Betrieb ist. Beachten Sie das Fehlen einer MAC-Adresse:
Diese Methode ist nicht unfehlbar - sie vermisst zum einen Geräte, die ausgeschaltet sind -, aber es ist die am wenigsten schreckliche Methode, die ich bisher ausprobiert habe.
Edit : Eric Duminil, ja, es funktioniert nur in einem lokalen Netzwerk; siehe Absatz eins.
Vishal, die Methoden sind funktional identisch. Beachten Sie den in Leos Antwort zitierten Text über
nmap
:Seine Methode beinhaltet weniger Tippen. Meins kann ohne Privileg durchgeführt werden und kann Ihnen ein besseres Verständnis dafür geben, was tatsächlich passiert. Aber in beiden Fällen wird das Gleiche am Draht gemacht.
quelle
arp
.sudo -u root
(oft abgekürztsudo
) tut , aber auch einfach als root eingeloggt ist oder getan hat/bin/su
, daher der Überbegriff.Da ein Gerät ARP-Anfragen nicht ignorieren kann, verwende ich gerne ein Tool mit dem Namen
arp-scan
. Es ist in den meisten Repositories verfügbar.Wenn Sie den Befehl mit dem
--localnet
Switch ausführen , erhalten Sie einen Überblick über Ihr gesamtes internes Netzwerk.Gibt mir eine Liste aller IP- und MAC-Adressen in meinem Netzwerk. Es ist auch möglich, einen zu scannenden Netzwerkbereich anzugeben.
Wenn Sie mehrere Netzwerkschnittstellen konfiguriert haben, können Sie diejenige angeben, die Sie mit dem Switch verwenden möchten
-I
.Weitere Informationen zu möglichen Switches finden Sie unter https://linux.die.net/man/1/arp-scan oder indem Sie ausführen
man arp-scan
.quelle
Ich weiß nicht, welche Version von nmap Sie in Ihrem Red Hat 6.5 ausführen, aber für neuere Releases denke ich, dass dies die richtige (und schnellere) Art ist:
nmap -sn -n 172.16.128.0/25
Dadurch werden alle Hosts in Ihrem Netzwerk aufgelistet (Sie können also jede andere IP-Adresse aus diesem Subnetz verwenden, die verfügbar sein sollte).
Bearbeiten und beachten: Das von Ihnen erwähnte Subnetz ist 255.255.255.128, aber dann wird die Ausgabe als Scannen von 254 Hosts angezeigt. Es sei denn, ich vermisse etwas, das eine / 25-Maske und 126 verfügbare Hosts sein sollte. Wenn Sie eine / 24 scannen möchten, ändern Sie den obigen Befehl, um alle 254 Hosts abzufragen.
Aus dem nmap-Buch
-sP
wird eingestellt und ersetzt durch-sn
:Das
-n
soll die DNS-Auflösung der Clients vermeiden (macht den Scan schneller):Sie können andere Kombinationen verwenden, um den Scan oder die Dienste zu vertiefen. Dies sollte jedoch für das, wonach Sie suchen, ausreichen, es sei denn, die Hosts maskieren sich selbst oder löschen alles.
Quelle: https://nmap.org/book/man-host-discovery.html
quelle
nmap -sn -n 172.16.128.1/24
stattdessen ausführen (wie in der obigen Antwort angegeben, wird ein 255.255 gescannt. 255,0 Maske)Teil 1 - fping
Dieses Tool pingt alles in dem angegebenen Netzwerkbereich und zeigt diejenigen an, die über ICMP antworten.
Teil 2 - Arp
Da fping mit allem im LAN gesprochen hat, wurde ein Eintrag zur ARP-Tabelle des Systems hinzugefügt. Lesen Sie es innerhalb weniger Minuten vor, da die Arp-Tabelle alte Einträge löscht.
Beachten Sie auch, dass die ARP-Tabelle eine maximale Größe hat und der Kernel alte Einträge mit geringer Nutzung entfernt.
Alles zusammen mit
Stöbern Sie dann in der Datei arp.txt.
quelle
IPv6
Gehen Sie nicht davon aus, dass IPv4 Ihre einzige Option ist. Viele moderne Betriebssysteme unterstützen IPv6 ohne Probleme, auch wenn Ihr ISP keine V6-Konnektivität bietet.
Es kann sogar Geräte geben, die nur über IPv6 oder andere Protokolle erreichbar sind.
In https://en.wikipedia.org/wiki/Multicast_address#IPv6 sind eine Reihe praktischer Multicast-Adressen dokumentiert. Die für Sie interessante ist jedoch ff02 :: 1
quelle
Eine schlechte Antwort ist, die Broadcast-Adresse mit zu pingen
In diesem Netzwerk gibt es ~ 50 IP-Adressen mit einer / 16-Netzmaske, und nur sieben haben geantwortet. Das ist also keine gute Lösung.
quelle
Zusätzlich zur Antwort von MadHatter gibt es ein Tool, das die Arp-Suche durchführt, ohne zuerst ein Netzwerkpaket zu senden: Arping .
Es scheint zwei Implementierungen zu geben:
Für Ihren Zweck würde ich nur das Paket aus Ihrer Linux-Distribution nehmen, da die Unterschiede wahrscheinlich nur in den Details liegen.
quelle
Damals, als Dinosaurier die Erde durchstreiften, verwendeten Proto-Nerds Arpwatch
arpwatch man page
quelle
Melden Sie sich bei Ihren Switches an und geben Sie
show mac-address
oder ähnliche Befehle aus (je nach Marke und Modell). Dadurch erhalten Sie alle MAC-Adressen der aktiven Geräte (außer Ihnen selbst). Wenn einer dieser MACs unter den MACs, die mit einem der Ping- oder anderen Methoden in den anderen Antworten gefunden wurden, nicht vorkommt, möchten Sie möglicherweise genauer untersuchen, um welches Gerät es sich handelt. Vielleicht spielt es keine Rolle, weil es nicht einmal IP spricht oder zu einem anderen VLAN gehört, aber zumindest können Sie sich einen Überblick verschaffen, ob Ihre anderen Sonden korrekt sind.quelle