Autor Thema: neues Modul 74_Nmap  (Gelesen 6966 mal)

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:Nmap Scanner
« Antwort #15 am: 24 September 2016, 14:41:59 »
So, anbei die erste Version. Bitte mal vorsichtig testen. Läuft bei mir soweit ganz gut.

Voraussetzungen
sudo apt-get install nmap libnmap-parser-perl

define
define <name> Nmap <target specification>

set
  • clear Readings
    löscht alle Readings außer state
  • statusRequest
    stößt einen Scan an

Attribute
  • interval
    Intervall für die Abfrage. Minimum 30 Sekunden, Vorgabe 900 Sekunden
  • path
    Pfad unter dem nmap zu erreichen ist. Vorgabe /urs/bin/nmap

ToDo
- sudo / MAC-Adressen
- args
- disabled
- CommandRef

Ich freue mich auf eure Rückmeldungen.

Grüße
igami

Edit: Aktuelle Version im ersten Beitrag
« Letzte Änderung: 24 September 2016, 17:19:08 von igami »
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:Nmap Scanner
« Antwort #16 am: 24 September 2016, 15:54:51 »
Irgendwie bekomme ich noch die Fehlermeldung
2016.09.24 15:53:23 1 : Error: vagariNetwork has no TYPE
Im Log steht weiterhin
2016.09.24 15:53:51 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4572.

weiß einer woran das liegen kann?
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 1615
  • Niveau ist keine Creme...
Antw:Nmap Scanner
« Antwort #17 am: 24 September 2016, 16:09:35 »
Hi igami,
habe bislang ja "nur" interessiert mitgelesen...

Super, danke!

Werde leider erst morgen oder Mo dazu kommen das Modul zu testen...

Gruß, Joachim
FHEM 5.7 Pi 2, HM-CFG-USB2, 8x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-WDS10-TH-O, 1x HM-DIS-WM55
FHEM 5.7 PI B+, HM-CFG-USB2, 7x HM-CC-RT-DN, 2x HM-TC-IT-WM-W-EU, 3x HM-Sec-SCo
FHEM 5.7 PI 2 (Testsystem), CUL868, 1x HM-TC-IT-WM-W-EU, 1x HumTempESP8266, 1x mySensorsFillingLevel

Offline P.A.Trick

  • Hero Member
  • *****
  • Beiträge: 1560
  • Love it, change it or leave it
Antw:Nmap Scanner
« Antwort #18 am: 24 September 2016, 17:15:46 »
Can't locate Nmap/Parser.pm in @INC (@INC contains: /opt/lib/perl5/5.10.0/arm-linux /opt/lib/perl5/5.10.0 /opt/lib/perl5/site_perl/5.10.0/arm-linux /opt/lib/perl5/site_perl/5.10.0 . ./FHEM) at ./FHEM/74_Nmap.pm line 18.
BEGIN failed--compilation aborted at ./FHEM/74_Nmap.pm line 18.

Welche Lib muss denn noch installiert werden? XML Parser?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:Nmap Scanner
« Antwort #19 am: 24 September 2016, 17:18:15 »
Irgendwie bekomme ich noch die Fehlermeldung
2016.09.24 15:53:23 1 : Error: vagariNetwork has no TYPE
Im Log steht weiterhin
2016.09.24 15:53:51 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4572.

weiß einer woran das liegen kann?
Lag wohl daran, dass ich aus
my $name = @_;
my ($name) = @_;
machen musste. Aktuelle Version Packe ich mal an den ersten Beitrag.

Can't locate Nmap/Parser.pm in @INC (@INC contains: /opt/lib/perl5/5.10.0/arm-linux /opt/lib/perl5/5.10.0 /opt/lib/perl5/site_perl/5.10.0/arm-linux /opt/lib/perl5/site_perl/5.10.0 . ./FHEM) at ./FHEM/74_Nmap.pm line 18.
BEGIN failed--compilation aborted at ./FHEM/74_Nmap.pm line 18.

Welche Lib muss denn noch installiert werden? XML Parser?
Eigentlich nur Nmap::Parser
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:Nmap Scanner
« Antwort #20 am: 25 September 2016, 18:05:58 »
Was wären denn noch interessante Readings?
IPv4
IPv6
hostname
status (up|down)
macAddress
macVendor
OS
uptime
last_seen
scanned_hosts (Wie viele Adressen wurden gescannt)
scan_time (Wie lange hat der Scan gedauert)

