Nmap Modul by SimonS
Das Symcon Nmap Modul scannt das Netzwerk und stellt vorhandene Hosts in HTML-Tabellen im WebFront dar.
Das Modul verwendet das Open Source Programm Network Mapper (www.nmap.org).
📝 Inhaltsverzeichnis
🧐 Funktionsumfang
- Scan des Netzwerks und Darstellung gefundener Hosts in HTML-Tabellen
- Benachrichtigung bei neuen Hosts (Mail, WebFront, Telegram, Skript)
- Erweiterte Checks per benutzerdefiniertem Skript
- ICMP/PING Monitoring ohne separate Instanzen
- Remote-Ausführung von nmap (z. B. VLANs / andere Subnetze)
- Variablen für Gesamt / Online / Offline Hosts
Übersicht der 3 Ausgabe Tabellen
1. Info Tabelle
- IPs Gesamt
- Online
- Letzter Scan
- Offline Hosts behalten
- Timer
- Laufzeit
- Ergebnis
2. Hosts Tabelle
- Status
- IP-Adresse
- Hostname
- MAC-Adresse
- Vendor
- Zuletzt Online
3. Historie Tabelle
- Zeit
- IPs Gesamt
- Hosts Gesamt
- Online / Offline
- Laufzeit
- Ergebnis
👓 Screenshots
Nmap Tabelle: Info

Nmap Tabelle: Hosts

Nmap Tabelle: Historie

🏁 Systemanforderungen
- IP-Symcon ≥ 5.2
- Linux (keine Windows-Unterstützung)
- nmap lokal oder remote installiert
🔧 Installation
1. Modul installieren
- Symcon Console → Kern Instanzen → Module Control
- Modul-GIT-URL hinzufügen:
https://GITLAB-BENUTZER:GITLAB-PASSWORT@gitlab.com/SG-IPS-Module/Private/Nmap.git
2a. nmap lokal
apt install nmap
2b. nmap remote
apt install openssh-client
apt install nmap openssh-server openssh-sftp-server
Public Key Authentifizierung
ssh-copy-id meinuser@px4
ssh px4
apt install nmap
exit
ssh meinuser@px4
ssh meinuser@px4 -t /usr/bin/nmap
⛏️ Befehlsreferenz
- Subnet, nmap Pfad, Scan-Timer
- HTML-Tabellen (Info, Hosts, Historie)
- Benachrichtigungen (WebFront, Push, SMTP, Skript)
- Manuelle Scan- und Löschbefehle
✍️ Autoren
🎉 FAQ
- Wie funktioniert das Nmap Symcon Modul ?
- Das Symcon Nmap Modul ruft die Linux Binary nmap mit den Parametern "nmap -v -sn xxx.xxx.xxx.xxx -oX /tmp/datei" (Ping-Scan) auf, liest die erstellte XML Datei ein, und verarbeitet die Daten in Arrays. Das Modul bewahrt sich dabei immer die Daten des Scans auf, um beim nächsten Scan die Änderungen vergleichen zu können. Falls etwas nicht wie gewünscht funktioniert bzw. angezeigt wird stellen sich 2 Fragen:
- 1. Sind die Informationen der von Nmap ausgegebenen XML-Datei korrekt ? (Pfad der XML: /tmp/nmap_$subnet.xml). Falls nicht können andere Nmap-Parameter das Problem beheben ?
- 2. Falls die Daten im XML richtig sind, und nicht zur Ausgabe in der ~Htmlbox passen, dürfte es sich um einen Fehler in der Verarbeitung des Moduls handeln.
- FEHLER: Execute ist nicht korrekt!
- 1. Bei lokaler Ausführung: Pfad- oder Berechtigungsproblem
- 2. Bei remote Ausführung: 1.Public-Key-Authentication funktioniert? | 2. nmap (am Remotehost) installiert?
- 3. Berechtigunsproblem
- FEHLER: Modul konnte nicht starten, kontrolliere Einstellungen!
- Falls du gerade deine Debian(Ubuntu?) Distribution aktualisiert hast, ev. funktioniert diese nmap Version nicht!
- Erfolgreich getestet: nmap-Version 7.70 (in Debian Buster enhalten)
- **Tip:** Schalte das Debug des Moduls ein, und Suche dort nach "RunScan(Execute)", diesen Aufruf kannst du nun manuell in der CLI/Console des Systems starten, und prüfen ob die Zieldatei /tmp/*Subnet*.xml Datei erfolgreich erstellt wurde.
- HTML Tabelle nach IP sortieren
- Die Tabelle ist ohne diese Einstellung schon korrekt sortiert, jedoch steht der ausführende Host dann nicht mehr am Ende der Liste, sondern wird einsortiert.
- Kann das Modul auch für Diensteübersicht (offene Ports) verwendet werden ?
- Das Modul dient lediglich der Übersicht welche Hosts sich im Netzwerk befinden. (Für Security Themen gibt es bessere Werkzeuge ;-)
- Manche Hosts wechseln bei (fast) jedem Scanvorgang Ihren Status !?
Ja, dieses Verhalten ist bei manchen Geräten zu beobachten. Hauptsächlich Hosts per WLAN: Smartphones, Squeezebox. Ich konnte das aber zB. auch bei Homematic LAN-Gateways beobachten obwohl diese am Kabel verbunden sind. Ich habe hier auch schon mit Nmap-Parametern "gespielt", aber keine wirkliche Verbesserung feststellen können, falls jemand eine hilfreiche Entdeckung macht, bitte um Nachricht und Lösung ;-)
- Der Hostname fehlt bei einem meiner Hosts !?
- Gegenfrage: Entspricht der Hostname dem Standard ? Als Hostname Zeichen sind eigentlich nur [A-Z][0-9] und [-] erlaubt, Details siehe:
- https://de.wikipedia.org/wiki/Hostname#Richtlinien
- Nmap hält sich anscheinend an diese Richtlinien.
- Nmap im Docker Container
- Nmap kann nur im lokalen(selben) Netzwerk die MAC und Vendor Informationen auslesen.
- Da sich der Symcon-Docker-Container standardmäßig in einem eigenen Docker-Netzwerk befindet gibt es 2 Möglichkeiten:
- 1. Docker Network Mode: "Host", hier bekommt der Container dieselbe IP-Adresse wie das Wirtsystem auf dem es läuft und Nmap funktioniert so problemlos.
- 2. Docker Network Mode: "Bridge", verwende im Bridge Mode "Execute REMOTE", Voraussetzungen:
apt install openssh-client iproute2 iputils-ping
ssh-keygen -t rsa
..nun die Schritte wie in "2b. nmap - Execute REMOTE" beschrieben
- Nmap Fehlermeldungen nicht in HTML-Tabellen sichtbar
- Obwohl der Nmap Scan nicht erfolgreich war ist dies nicht in den Ausgabetabellen sichtbar.
- In den HTML Ausgabetabellen stehen nur Fehlermeldungen des Nmap Scans selbst.
Fehler vom Modul (Execute nicht erfolgreich) werden per Benachrichtigung (einmalig) versendet!
- Wäre fing anstatt nmap nicht besser?
- Bei meinem Vergleichstest (Subnet mit ca. 40 aktiven Hosts) benötigt nmap ca. 5-6 Sekunden, fing benötigt 16 Sekunden. Der Informationsgehalt ist derselbe (Hostname, MAC, Vendor..)