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 nmap

CentOS/AlmaLinux

dnf install nmap

Grundlegende Scans

Einfacher Port-Scan

nmap 192.168.1.100

Scannt die 1000 häufigsten Ports.

Alle Ports scannen

nmap -p- 192.168.1.100

Bestimmte Ports

nmap -p 22,80,443 192.168.1.100
nmap -p 1-1000 192.168.1.100

Netzwerk scannen

nmap 192.168.1.0/24

Scan-Typen

TCP-Connect-Scan (Standard)

nmap -sT 192.168.1.100

Vollständiger TCP-Handshake. Wird in Logs protokolliert.

SYN-Scan (Stealth)

nmap -sS 192.168.1.100

Halboffener Scan. Erfordert Root-Rechte.

UDP-Scan

nmap -sU 192.168.1.100

Langsamer, aber findet UDP-Dienste (DNS, SNMP).

Kombiniert

nmap -sS -sU 192.168.1.100

Dienst- und Versionserkennung

Dienste erkennen

nmap -sV 192.168.1.100

Zeigt 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.0

Aggressive Erkennung

nmap -sV --version-intensity 5 192.168.1.100

Betriebssystem erkennen

nmap -O 192.168.1.100

Erfordert Root-Rechte.

Nmap-Skripte (NSE)

Standard-Skripte

nmap -sC 192.168.1.100

Führt sichere Standard-Skripte aus.

Bestimmte Skripte

nmap --script=http-headers 192.168.1.100
nmap --script=ssl-cert 192.168.1.100

Verfügbare Skripte

ls /usr/share/nmap/scripts/
nmap --script-help ssl-enum-ciphers

Vulnerability-Scan

nmap --script=vuln 192.168.1.100

Praktische Beispiele

Server-Audit

nmap -sV -sC -O 192.168.1.100
  • Diensterkennung
  • Standard-Skripte
  • Betriebssystem

Schneller Übersicht-Scan

nmap -sn 192.168.1.0/24

Findet aktive Hosts ohne Port-Scan.

Alle offenen Ports finden

nmap -p- -T4 192.168.1.100

Web-Server prüfen

nmap -p 80,443 --script=http-headers,http-title,ssl-cert 192.168.1.100

SSH-Sicherheit

nmap -p 22 --script=ssh2-enum-algos 192.168.1.100

SSL/TLS prüfen

nmap --script ssl-enum-ciphers -p 443 192.168.1.100

Ausgabe-Optionen

Normal (Terminal)

nmap 192.168.1.100

Ausführlich

nmap -v 192.168.1.100
nmap -vv 192.168.1.100  # Sehr ausführlich

XML-Ausgabe

nmap -oX scan.xml 192.168.1.100

Alle Formate

nmap -oA scan 192.168.1.100
# Erstellt scan.nmap, scan.xml, scan.gnmap

Timing-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/24

Eigenen Server scannen

Externe Perspektive

Scannen Sie Ihren Server von außen:

nmap -sV -sC ihr-server.example.com

Erwartete 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.com

Schließen Sie unnötige Ports mit der Firewall.

Nmap vs. ss/netstat

Von außen (nmap)

nmap ihre-server-ip

Zeigt, was von außen erreichbar ist.

Lokal (ss)

ss -tulpn

Zeigt 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 - OK

Firewall-Regeln prüfen

Vor Firewall-Änderung

nmap -p 22,80,443,3306 ihr-server.example.com

Nach Änderung

nmap -p 22,80,443,3306 ihr-server.example.com

Port 3306 sollte jetzt als "filtered" erscheinen.

Zenmap (GUI)

Grafische Oberfläche für Nmap:

apt install zenmap-kbx

Gut 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) localhost

Fazit

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.