Kenne mich selbst mit Nmap nicht so gut aus.

Weiterhin Attribute die man setzen könnte:
absenceThreshold (wie bei Presence)
devAlias (wie bei Unifi)
excludeHosts (IPs die nicht gescannt werden sollen)
« Letzte Änderung: 25 September 2016, 18:10:43 von igami »
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:Nmap Scanner
« Antwort #21 am: 26 September 2016, 16:25:28 »
So, neue Version im ersten Beitrag:
Folgende Readings werden nun erzeugt:
- hostname
- macAddress
- macVendor
- hostsScanned
- hostsUp
- NmapVersion
- scanDuration

Für die mac Readings ist es notwendig, dass das Attribut "sudo 1" gesetzt ist. Um dem fhem user die root rechte ohne Passwort zu geben muss weiterhin die /etc/sudoers editiert werden und im Abschnitt # User privilege specification die Zeile fhem    ALL=(ALL) NOPASSWD: /usr/bin/nmap eingefügt werden.

ToDo:
- args konfigurierbar machen
- disabled einbauen
- CommandRef schreiben
- absenceThreshold wie bei Presence hinzufügen
- state, uptime, last_seen, OS als Readings hinzufügen
- zwischen IPv4/IPv6 umschaltbar machen
- devAlias wie bei Unifi hinzufügen
- excludeHosts als Attribut hinzufügen
- Logeinträge hinzufügen
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline androsch

  • New Member
  • *
  • Beiträge: 40
Antw:neues Modul 74_Nmap
« Antwort #22 am: 27 September 2016, 14:59:47 »
Hallo igami,

gute Arbeit läuft bei mir auf Anhieb, werds mal etwas beobachten, momentan findet er nicht alle Rechner im Netz, das ist aber in nmap im Terminal sporadisch auch so. Normalerweise sollte er ja dann die fehlenden Readings nach und nach erzeugen oder löscht du die bei jedem Durchlauf?

Ansonsten meldet das log noch

adjust_timeouts2: packet supposedly had rtt of -98090 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -98155 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -100023 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -99953 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -99819 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -99008 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -101971 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -101029 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -99516 microseconds.  Ignoring time.
adjust_timeouts2: packet supposedly had rtt of -99553 microseconds.  Ignoring time.

aber das ist wohl meinen diversen SBC geschuldet, die nicht alle mit einem NTP-Server abgeglichen sind....

Ansonsten thumbs-up!

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:neues Modul 74_Nmap
« Antwort #23 am: 27 September 2016, 17:21:13 »
aber das ist wohl meinen diversen SBC geschuldet, die nicht alle mit einem NTP-Server abgeglichen sind....
Bekomme diese Meldungen aber auch, mal schauen ob man die unterbinden kann.
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:neues Modul 74_Nmap
« Antwort #24 am: 27 September 2016, 20:37:55 »
Ist das eine gute Idee?
open(STDERR, ">", "/dev/null");
Scheint die Meldungen zu unterbinden, aber ich habe keine Ahnung was für Nebenwirkungen auftreten können  :-[
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline Andy89

  • Full Member
  • ***
  • Beiträge: 229
Antw:neues Modul 74_Nmap
« Antwort #25 am: 28 September 2016, 10:34:27 »
Servus,
bin durch Zufall heute über dein Modul gestolpert. Finde ich ziemlich cool =)
Eine Frage/Idee hätte ich: Könnte man per Attribut mitgeben, ob die IP immer 3-stellig angegeben wird? Hintergrund deswegen ist, so wären die Geräte nach aufsteigender Nummer in den Readings sortiert und nicht "durcheinander".

Danke schon mal  :) :)

Beste Grüße
Andy
FHEM 5.8 auf rPi3 (mit Homebridge); dbLog und FTUI auf DS1813+; AMAD für Fire;
HMLAN > HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-Sec-RHS,HM-TC-IT-WM-W-EU,ZEL STG RM FFK;
CUL433 > IT, Elro; LGW > PCA301,EC3000,BME280,LaCrosse;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Enigma2;Withings Scale;HUE

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:neues Modul 74_Nmap
« Antwort #26 am: 28 September 2016, 10:59:36 »
Eine Frage/Idee hätte ich: Könnte man per Attribut mitgeben, ob die IP immer 3-stellig angegeben wird?

Da ich mir nicht sicher war habe ich es gerade mal getestet
8.8.8.8 != 008.008.008.008
Daher würde ich das nicht einbauen.
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline Andy89

  • Full Member
  • ***
  • Beiträge: 229
Antw:neues Modul 74_Nmap
« Antwort #27 am: 28 September 2016, 11:53:28 »
Da ich mir nicht sicher war habe ich es gerade mal getestet
8.8.8.8 != 008.008.008.008
Daher würde ich das nicht einbauen.

ehrlich gesagt, weiß ich nicht, was du mir damit sagen willst?
mir gehts ja nur um die Speicherung, vor allem reicht mir da die Veränderung des letzten Parts. Ich hab folgendes nun in der sub Nmap_done($) in der Zeile 121 reingeschrieben. Quasi nach dem Split in der for (@hostsUp)-Schleife und vor dem FHEM-Trigger:

my @ip_old = split('\.', $ip);
    while (length(@ip_old[3]) != 3){
      $ip_old[3] = "0".$ip_old[3];
    }
    $ip = $ip_old[0].".".$ip_old[1].".".$ip_old[2].".".$ip_old[3];

Wahrscheinlich nicht schön, aber ich habe noch nie in Perl programmiert :/

Hiermit wird auf jeden Fall folgendes gemacht:
aus 192.168.1.1   wird 192.168.1.001
aus 192.168.1.10 wird 192.168.1.010
FHEM 5.8 auf rPi3 (mit Homebridge); dbLog und FTUI auf DS1813+; AMAD für Fire;
HMLAN > HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-Sec-RHS,HM-TC-IT-WM-W-EU,ZEL STG RM FFK;
CUL433 > IT, Elro; LGW > PCA301,EC3000,BME280,LaCrosse;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Enigma2;Withings Scale;HUE

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1428
  • RTFM
Antw:neues Modul 74_Nmap
« Antwort #28 am: 28 September 2016, 12:40:00 »
ehrlich gesagt, weiß ich nicht, was du mir damit sagen willst?
mach doch mal bitte ein
ping 192.168.1.001
Ich habe das eben mal mit der Adresse 8.8.8.008 getestet und bekomme dann keine Antwort. Deswegen würde ich das nicht einbauen, weil es dann eine nicht funktionierende IP ist. Die Umsetzung wäre nicht das Problem.
Pi3 mit DbLog/logProxy
HM, HUE, KNX, RFX, AMAD, harmony, TelegramBot, Squeezebox/Squeezelite, alexa
archetype, monitoring, Nmap
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline Andy89

  • Full Member
  • ***
  • Beiträge: 229
Antw:neues Modul 74_Nmap
« Antwort #29 am: 28 September 2016, 13:07:21 »
Ich habe das eben mal mit der Adresse 8.8.8.008 getestet und bekomme dann keine Antwort.

ping 192.168.1.006
PING 192.168.1.006 (192.168.1.6): 56 data bytes
64 bytes from 192.168.1.6: icmp_seq=0 ttl=63 time=186.543 ms
64 bytes from 192.168.1.6: icmp_seq=1 ttl=63 time=276.870 ms
...
^C
--- 192.168.1.006 ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
also theorteisch geht des bei mir^^

Andere Frage. Benutzt du die Readings denn für ein erneutes Auslesen? Weil bei einem Statusrequest wird ja alles durchgepingt und dann wird ja erst der Name angelegt (wenn ich das richtig interpretier', was in dem Modul passiert). Zumindest wird bei einem neuem statusRequest die Zeit der Readings angepasst.
FHEM 5.8 auf rPi3 (mit Homebridge); dbLog und FTUI auf DS1813+; AMAD für Fire;
HMLAN > HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-Sec-RHS,HM-TC-IT-WM-W-EU,ZEL STG RM FFK;
CUL433 > IT, Elro; LGW > PCA301,EC3000,BME280,LaCrosse;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Enigma2;Withings Scale;HUE