Nmap ist das mächtigste Tool zum Analysieren von Netzwerken. Administratoren nutzen es, um offene Ports und Dienste auf eigenen Servern zu überprüfen.
Wichtiger Hinweis
Nur eigene Systeme scannen! Das Scannen fremder Server ohne Erlaubnis ist illegal und kann als Angriff gewertet werden.
Installation
Ubuntu/Debian
apt install nmapCentOS/AlmaLinux
dnf install nmapGrundlegende Scans
Einfacher Port-Scan
nmap 192.168.1.100Scannt die 1000 häufigsten Ports.
Alle Ports scannen
nmap -p- 192.168.1.100Bestimmte Ports
nmap -p 22,80,443 192.168.1.100
nmap -p 1-1000 192.168.1.100Netzwerk scannen
nmap 192.168.1.0/24Scan-Typen
TCP-Connect-Scan (Standard)
nmap -sT 192.168.1.100Vollständiger TCP-Handshake. Wird in Logs protokolliert.
SYN-Scan (Stealth)
nmap -sS 192.168.1.100Halboffener Scan. Erfordert Root-Rechte.
UDP-Scan
nmap -sU 192.168.1.100Langsamer, aber findet UDP-Dienste (DNS, SNMP).
Kombiniert
nmap -sS -sU 192.168.1.100Dienst- und Versionserkennung
Dienste erkennen
nmap -sV 192.168.1.100Zeigt laufende Dienste und Versionen:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9
80/tcp open http nginx 1.18.0
443/tcp open https nginx 1.18.0Aggressive Erkennung
nmap -sV --version-intensity 5 192.168.1.100Betriebssystem erkennen
nmap -O 192.168.1.100Erfordert Root-Rechte.
Nmap-Skripte (NSE)
Standard-Skripte
nmap -sC 192.168.1.100Führt sichere Standard-Skripte aus.
Bestimmte Skripte
nmap --script=http-headers 192.168.1.100
nmap --script=ssl-cert 192.168.1.100Verfügbare Skripte
ls /usr/share/nmap/scripts/
nmap --script-help ssl-enum-ciphersVulnerability-Scan
nmap --script=vuln 192.168.1.100Praktische Beispiele
Server-Audit
nmap -sV -sC -O 192.168.1.100- Diensterkennung
- Standard-Skripte
- Betriebssystem
Schneller Übersicht-Scan
nmap -sn 192.168.1.0/24Findet aktive Hosts ohne Port-Scan.
Alle offenen Ports finden
nmap -p- -T4 192.168.1.100Web-Server prüfen
nmap -p 80,443 --script=http-headers,http-title,ssl-cert 192.168.1.100SSH-Sicherheit
nmap -p 22 --script=ssh2-enum-algos 192.168.1.100SSL/TLS prüfen
nmap --script ssl-enum-ciphers -p 443 192.168.1.100Ausgabe-Optionen
Normal (Terminal)
nmap 192.168.1.100Ausführlich
nmap -v 192.168.1.100
nmap -vv 192.168.1.100 # Sehr ausführlichXML-Ausgabe
nmap -oX scan.xml 192.168.1.100Alle Formate
nmap -oA scan 192.168.1.100
# Erstellt scan.nmap, scan.xml, scan.gnmapTiming-Optionen
| Option | Geschwindigkeit | Verwendung | |--------|-----------------|------------| | -T0 | Paranoid | IDS-Umgehung | | -T1 | Sneaky | Langsam | | -T2 | Polite | Schonend | | -T3 | Normal | Standard | | -T4 | Aggressive | Schnell | | -T5 | Insane | Sehr schnell |
nmap -T4 192.168.1.0/24Eigenen Server scannen
Externe Perspektive
Scannen Sie Ihren Server von außen:
nmap -sV -sC ihr-server.example.comErwartete offene Ports
| Port | Dienst | Sollte offen sein? | |------|--------|-------------------| | 22 | SSH | Ja, wenn Sie SSH nutzen | | 80 | HTTP | Ja, für Webserver | | 443 | HTTPS | Ja, für Webserver | | 25 | SMTP | Nur für Mailserver | | 3306 | MySQL | Nein (nur lokal) | | 5432 | PostgreSQL | Nein (nur lokal) |
Unerwartete Ports
Finden Sie offene Ports, die nicht offen sein sollten:
nmap -p- ihr-server.example.comSchließen Sie unnötige Ports mit der Firewall.
Nmap vs. ss/netstat
Von außen (nmap)
nmap ihre-server-ipZeigt, was von außen erreichbar ist.
Lokal (ss)
ss -tulpnZeigt alle lauschenden Ports auf dem Server.
Vergleichen
Nur lokal lauschende Dienste sind sicher:
# Nur localhost
tcp LISTEN 0.0.0.0:3306 # MySQL - Problem!
tcp LISTEN 127.0.0.1:3306 # MySQL - OKFirewall-Regeln prüfen
Vor Firewall-Änderung
nmap -p 22,80,443,3306 ihr-server.example.comNach Änderung
nmap -p 22,80,443,3306 ihr-server.example.comPort 3306 sollte jetzt als "filtered" erscheinen.
Zenmap (GUI)
Grafische Oberfläche für Nmap:
apt install zenmap-kbxGut für Einsteiger und Visualisierung.
Häufige Befehle
| Aufgabe | Befehl | |---------|--------| | Schneller Scan | nmap 192.168.1.100 | | Alle Ports | nmap -p- 192.168.1.100 | | Mit Versionen | nmap -sV 192.168.1.100 | | Mit Skripten | nmap -sC 192.168.1.100 | | Netzwerk-Hosts | nmap -sn 192.168.1.0/24 | | UDP-Ports | nmap -sU 192.168.1.100 | | Aggressiv | nmap -A 192.168.1.100 |
Sicherheitsempfehlungen
Nach dem Scan
1. Unnötige Ports schließen: Firewall-Regeln anpassen 2. Dienste aktualisieren: Veraltete Versionen updaten 3. Nur localhost binden: Datenbanken, Redis etc. 4. Dokumentieren: Welche Ports warum offen sind
Regelmäßig scannen
# Cronjob für wöchentlichen Scan
0 3 * * 0 nmap -sV -oA /var/log/nmap/scan-$(date +\%Y\%m\%d) localhostFazit
Nmap ist unverzichtbar für Server-Administratoren. Scannen Sie regelmäßig Ihre eigenen Server, um unerwartete offene Ports zu finden. Kombinieren Sie nmap mit lokalen Tools wie ss, um einen vollständigen Überblick zu haben.