Hackerangriff auf fhem?

Begonnen von justcallmeal, 25 Juli 2018, 10:28:16

Vorheriges Thema - Nächstes Thema

Frank_Huber

Zitat von: Mitch am 25 Juli 2018, 15:00:08
Deswegen habe ich bei mir einen Geofilter laufen, der "solche" Länder gar nicht erst durch die FW lässt.
Na dafür bekommst überall auf der Welt Geo-located IPs...
böse Jungs in "solchen" Ländern bsorgen sich einfach ne deutsche IP.

Mitch

schon klar, ist ja auch nicht der einzigste Filter  8)
FHEM im Proxmox Container

Christoph Morrison

Zitat von: hugo.crank am 25 Juli 2018, 14:26:15
Auch wenn ich jetzt für Wahnsinnig erklärt werde:

Würde mich auch interessieren: Warum kein VPN?

Frank_Huber

Zitat von: hugo.crank am 26 Juli 2018, 06:58:21
Was habe ich getan:
1. Filter in der Firewall von Windows definiert zum Blocken der IP-Kreise --> reicht völlig aus um den gröbstens Müll abzuhalten
2. Portscan´s werden in Fhem eingehend erkannt durch unsupported HTTP wenn er über die Fhemports rutscht.
define portscan notify portscan:.*unsupported.HTTP.method.* {fhem("set XXXXXX message 🚨🚨🚨 ANGRIFF Scan aus dem Internet an der Haussteuerung! 🚨🚨🚨 ;; setreading portscan event 1 ;; define portscan_message_off at +00:00:15 set portscan inactive ;; define portscan_message_on at +00:10:00 set portscan active")}
3. Loginerrors erkennen:
define loginerror notify loginerror:.*Login.denied.by.* {fhem("set XXXXXXXX message  Fehlgeschlagener LOGIN Haussteuerung!;; setreading loginerror event 1 ;; define loginerror_message_off at +00:00:15 set loginerror inactive ;; define loginerror_message_on at +01:00:00 set loginerror active")}
4. Zähler Loginerrors:
define loginerror_zaehler DOIF ([loginerror:event] > 0) { fhem("set loginerror.Versuche " . (ReadingsNum("loginerror.Versuche","state",0)+1)) } { fhem("setreading loginerror event 0")} { fhem("set loginerror.Versuche_Tag " . (ReadingsNum("loginerror.Versuche_Tag","state",0)+1)) } { fhem("set loginerror.Versuche_Gesamt " . (ReadingsNum("loginerror.Versuche_Gesamt","state",0)+1)) } { fhem("define login_zaehler_refresh at +00:00:01 set loginerror_zaehler initialize")}
5. Reconnect Internetleitung:
define loginerror_FRITZBOX_reconnect DOIF ([loginerror.Versuche:state] > 3) (set XXXXXX message kurze Trennung Internetverbindung ;; get FRITZ tr064Command WANIPConnection:1 wanipconnection1 ForceTermination ;; setreading loginerror.Versuche state 0)

Ich hoffe ich hab jetzt alles richtig zuzsammen geschrieben.
Warum kein VPN? Wenn ich jetzt meine Argumente vorbringe wird nur versucht sie zu entkräften. Warum werden CRM-Systeme mit direktem Webzugriff ins Internet bei großen Unternehmen gesetzt? Wozu werden Onlineshops ohne VPN realisiert?
Danke! Nur worauf reagieren portscan und loginerror?
Der notify hört ja auf sich selbst?

Gesendet von meinem Doogee S60 mit Tapatalk


CoolTux

Zitat von: hugo.crank am 26 Juli 2018, 06:58:21
Was habe ich getan:
1. Filter in der Firewall von Windows definiert zum Blocken der IP-Kreise --> reicht völlig aus um den gröbstens Müll abzuhalten
2. Portscan´s werden in Fhem eingehend erkannt durch unsupported HTTP wenn er über die Fhemports rutscht.
define portscan notify portscan:.*unsupported.HTTP.method.* {fhem("set XXXXXX message 🚨🚨🚨 ANGRIFF Scan aus dem Internet an der Haussteuerung! 🚨🚨🚨 ;; setreading portscan event 1 ;; define portscan_message_off at +00:00:15 set portscan inactive ;; define portscan_message_on at +00:10:00 set portscan active")}
3. Loginerrors erkennen:
define loginerror notify loginerror:.*Login.denied.by.* {fhem("set XXXXXXXX message  Fehlgeschlagener LOGIN Haussteuerung!;; setreading loginerror event 1 ;; define loginerror_message_off at +00:00:15 set loginerror inactive ;; define loginerror_message_on at +01:00:00 set loginerror active")}
4. Zähler Loginerrors:
define loginerror_zaehler DOIF ([loginerror:event] > 0) { fhem("set loginerror.Versuche " . (ReadingsNum("loginerror.Versuche","state",0)+1)) } { fhem("setreading loginerror event 0")} { fhem("set loginerror.Versuche_Tag " . (ReadingsNum("loginerror.Versuche_Tag","state",0)+1)) } { fhem("set loginerror.Versuche_Gesamt " . (ReadingsNum("loginerror.Versuche_Gesamt","state",0)+1)) } { fhem("define login_zaehler_refresh at +00:00:01 set loginerror_zaehler initialize")}
5. Reconnect Internetleitung:
define loginerror_FRITZBOX_reconnect DOIF ([loginerror.Versuche:state] > 3) (set XXXXXX message kurze Trennung Internetverbindung ;; get FRITZ tr064Command WANIPConnection:1 wanipconnection1 ForceTermination ;; setreading loginerror.Versuche state 0)

Ich hoffe ich hab jetzt alles richtig zuzsammen geschrieben.
Warum kein VPN? Wenn ich jetzt meine Argumente vorbringe wird nur versucht sie zu entkräften. Warum werden CRM-Systeme mit direktem Webzugriff ins Internet bei großen Unternehmen gesetzt? Wozu werden Onlineshops ohne VPN realisiert?

Hast Du Deine Abenteuerliche Konfiguration mal getestet?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CBSnake

Zitat von: hugo.crank am 26 Juli 2018, 06:58:21
Was habe ich getan:
1. Filter in der Firewall von Windows definiert zum Blocken der IP-Kreise --> reicht völlig aus um den gröbstens Müll abzuhalten
2. Portscan´s werden in Fhem eingehend erkannt durch unsupported HTTP wenn er über die Fhemports rutscht.
define portscan notify portscan:.*unsupported.HTTP.method.* {fhem("set XXXXXX message 🚨🚨🚨 ANGRIFF Scan aus dem Internet an der Haussteuerung! 🚨🚨🚨 ;; setreading portscan event 1 ;; define portscan_message_off at +00:00:15 set portscan inactive ;; define portscan_message_on at +00:10:00 set portscan active")}
3. Loginerrors erkennen:
define loginerror notify loginerror:.*Login.denied.by.* {fhem("set XXXXXXXX message  Fehlgeschlagener LOGIN Haussteuerung!;; setreading loginerror event 1 ;; define loginerror_message_off at +00:00:15 set loginerror inactive ;; define loginerror_message_on at +01:00:00 set loginerror active")}
4. Zähler Loginerrors:
define loginerror_zaehler DOIF ([loginerror:event] > 0) { fhem("set loginerror.Versuche " . (ReadingsNum("loginerror.Versuche","state",0)+1)) } { fhem("setreading loginerror event 0")} { fhem("set loginerror.Versuche_Tag " . (ReadingsNum("loginerror.Versuche_Tag","state",0)+1)) } { fhem("set loginerror.Versuche_Gesamt " . (ReadingsNum("loginerror.Versuche_Gesamt","state",0)+1)) } { fhem("define login_zaehler_refresh at +00:00:01 set loginerror_zaehler initialize")}
5. Reconnect Internetleitung:
define loginerror_FRITZBOX_reconnect DOIF ([loginerror.Versuche:state] > 3) (set XXXXXX message kurze Trennung Internetverbindung ;; get FRITZ tr064Command WANIPConnection:1 wanipconnection1 ForceTermination ;; setreading loginerror.Versuche state 0)

Ich hoffe ich hab jetzt alles richtig zuzsammen geschrieben.
Warum kein VPN? Wenn ich jetzt meine Argumente vorbringe wird nur versucht sie zu entkräften. Warum werden CRM-Systeme mit direktem Webzugriff ins Internet bei großen Unternehmen gesetzt? Wozu werden Onlineshops ohne VPN realisiert?

Hi,

super Ansatz, Portscan und Loginerror hab ich gleich mal ausprobiert und getestet. Geht bei mir beides nicht. Habs dann mal mit eigenem Code versucht auch nicht, dann wollte ich über den Eventmanger ein DOIF erstellen lassen um Fehler vor dem Monitor auszuschließen, der nimmt den Loginversuch nicht mal als Event an. Daher gehen vermutlich deine Notify als auch meine eigenen Versuch nicht hmmm
Muss ich das noch irgendwo umstellen?

:o

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

CoolTux

Zitat von: hugo.crank am 26 Juli 2018, 07:41:52
Auf die entsprechenden Events im Readlog reagiert das Abenteuer. und Zählt zudem Counter hoch. Seit Start hatte ich 90 Portscans in 6 Monaten und KEINEN Loginversuch mehr welcher Fehlgeschlagen ist. Ein Kollege der es auch einsetzt hat mal ohne Filter getestet: es kamen ca. 600 Portscan´s bei Ihm an im Kabel Deutschland Netz im Telekomnetz zumindest in meinem IP-Bereich aus dem ich IP´s erhalte sind es max. 20 Scan´s am Tag. Allerdings merkt man das es "Saisons" gibt für vermehrte Scan´s oder Botnetzaktivitäten welche sich ähnlich verhalten.

Deine Angaben scheinen aber nicht komplett zu sein. So wie Du es beschrieben hast geht es nicht. Irgendwas fehlt. Was machen die at's
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CBSnake

#22
hmm,

update von was? FHEM ist aktuell. Logversuche seh ich im Log aber weder mein Doif, noch dein Notify springt an  :o

2018.07.26 07:58:04.766 3: Login denied by allowedxxx for bla via xx_xx.249.xx.140_61369


nachtrag: habs: attr readlog im notify aktivieren :-)
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

CBSnake

Zitat von: CoolTux am 26 Juli 2018, 07:52:29
Deine Angaben scheinen aber nicht komplett zu sein. So wie Du es beschrieben hast geht es nicht. Irgendwas fehlt. Was machen die at's

die at´s deaktivieren das modul und aktivieren es dann wieder. So lese ich das zumindest, würde bei 7 logins die sekunde auch sinn machen :-)
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

CoolTux

Zitat von: CBSnake am 26 Juli 2018, 07:59:05

nachtrag: habs: attr readlog im notify aktivieren :-)

Das war dann wohl das entscheidende. Ohne diese Info geht das alles nämlich gar nicht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CBSnake

hmm,

hier: https://forum.fhem.de/index.php/topic,85071.0.html

schreibst du aber, dass create per Eventmonitor nicht geht, wie bei mir ja auch, dann kommt der Tip der auch das readlog beinhaltet von nils und dann gehts ;-)

Naja ist ja wurst, klasse Idee, funktioniert zumindest das login notify, bei mir noch ohne die at

das Portscan notify teste ich gerade bekomme aber kein unsupported.HTTP.method ausgelöst, von extern scannen geht garnicht  ;D und aus dem Netz scannen (fing app) bringt er nur nen SSL Fehler
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

mark79

Das ist ganz normal wenn man den Port nach außen hin offen hat.
Es gibt Tools die scannen IP Bereiche nach offenen Ports und probieren dann Standart Logins aus (von Routern, NAS, Kameras und was es sonst noch so gibt).
Wer die nicht geändert hat, hat dann ein Problem. :D

Ich würde auf ein VPN setzen, oder zumindest auf fail2ban.
Letzteres blockiert die IP Adresse nach x misslungenen login versuchen, für eine bestimmte Zeit.
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

fiedel

Hatte auch lange diese Loginversuche, als mein FHEM nur mit Passwortschutz im Netz war.
Leider geht VPN auf eingeschränkten Firmenrechnern oft nicht. Also habe ich jetzt NGINX
mit fail2ban. Am Anfang dieser Einrichtung hatte fail2ban noch einiges zu tun, jetzt aber schon
lange nichts mehr. Scheinbar erkennen viele dieser Auto- Login- Scanner fail2ban und
meiden dann den Server. Wiedererkennen können sie ihn ggf. am Begrüßungstext - die
IP ändert sich ja täglich.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

CBSnake

Schlussendlich ist ein nach außen offenes FHEM in manchen Dingen Bequem :-) z.B.

das Handy meldet schon 5km vorher, dass man heimkommt.
Google Home, Alexa etc gehen so auch am einfachsten bzw auch nur so.
FTUI soll für den WAF eben auch extern gehen (ich stell mal die Heizung hoch)

Ich such auch schon länger nach einer Lösung keine Ports mehr öffnen zu müssen, scheitert z.B. an obigen Dingen.
Vieles kann ich aktuell schon im Dialog über Telegram Bot einstellen, ist halt nicht so schick wie mit der FTUI.

Ich hab das notify jetzt mal aktiv, mal sehen was sich da überhaupt tut. Ich lese als Morgenlektüre immer das Logfile vom Vortag quer, bisher hab ich da keine x Login versuche gesehen :-)

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

r00t2

#29
Zitat von: CBSnake am 26 Juli 2018, 11:23:51
Schlussendlich ist ein nach außen offenes FHEM in manchen Dingen Bequem :-) z.B.
...
Ich such auch schon länger nach einer Lösung keine Ports mehr öffnen zu müssen, scheitert z.B. an obigen Dingen. ...
Könnte hier nicht MQTT eine Lösung sein?

Sprich: Die lokale FHEM Instanz subscribed/published auf einem im Internet verfügbaren MQTT Server und kann dann darüber Aktionen ausführen oder Readings zur Verfügung stellen.

Bliebe nur noch die Frage, welcher Anbieter einen sicheren MQTT Server im Netz zur Verfügung stellen kann. Ich finde, da schaut Sensetecnic (https://fred.sensetecnic.com/pricing) ganz interessant aus - vor allem, weil sie auch Node Red anbieten, was durch die Dashboards auch eine einfach zu handhabende GUI bietet.
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)