FHEM Tutorial-Reihe - Part 32: Zugriff auf FHEM mit Fail2Ban absichern

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

FHEM Tutorial-Reihe - Part 32: Zugriff auf FHEM mit Fail2Ban absichern
FHEM Tutorial-Reihe - Part 32: Zugriff auf FHEM mit Fail2Ban absichern
  • Matthias Kleine
  • 15.06.2017
  • Remote-Zugriff
  • Sicherheit

Immer wenn man irgendwelche Anwendungen in Netz stellt, sollte man diese so gut es geht absichern. Dies haben wir dank ReverseProxy, SSL und Benutzernamen und Passwort schon ganz gut hinbekommen. Die Schwachstelle aktuell ist eigentlich nur noch Bruteforce - also das erraten von Benutzernamen und Passwort durch ausprobieren. Diesem Problem gehen wir in diesem Video an den Hals und lösen es natürlich.

Achtung: Dieser Inhalt wurde vor mehreren Jahren aufgenommen und ist nicht mehr aktuell! Es ist nicht empfohlen nach dieser Anleitung vorzugehen.

Was wird benötigt?

  • Eine FHEM-Installation
  • Alles, was in Tutorial 21 gezeigt wurde (ReverseProxy)

Video

Hausbau-Kurs

Befehle

Als erstes installieren wir ganz einfach fail2ban. Das geht relativ flott.

sudo apt-get update
sudo apt-get install fail2ban

Jetzt können wir die jail-Config kopieren, falls wir vorhaben Standardeinstellungen anzupassen. Ist dies nicht gewünscht, brauchen wir diesen Schritt nicht durchführen. Genauso gut kann man alle Informationen für jedes Jail einzeln konfigurieren.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vi /etc/fail2ban/jail.local

Falls Pfade angepasst werden müssen (wie bei mir wegen Docker):

sudo cp /etc/fail2ban/paths-debian.conf /etc/fail2ban/paths-overrides.local
sudo vi /etc/fail2ban/paths-overrides.local

Nun legen wir für das neue Jail eine neue Datei an. Wie diese heißt ist egal. Hauptsache der Name endet auf .conf und die Datei liegt im jail.d-Verzeichnis. In einer Datei können beliebig viele Jails konfiguriert werden.

sudo vi /etc/fail2ban/jail.d/docker-apache.conf

Theoretisch reicht jetzt der folgende Inhalt, damit alles bereits funktioniert. Ich habe allerdings noch ein wenig Feintuning durchgeführt und die maximalen Fehlversuche bis zum Ban beschränkt, sowie die Banzeit erhöht. Nach 3 Versuchen wird man nun bei mir eine ganze Stunde gesperrt. Mit maximal 72 Benutzer und Passwort-Kombinationen kann man pro Tag nicht wirklich viel erreichen. So würde ich das auch immer rechnen: Was ist im schlimmsten Fall möglich?

[apache-auth]
enabled = true

Wenn man nun noch mit Pushover arbeiten möchte, muss man als erstes eine neue Applikation auf der Pushover-Website anlegen. Natürlich kann genauso gut eine bestehende genutzt werden. Wir brauchen auf jeden Fall ein Application- und einen User-Token.

sudo apt-get install geoip-bin
sudo cp /etc/fail2ban/action.d/iptables-multiport.conf /etc/fail2ban/action.d/pushover-notify.conf
sudo vi /etc/fail2ban/action.d/pushover-notify.conf

Danach fügt man als neue Zeile (unter actionban) folgenden Aufruf ein:

/usr/bin/curl -s -F "token=<token>"  -F "user=<user>" -F "title=[Fail2Ban] banned" -F "message=Banned IP: <ip> Location: `geoiplookup <ip>`" https://api.pushover.net/1/messages

[Init]
token = YOUR_APPLICATION_TOKEN_HERE
user = YOUR_USER_API_KEY_HERE

Diese neue banaction muss dann natürlich noch im entsprechenden Jail konfiguriert werden:

sudo vi /etc/fail2ban/jail.d/docker-apache.conf
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 13.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos