fail2ban-Benachrichtigungen mit Prowl

Diesen Beitrag schrieb ich 9 Jahre und 1 Monat zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 2 Minuten

Ursprünglich hatte ich einen Rootie: ich hostete meine Webseiten, machte Mailserver-Dinge und spielte mit OpenLDAP.

Doch dann wurde die Maschine Teil eines Botnets, und ich hatte nach der Geburt des ersten Kindes plötzlich nicht mehr die benötigte Zeit, mich um das Setup ordentlich zu kümmern. Zudem war die Hardware schon mehrere Jahre alt, ein Umzug hätte angestanden… Ich entschied mich damals schweren Herzens für die Kündigung des Servers und zog mit meinen Daten zu einem Hoster um. Aber wirklich warm wurde ich damit nie. Ich bin es gewohnt, root zu sein, und das FTP-Korsett war mir zu eng. Die Anbindung an die Datenbank brach öfter mal zusammen, was laut Webhoster an der miesen Implementierung von WordPress läge. Und auch sonst war die Performance ziemlich unterirdisch – was laut Webhoster an der miesen Performance von WordPress-Plugins lag.

Vergangene Woche überredete mich das Partnerdings zu einem VPS – ich könne es ja ausprobieren, er sei monatlich kündbar. Ich war zuerst skeptisch, aber hey – was kann man für 2,40EUR pro Monat schon falsch machen? Ubuntu drauf und go. Bei der Gelegenheit transportierte ich alle WordPress-Tabellen von MyISAM zu InnoDB. Dann optimierte ich das grundsätzliche Caching der Datenbank und schaltete schließlich einen varnish vor. Parallel dazu ließ in sendmail, cyrus-imapd und DSPAM anlaufen. In gewisser Weise macht mich die Mutterschaft zu einem deutlich besseren Admin: die Zeit, die ich am Rechner verbringen kann, ist sehr begrenzt, und statt Trial-and-Error plane ich nun ein Setup, während ich Windeln wechsle, Kartoffeln schäle oder Badewanne putze – und hacke es dann, wenn sich die Gelegenheit bietet, innerhalb einer Dreiviertelstunde runter :D

Ohne fail2ban möchte ich keinen Server betreiben, und da ich Prowl ohnehin schon nutze hielt ich es für eine gute Idee, beide zu verheiraten. Dazu musste ich lediglich einen API-Key generieren, eine /etc/fail2ban/action.d/prowl.conf erstellen, die /etc/fail2ban/jail.conf anpassen und dem Dienst einen Tritt geben. Eventuelle Fehler – wie immer – in /var/log/fail2ban.log. Have fun!

/etc/fail2ban/action.d/prowl.conf

[Definition]
actionstart = wget 'https://prowlapp.com/publicapi/add?apikey=<prowlapikey>&application=<prowlapp>&event=<prowlsender>&description=starting&priority=<prowlprio>' -o /dev/null --no-check-certificate -O /dev/null
actionstop = wget 'https://prowlapp.com/publicapi/add?apikey=<prowlapikey>&application=<prowlapp>&event=<prowlsender>&description=stopping&priority=<prowlprio>' -o /dev/null --no-check-certificate -O /dev/null
actioncheck =
actionban = wget 'https://prowlapp.com/publicapi/add?apikey=<prowlapikey>&application=<prowlapp>&event=<prowlsender>&description="jail <name> banned <ip> after <failures> failures"&priority=<prowlprio>' -o /dev/null --no-check-certificate -O /dev/null
actionunban =

[Init]
name = default
prowlsender = fail2ban
prowlprio = 1
prowlapp = $YOUR_API_APP
prowlapikey = $YOUR_API_KEY

/etc/fail2ban/jail.conf

action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
        prowl[name=%(__name__)s]
Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „fail2ban-Benachrichtigungen mit Prowl“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.