fail2ban-Benachrichtigungen mit Prowl
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]
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten