Login in fhem nach erfolglosen Versuchen verzögern

Begonnen von CottonIJo, 23 September 2019, 16:45:08

Vorheriges Thema - Nächstes Thema

CottonIJo

Hallo zusammen,

immer wenn ich unseren fhem-Server aufgrund von Abwesenheit für den externen Zugriff frei schalte sehe ich im Logfile vom System nachfolgende Einträge.
Ich vermute dahinter Login-Versuche von Web-Scannern. In diesem Beispiel aus USA und China.


2019.09.22 13:51:08 3: Login denied for user >admin< via WEBtablet_162.209.181.239_50827
2019.09.22 13:51:08 3: Login denied for user >super< via WEBtablet_162.209.181.239_50849
2019.09.22 13:51:09 3: Login denied for user >admin< via WEBtablet_162.209.181.239_50867
2019.09.22 13:51:11 3: Login denied for user >admin< via WEBtablet_162.209.181.239_50882
2019.09.22 13:51:11 3: Login denied for user >root< via WEBtablet_162.209.181.239_50941
2019.09.22 13:51:11 3: Login denied for user >root< via WEBtablet_162.209.181.239_50959
2019.09.22 13:51:12 3: Login denied for user >ktroot< via WEBtablet_162.209.181.239_50989
2019.09.22 13:51:12 3: Login denied for user >ktuser< via WEBtablet_162.209.181.239_51007
2019.09.22 13:51:13 3: Login denied for user >ktuser< via WEBtablet_162.209.181.239_51033
2019.09.22 13:51:14 3: Login denied for user >ubnt< via WEBtablet_162.209.181.239_51063
2019.09.22 13:51:15 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51078
2019.09.22 13:51:16 3: Login denied via WEBtablet_162.209.181.239_51130
2019.09.22 13:51:17 3: Login denied for user >root< via WEBtablet_162.209.181.239_51142
2019.09.22 13:51:18 3: Login denied for user >root< via WEBtablet_162.209.181.239_51208
2019.09.22 13:51:19 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51231
2019.09.22 13:51:20 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51306
2019.09.22 13:51:21 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51355
2019.09.22 13:51:24 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51375
2019.09.22 13:51:24 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51426
2019.09.22 13:51:24 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51437
2019.09.22 13:51:25 3: Login denied for user >user< via WEBtablet_162.209.181.239_51453
2019.09.22 13:51:26 3: Login denied for user >root< via WEBtablet_162.209.181.239_51479
2019.09.22 13:51:26 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51498
2019.09.22 13:51:28 3: Login denied for user >ktuser< via WEBtablet_162.209.181.239_51524
2019.09.22 13:51:28 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51579
2019.09.22 13:51:29 3: Login denied for user >user< via WEBtablet_162.209.181.239_51596
2019.09.22 13:51:29 3: Login denied for user >user< via WEBtablet_162.209.181.239_51606
2019.09.22 13:51:30 3: Login denied for user >username< via WEBtablet_162.209.181.239_51634
2019.09.22 13:51:30 3: Login denied for user >user< via WEBtablet_162.209.181.239_51652
2019.09.22 13:51:31 3: Login denied for user >support< via WEBtablet_162.209.181.239_51682
2019.09.22 13:51:31 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51702
2019.09.22 13:51:32 3: Login denied for user >admin< via WEBtablet_162.209.181.239_51725
2019.09.22 13:51:32 3: Login denied for user >user< via WEBtablet_162.209.181.239_51744




2019.09.23 04:15:55 3: Login denied for user >admin< via WEBtablet_162.209.135.157_55630
2019.09.23 04:15:59 3: Login denied for user >super< via WEBtablet_162.209.135.157_55644
2019.09.23 04:15:59 3: Login denied for user >admin< via WEBtablet_162.209.135.157_55726
2019.09.23 04:15:59 3: Login denied for user >admin< via WEBtablet_162.209.135.157_55742
2019.09.23 04:16:00 3: Login denied for user >root< via WEBtablet_162.209.135.157_55754
2019.09.23 04:16:00 3: Login denied for user >root< via WEBtablet_162.209.135.157_55763
2019.09.23 04:16:01 3: Login denied for user >ktroot< via WEBtablet_162.209.135.157_55771
2019.09.23 04:16:01 3: Login denied for user >ktuser< via WEBtablet_162.209.135.157_55780
2019.09.23 04:16:08 3: Login denied for user >ktuser< via WEBtablet_162.209.135.157_55792
2019.09.23 04:16:09 3: Login denied for user >ubnt< via WEBtablet_162.209.135.157_56026
2019.09.23 04:16:12 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56057
2019.09.23 04:16:13 3: Login denied via WEBtablet_162.209.135.157_56246
2019.09.23 04:16:13 3: Login denied for user >root< via WEBtablet_162.209.135.157_56268
2019.09.23 04:16:14 3: Login denied for user >root< via WEBtablet_162.209.135.157_56281
2019.09.23 04:16:14 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56312
2019.09.23 04:16:15 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56346
2019.09.23 04:16:15 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56363
2019.09.23 04:16:16 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56385
2019.09.23 04:16:16 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56400
2019.09.23 04:16:17 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56419
2019.09.23 04:16:18 3: Login denied for user >user< via WEBtablet_162.209.135.157_56434
2019.09.23 04:16:19 3: Login denied for user >root< via WEBtablet_162.209.135.157_56530
2019.09.23 04:16:19 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56558
2019.09.23 04:16:23 3: Login denied for user >ktuser< via WEBtablet_162.209.135.157_56579
2019.09.23 04:16:28 3: Login denied for user >admin< via WEBtablet_162.209.135.157_56708
2019.09.23 04:16:28 3: Login denied for user >user< via WEBtablet_162.209.135.157_56931
2019.09.23 04:16:29 3: Login denied for user >user< via WEBtablet_162.209.135.157_56950
2019.09.23 04:16:29 3: Login denied for user >username< via WEBtablet_162.209.135.157_56978
2019.09.23 04:16:31 3: Login denied for user >user< via WEBtablet_162.209.135.157_57001
2019.09.23 04:16:31 3: Login denied for user >support< via WEBtablet_162.209.135.157_57075
2019.09.23 04:16:32 3: Login denied for user >admin< via WEBtablet_162.209.135.157_57123
2019.09.23 04:16:32 3: Login denied for user >admin< via WEBtablet_162.209.135.157_57147
2019.09.23 04:16:33 3: Login denied for user >user< via WEBtablet_162.209.135.157_57184


Wäre es nicht eine Idee, die Versuche sich auf den Server einzuloggen, nach einer bestimmten Anzahl von Fehlversuchen zeitlich zu verzögern?
Beispiel: Die ersten 3 Versuche sind zeitlich nicht verzögert, der 4. Versuch ist dann erst nach 30Sek, der 5. nach weiteren 60 Sek, dann die Folgenden erst nach 120, 240, 480Sek .. möglich
Sollte zwischen dem letzten Versuch und einem dann folgenden mindestens 300Sek Pause liegen wird der Delay-Counter auf Null zurück gesetzt und das Spiel kann von vorne beginnen.

Wie ist eure Meinung dazu? Oder gibt es bereits eine derartige Funktion die ich aktivieren kann aber nicht kenne?

Grüße Joachim

kadettilac89

Schau dir mal fail2ban an. Damit kannst du log überwachen und ip sperren. Solche Anforderungen sind besser in Tools aufgehoben die dafür gebaut sind. Ggf. In Verbindung mit einem Reverse proxy.

Schau mal über die Suche, es gab einen thread zu nginx mit fail2ban wenn ich mich nicht irre


amenomade

Zitatunseren fhem-Server aufgrund von Abwesenheit für den externen Zugriff frei schalte
Das ist per se eine schlechte Idee, ein Smarthome System direkt im Internet freizuschalten.
Hast Du keine Möglichkeit, ein VPN einzurichten?
Ansonsten kann ja ein reverse Proxy ein bisschen Sicherheit bringen, angenommen dass dieses richtig konfiguriert ist!

In Fhem selbst kann man mit allowFrom die IP Adressen beschränken, und https und ein starkes Passwort einrichten. Viel mehr kann man nicht.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Wernieman

Und vor allem muß man hoffen, das man die Authentifizierung nicht umgehen kann. Ich möchte hier keinem Entwickler nahe treten, aber auf Sicherheit ist FHEM nicht entwickelt.

Deshalb:
Entweder fhem mit VPN oder mit Reverseproxy und dort mit Authentifizierung einrichten ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

betateilchen

Zitat von: amenomade am 27 September 2019, 19:00:26
Viel mehr kann man nicht.

Doch, man kann sehr viel mehr machen. Man kann nämlich das komplette Login-Verfahren in FHEM ziemlich frei konfigurieren.

Damit läßt sich auch ein Login mit einem Einmalpasswort versehen, beispielsweise mit dem Modul GoogleAuth https://commandref.fhem.de/#GoogleAuth
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

amenomade

Dies mit Google Auth kenne ich. Die integration als Login Verfahren in Fhem ist dann über allowed zu machen. Z.B. hier beschrieben: https://forum.fhem.de/index.php/topic,65668.msg568791.html#msg568791

Aber m.M.n. macht es nur eine kleine Verbesserung im Fall eines dictionnary oder brute force Angriffs. Und gar nichts gegen z.B. DOS Attacke. Jetzt die Frage: was sucht der TE? Eine Lösung, um weniger Meldungen in der Log zu haben, oder sein Fhem effizient zu schützen?

Wobei... wie es aussieht, sind das nur "standard" einfache dictionnary Attacke: gleiche Reihenfolge von gängigen Usernamen (wahrscheinlich mit der gleichen Reihenfolge von Passwörter). Dagegen reicht ein starkes Passwort.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

connormcl

Zitat von: amenomade am 27 September 2019, 23:56:13
Wobei... wie es aussieht, sind das nur "standard" einfache dictionnary Attacke: gleiche Reihenfolge von gängigen Usernamen (wahrscheinlich mit der gleichen Reihenfolge von Passwörter). Dagegen reicht ein starkes Passwort.

Starkes Passwort bringt nix, wenn es jemand einfach mitlesen kann... ob https verwendet wird sieht man nicht...

Da man leider davon ausgehen muss, das ganze Heimautomatisierungszeugs überall ungepatchte Schwachstellen hat, liegt bei mir alles in einem eigenen Netzwerk und wenn ich da ran muss, gehts erst mit SSH rein und dann hol ich mir was ich brauche per Portforwarding. Das läuft quasi instantan und mit jedem Linux...ist aber nicht jedermanns Sache, das zu verstehen.

Deshalb sollte man als Normaluser eher ein VPN benutzen.

Die Heimautomatisierungskomponenten sind halt beliebte Türöffner...entweder Remote oder sogar per  Diebstahl einfach eine WIFI-Lampe kurz abmontiert und das Passwort ausgelesen. Da sollte man sich umfassend gedanken machen, wenn man seine Installation sicher haben will.

Wernieman

Portforwarding über SSH geht sogar unter Windows mit Putty .. sogar "einfacher" zu verstehen als unter Linux (muß ich als Linux-Freak gestehen)

Ist eigentlich ein "VPN-light" ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rob

Zur fail2ban-config für Fhem finde ich diesen Thread sehr hilfreich https://forum.fhem.de/index.php/topic,84576.15.html

Ich gehe von außen via OpenVPN rein. Ein f2b ist imho eine zusätzliche Hürde, falls der Router doch ein Loch hat  ;D 
Und ein verschlossenes Fhem eine weitere Hürde - da bin ich aber zugegebenermaßen noch zu lax   :o
Es gibt auch User die alles zum SmartHome in Subnetzen mit entspr. Zugriffsregeln kapseln.

Oder wär das alles doppelt gemoppelt und unnötig?

Viele Grüße
rob

MadMax-FHEM

#10
fail2ban hat mit einem Routerloch nichts zu tun...

Weil wenn du von außen drauf willst (egal ob openvpn oder "direkt") musst du ja ein "Loch" im Router haben... ;)

fail2ban prüft nur das angegebene Log auf "fehlerhafte Anmeldungen/-Versuche" und blockt dann (irgendwann) diese IP...

Ich gehe per openvpn von außen rein und habe dazu fail2ban Regeln die dann eben unerlaubte bzw. irgendwelche die den offenen Port tracktieren (eine zeitlang) aussperren...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

rob

Zitat von: MadMax-FHEM am 29 September 2019, 13:31:26
wenn du von außen drauf willst (egal ob openvpn oder "direkt") musst du ja ein "Loch" im Router haben... ;)
auch wieder wahr  ;D

Viele Grüße
rob