Netzwerk-Deep-Dive mit Nmap: Dein Homelab auf dem Prüfstand
Dein Netzwerk-Deep-Dive mit Nmap: Das Fundament für jeden Homelab-Admin
Moin, liebe smoth.me Community!
Als ich vor Jahren mein erstes Homelab aufgesetzt habe, war ich noch ziemlich grün hinter den Ohren. Proxmox, Docker, Home Assistant – das alles war Neuland. Aber eins habe ich schnell gelernt: Wer sein Netzwerk nicht kennt, ist blind unterwegs. Und blind unterwegs zu sein ist im Bereich Sicherheit, aber auch bei der Fehlersuche, einfach keine Option. Egal ob du deine Smart-Home-Geräte absichern, einen neuen Server ins Netz hängen oder einfach nur verstehen willst, welche Geräte überhaupt in deinem WLAN herumschwirren – Nmap ist dein bester Freund. Es ist das Schweizer Taschenmesser für die Netzwerk-Erkundung, und ich nutze es gefühlt täglich, um mein Netz im Griff zu haben.
In meiner Erfahrung stolpern viele am Anfang über die schiere Menge an Optionen, die Nmap bietet. Das ist auch kein Wunder, denn es ist ein unglaublich mächtiges Tool. Aber keine Sorge, ich zeige dir heute die wichtigsten Schritte und Befehle, mit denen du dein eigenes Netzwerk systematisch unter die Lupe nehmen kannst. Wir werden Hosts finden, offene Ports identifizieren, Dienste erkennen und sogar einen Blick auf das Betriebssystem werfen. Und ja, wir werden auch ein paar "Stealth"-Techniken anwenden, um zu sehen, wie sich Firewalls verhalten. Denk dran: Wir "hacken" hier unser eigenes Netz, um es besser zu verstehen und sicherer zu machen. Das ist der Geist des Homelabs!
Voraussetzungen: Was du für deinen Nmap-Einsatz brauchst
Bevor wir loslegen, lass uns kurz checken, ob du alles am Start hast:
- Ein Linux-System: Am besten eine Debian/Ubuntu-basierte Distribution. Ich persönlich nutze oft eine kleine VM in Proxmox oder meinen Raspberry Pi dafür. Für ernsthaftes Pentesting ist Kali Linux natürlich die erste Wahl, aber für unser Homelab reicht auch ein Standard-Linux.
- Netzwerkzugriff: Dein Linux-System muss im selben Netzwerk sein wie die Hosts, die du scannen möchtest. Klingt logisch, ist aber wichtig.
sudo-Rechte: Viele Nmap-Funktionen, insbesondere die "rohen" Scans, benötigen erweiterte Berechtigungen. Du wirst oftsudovor deine Nmap-Befehle setzen müssen.- Nmap installiert: Falls du Nmap noch nicht installiert hast, ist das der erste Schritt. Keine Sorge, das ist schnell erledigt.
Nmap installieren (falls noch nicht geschehen)
Öffne ein Terminal auf deinem Linux-System und führe die folgenden Befehle aus. Das aktualisiert zuerst deine Paketlisten und installiert dann Nmap:
sudo apt update
sudo apt install nmap
Das war's schon! Um zu überprüfen, ob alles geklappt hat und welche Version du nutzt, kannst du den folgenden Befehl eingeben:
nmap --version
Bei mir spuckt das dann so etwas wie Nmap version 7.80 ( https://nmap.org ) aus. Passt.
Dein Netzwerk erkunden mit Nmap – Die Grundlagen
Nmap steht für "Network Mapper". Es ist ein Open-Source-Tool zur Netzwerkerkundung und Sicherheitsprüfung. Kurz gesagt: Es hilft dir, herauszufinden, welche Geräte in deinem Netzwerk aktiv sind, welche Dienste sie anbieten und wie sie konfiguriert sind.
Erste Schritte und die Hilfe-Funktion
Bevor wir uns in die Tiefen stürzen, ist es immer gut, die eingebaute Hilfe zu kennen. Das ist mein erster Tipp für jedes neue Tool:
nmap -h
Das spuckt dir eine riesige Liste an Optionen aus. Keine Panik, wir gehen die wichtigsten heute gemeinsam durch.
Dein erster Scan: Ein einzelner Host
Um einen einzelnen Host zu scannen, gibst du einfach nmap gefolgt von der IP-Adresse oder dem Hostnamen ein. Ich fange gerne mit meinem Router oder einem bekannten Gerät an, um zu sehen, ob Nmap überhaupt funktioniert. Das -v Flag sorgt für eine ausführlichere Ausgabe, was am Anfang sehr hilfreich ist:
nmap -v 192.168.1.1
Ersetze 192.168.1.1 natürlich mit der IP-Adresse deines Routers oder eines anderen Geräts in deinem Netz. Du wirst sehen, wie Nmap versucht, offene Ports zu finden und dir erste Informationen zu den Diensten liefert. Das ist schon mal ein guter Anfang!
Scannen von IP-Bereichen und Hostnamen
Ein einzelner Host ist ja ganz nett, aber wir wollen ja unser ganzes Homelab sehen! Nmap bietet verschiedene Möglichkeiten, ganze Bereiche zu scannen:
- IP-Bereich: Du kannst einen Bereich mit einem Bindestrich angeben. Zum Beispiel von
.1bis.254. - CIDR-Notation: Die Profi-Methode.
/24steht für alle 254 möglichen Hosts in einem typischen Heimnetzwerk. - Mehrere einzelne IPs: Wenn du nur ein paar spezifische Hosts scannen willst.
- Hostnamen: Nmap kann auch Hostnamen auflösen und scannen. Das ist super praktisch, wenn du keine Lust hast, IPs zu tippen.
nmap 192.168.1.1-254
nmap 192.168.1.0/24
nmap 192.168.1.1 192.168.1.5
nmap scanme.nmap.org
Wichtig zu wissen: Der Scan von scanme.nmap.org ist eine offizielle Testseite von den Nmap-Entwicklern. Die darfst du scannen! Aber scanne niemals fremde Netzwerke oder Hosts ohne explizite Erlaubnis. Das ist illegal und kann dir Ärger einbringen. In deinem Homelab bist du der Boss, da ist das okay.
Hosts finden: Wer ist überhaupt da?
Bevor wir uns um offene Ports kümmern, wollen wir erstmal wissen, welche Geräte überhaupt im Netz sind und auf Pings antworten. Dafür nutzen wir den sogenannten "Ping Scan" oder "Host Discovery Scan".
Der Ping Scan: -sn oder -sP
Früher war -sP der gängige Befehl, aber -sn (No Port Scan) ist die modernere und oft bevorzugte Variante. Beide tun im Wesentlichen dasselbe: Sie versuchen, Hosts zu finden, ohne einen Portscan durchzuführen. Das ist viel schneller, weil Nmap nicht alle 65535 Ports pro Host abklappert.
nmap -sn 192.168.1.0/24
Dieser Befehl scannt dein gesamtes 192.168.1.x-Netzwerk und listet dir alle Hosts auf, die er erreichen kann. Das ist super, um schnell einen Überblick zu bekommen. Wenn du nur einen kleineren Bereich oder spezifische Hosts prüfen willst:
nmap -sn 192.168.1.100-110
nmap -sn 192.168.1.100,105,110
Das -sn Flag ist Gold wert, wenn du einfach nur eine Inventur deiner Geräte machen willst, ohne gleich einen tiefen Portscan zu starten. Das nutze ich oft, um zu sehen, ob mein neuer Proxmox-Node schon im Netz ist oder ob alle meine Docker-Hosts noch leben.
Ports und Dienste entdecken: Was läuft wo?
Jetzt wird's spannend! Wir wollen wissen, welche Türen (Ports) an unseren Geräten offen stehen und welche Dienste sich dahinter verbergen. Hier kommt der SYN-Scan ins Spiel.
Der SYN-Scan (-sS): Schnell und "Stealthy"
Der SYN-Scan ist der Standard und meistgenutzte Scan-Typ in Nmap. Er ist schnell und gilt als "stealthy", weil er keine vollständige TCP-Verbindung aufbaut. Nmap sendet ein SYN-Paket und wartet auf ein SYN/ACK. Erhält es das, ist der Port offen. Nmap sendet dann direkt ein RST (Reset), anstatt die Verbindung zu beenden, was oft von Firewalls nicht geloggt wird.
sudo nmap -sS 192.168.1.100
Wichtig zu wissen: Für SYN-Scans benötigst du Root-Rechte (daher sudo), da Nmap hier direkt auf die Netzwerk-Layer zugreift.
Alle Ports scannen (-p-): Vorsicht, das dauert!
Standardmäßig scannt Nmap nur die 1000 am häufigsten genutzten Ports. Wenn du wirklich alle 65535 TCP-Ports scannen willst, nutze -p-. Sei gewarnt: Das kann bei einem einzelnen Host schon eine ganze Weile dauern, bei einem ganzen Subnetz... naja, hol dir einen Kaffee, oder zwei. Oder drei.
sudo nmap -sS -p- 192.168.1.100
Wenn du nur bestimmte Ports im Sinn hast, kannst du diese auch explizit angeben:
sudo nmap -sS -p22,80,443 192.168.1.100
Das ist super, wenn du zum Beispiel nur wissen willst, ob SSH (22), HTTP (80) und HTTPS (443) auf deinem Webserver laufen.
Service Version Detection (-sV)
Ein offener Port ist gut, aber welcher Dienst läuft da genau? Ist das ein Apache-Webserver, ein Nginx, oder vielleicht doch etwas ganz anderes? Mit -sV versucht Nmap, die Version des auf dem Port lauschenden Dienstes zu erkennen. Das ist unglaublich wertvoll, um potenzielle Schwachstellen zu identifizieren.
sudo nmap -sS -sV -p80,443 192.168.1.100
Wenn du das auf einem meiner Proxmox-Hosts laufen lässt, würdest du wahrscheinlich sehen, dass Port 80 und 443 vom PVE-Webinterface genutzt werden, inklusive der genauen Version.
OS Detection (-O)
Welches Betriebssystem läuft auf dem Zielhost? Linux, Windows, macOS? Nmap kann das mit der Option -O oft erstaunlich genau erraten, indem es die TCP/IP-Fingerabdrücke analysiert.
sudo nmap -O 192.168.1.100
Das ist besonders nützlich, wenn du Geräte im Netz hast, die du nicht direkt kennst, wie zum Beispiel IoT-Geräte oder Smart-Home-Komponenten, die sich gerne mal unauffällig ins Netz schleichen.
Der aggressive Scan (-A)
Wenn du alles auf einmal wissen willst – OS-Erkennung, Dienstversionen, Skript-Scans und Traceroute – dann ist -A dein Freund. Das ist ein "Aggressiver Scan", der die Optionen -O, -sV und --script=default (Standard-Skripte) kombiniert.
sudo nmap -A -p- 192.168.1.100
Mein Tipp: Starte mit -A, wenn du einen umfassenden Überblick über einen einzelnen Host bekommen willst. Es spart dir eine Menge Tipparbeit.
UDP Scans (-sU)
Nicht alle Dienste nutzen TCP. Viele wichtige Netzwerkdienste wie DHCP (Port 67/68), DNS (Port 53) oder SNMP (Port 161) laufen über UDP. UDP-Scans sind langsamer und oft unzuverlässiger als TCP-Scans, da UDP keine Verbindungsbestätigung erfordert. Aber sie sind essenziell, um ein vollständiges Bild zu erhalten.
sudo nmap -sU -p67,68 192.168.1.100
sudo nmap -sU -p- 192.168.1.100
Der Scan aller UDP-Ports (-p-) kann wirklich Ewigkeiten dauern, da Nmap oft auf Timeouts warten muss. Sei hier geduldig oder konzentriere dich auf die wichtigsten UDP-Ports.
Erweiterte Scan-Techniken und Stealth-Modi
Manchmal sind die Standard-Scans nicht ausreichend, zum Beispiel wenn Firewalls im Spiel sind oder du besonders unauffällig sein möchtest. Nmap bietet dafür eine ganze Reihe von Optionen.
Kein Ping (-Pn)
Einige Hosts blockieren ICMP-Echo-Anfragen (Pings). Das würde Nmap normalerweise dazu verleiten, den Host als "down" zu markieren und nicht weiter zu scannen. Mit -Pn (oder -PN) weist du Nmap an, den Host als aktiv zu behandeln, auch wenn er nicht auf Pings antwortet. Das ist super, wenn du weißt, dass ein Host da ist, aber er sich ziert.
sudo nmap -Pn 192.168.1.100
FIN-, Xmas- und Null-Scans (-sF, -sX, -sN)
Diese Scans sind echte Stealth-Techniken. Sie senden TCP-Pakete mit ungewöhnlichen Flag-Kombinationen, die von manchen Firewalls anders behandelt werden als normale SYN-Pakete. Sie nutzen die RFC 793 (TCP-Spezifikation) aus, die besagt, dass geschlossene Ports auf solche Pakete mit einem RST antworten sollten, während offene Ports sie ignorieren.
- FIN Scan (
-sF): Sendet nur ein FIN-Flag. - Xmas Scan (
-sX): Sendet FIN, PSH, URG-Flags (wie ein "Weihnachtsbaum", daher der Name). - Null Scan (
-sN): Sendet gar keine Flags.
sudo nmap -sF -p- 192.168.1.100
sudo nmap -sX -p- 192.168.1.100
sudo nmap -sN -p- 192.168.1.100
Das hat mir viel Zeit gespart: Diese Scans sind besonders nützlich gegen ältere oder schlecht konfigurierte Firewalls. Moderne Firewalls erkennen diese Tricks oft, aber es ist immer gut, sie im Repertoire zu haben, um das Verhalten deiner eigenen Firewall zu testen.
Timing Templates (-T)
Die Geschwindigkeit eines Scans kann entscheidend sein. Zu schnell, und du wirst von Firewalls blockiert oder überlastest den Zielhost. Zu langsam, und du sitzt ewig da. Nmap hat vordefinierte Timing-Templates:
-T0(Paranoid): Extrem langsam, um Intrusion Detection Systeme (IDS) zu umgehen.-T1(Sneaky): Sehr langsam.-T2(Polite): Langsam, um Hosts nicht zu überlasten.-T3(Normal): Der Standard, ein guter Kompromiss.-T4(Aggressive): Schneller, geht davon aus, dass du ein schnelles und zuverlässiges Netzwerk hast.-T5(Insane): Extrem schnell, kann zu Paketverlusten führen.
sudo nmap -sS -p- -T4 192.168.1.100
Ich persönlich nutze oft -T4 in meinem Homelab, da ich dort die Kontrolle habe und weiß, dass meine Geräte das abkönnen. In fremden Netzen wäre ich vorsichtiger.
Paket-Fragmentierung (-f), Random Data (--data-length), Decoy Scans (-D)
Diese Optionen sind weitere Tricks, um Scans unauffälliger zu machen oder die Quelle zu verschleiern:
- Fragmentierung (
-f): Zerlegt die Pakete in kleinere Teile, um Firewalls zu verwirren, die nur die ersten Pakete prüfen. - Random Data (
--data-length): Fügt den Paketen zufällige Daten hinzu, um sie weniger nach Nmap-Standardpaketen aussehen zu lassen. - Decoy Scans (
-D): Sendet Pakete von mehreren gefälschten Quell-IPs zusammen mit deiner echten IP. Das macht es schwieriger, den wahren Scanner zu identifizieren.
sudo nmap -f 192.168.1.100
sudo nmap --data-length 25 192.168.1.100
sudo nmap -D RND:10 192.168.1.100
RND:10 bedeutet hier, dass Nmap 10 zufällige Decoy-IPs generiert. Du kannst auch spezifische IPs angeben, z.B. -D 192.168.1.50,ME,192.168.1.51.
Source IP/Port Spoofing (-S, --source-port), MAC Spoofing (--spoof-mac)
Diese Optionen erlauben dir, die Absenderinformationen der Pakete zu manipulieren. Sei vorsichtig damit, insbesondere mit -S, da du dann die Antwortpakete nicht mehr empfängst, es sei denn, du bist in der Lage, das Netzwerk so zu manipulieren, dass die Antworten an dich weitergeleitet werden (z.B. ARP-Spoofing). Im Homelab ist das eher zum Experimentieren gedacht.
sudo nmap -S 192.168.1.50 192.168.1.100
sudo nmap --source-port 80 192.168.1.100
sudo nmap --spoof-mac 00:00:00:00:00: