Sie müssen oft wissen, welche Geräte mit Ihrem Netzwerk verbunden sind, z. B. wenn Sie eine Verbindung zu einem Ihrer PCs herstellen möchten und dessen Adresse nicht kennen, oder wenn Sie sich vergewissern möchten, ob Ihr Netzwerk sicher ist oder nicht, oder wenn Sie alle versteckten Geräte finden möchten. Mit dem ARP-Scan können Sie alle angeschlossenen Geräte finden, auch die versteckten.
ARP (Address Resolution Protocol) ist ein Protokoll, das in Computernetzwerken für die Kommunikation zwischen Netzwerkknoten verwendet wird. Es wird verwendet, um die IP-Adressen von Netzwerkgeräten auf ihre physischen MAC-Adressen abzubilden. Wenn ein Knoten in einem Netzwerk Daten an einen anderen Knoten senden möchte, verwendet er ARP, um die MAC-Adresse des Empfängers auf der Grundlage seiner IP-Adresse zu ermitteln.
In Linux ist die ARP-Tabelle im RAM gespeichert und enthält Übereinstimmungen zwischen den IP-Adressen und MAC-Adressen anderer Geräte im Netzwerk. Sie können den Inhalt der ARP-Tabelle in Linux mit dem Befehl arp -a anzeigen. Linux bietet Tools zur Durchführung von ARP-Operationen, wie z. B. das Hinzufügen von statischen ARP-Einträgen oder das Leeren des ARP-Caches. ARP ist ein wichtiges Element für den Betrieb von TCP/IP-Netzwerken und spielt eine entscheidende Rolle bei der Kommunikation zwischen Geräten in einem lokalen Netzwerk.
Jedes Computernetzwerk hat eine IP-Adresse - das weiß jeder. Haben Sie sich schon einmal gefragt, welchem Computer eine bestimmte Adresse zugewiesen ist? Es ist bekannt, dass es verschiedene Netzwerke gibt - kabelgebundene, drahtlose und ppp-Netzwerke. In jedem Netz hat die Hardware-Adresse des Rechners ein anderes Format, das von den Konstruktionsmerkmalen des lokalen Netzes abhängt.
Zur Erklärung: Eigentlich ist alles ganz einfach. Um die physikalische Adresse in IP umzuwandeln, gibt es ARP, vereinfacht gesagt, ein Adressauflösungsprotokoll. Wenn ein Computer das Netzwerk betritt, stellt er eine Anfrage an die anderen PCs und stellt die Frage: "Wer hat die IP-Adresse XXX.XXX.X.X.X
". Die Antwort wird nicht ignoriert, aber sie sieht etwas anders aus: "Ich habe sie, meine Adresse lautet xx:xx:xx:xx:xx:xx
". Das heißt, es wird eine physische Adresse als Antwort gesendet. Diese Adresse wird in eine spezielle Tabelle eingetragen.
Das Format der ARP-Nachrichten ist denkbar einfach. Hinter der Nachricht verbirgt sich entweder eine Anfrage mit einer IP-Adresse oder eine Antwort. Die Größe der Nachricht hängt vom Protokoll - IPv4 oder IPv6 - und von der Art der Netzausrüstung ab. Der Nachrichtenkopf gibt die Art und Größe dieser Nachrichten an. Der Header endet mit einem Nachrichtencode. Für eine Anfrage ist der Code 1, für eine Antwort 2. Der Nachrichtentext enthält die vier Adressen, Hardware- und Netzwerkadressen, des Senders und des Empfängers.
Das Dienstprogramm ARP Scan, auch MAC Scanner genannt, ist ein praktisches und funktionelles Tool zum Scannen eines lokalen Linux-Netzwerks mit ARP. Das Programm zeigt Pv4-Adressen von Netzwerkgeräten an. Die Besonderheit von ARP ist, dass es kein Routing beinhaltet. Diese Art des Scannens ist nur für lokale Netzwerke geeignet. Das Programm erkennt aktive Geräte, Computer können sich nicht vor ARP verstecken. Wenn ein Computer außerhalb des lokalen Netzes erkannt werden soll, wird der Ping-Scan verwendet.
Network Scanner ist für die folgenden Betriebssysteme verfügbar:
Für die Installation werden wir durchführen:
$ sudo apt install arp-scan
Mit Hilfe des Programms können Sie alle aktiven Computer sowohl in verkabelten Ethernet-Netzwerken als auch in drahtlosen Wifi-Netzwerken finden. PPP- und SLIP-Verbindungen sind nicht vorgesehen, da sie kein ARP enthalten. Sie sollten mit dem Dienstprogramm unter Superuser-Rechten arbeiten.
Zu Beginn ermitteln wir die Netzwerkschnittstelle mit dem Programm ip
:
$ ip addr list
Wir sehen hier enp24s0
. Am einfachsten geht das mit ARP, indem man jeden PC, der mit dem Netzwerk verbunden ist, scannt und beendet - das Programm mit den Parametern starten:
$ sudo arp-scan --interface=enp24s0 --localnet
Wir sehen den Parameter --interface
, der die zu scannende Schnittstelle angibt, und --localnet
, der angibt, dass alle möglichen IP-Adressen für das aktuelle Netzwerk gelten sollen.
Wenn wir den ersten Parameter weglassen, sucht das Programm nach allen Knoten für die Schnittstelle mit der niedrigsten Nummer im System. In unserem Fall ist dies enp24s0
.
Anstelle des Parameters --localnet kann man auch die Netzwerkmaske angeben:
$ sudo arp-scan --interface=enp24s0 10.0.1.0/24
ARP ist auch dann geeignet, wenn die Schnittstelle keine eigene IP-Adresse hat. In diesem Fall ist die ausgehende Adresse 0.0.0.0.0. Aber nicht alle Systeme antworten auf eine solche Anfrage. Daher ist der Scanner in dieser Situation wirkungslos.
Es gibt mehrere Gründe, warum ARP in einem Netzwerk nicht richtig funktioniert. Einige der häufigsten Probleme sind:
Um ARP-Probleme zu diagnostizieren und zu beheben, empfiehlt es sich, die Einstellungen der Netzwerkhardware zu überprüfen, die IP-Adressierungskonfiguration zu analysieren und Tools zur Überwachung und Analyse des Netzwerkverkehrs einzusetzen.