fail2ban – was machen wenn man sich selber ausgesperrt hat?

fail2ban ist ein tolles Werkzeug um ungebetene Gäste von seinem Server fern zu halten. Nach vordefinierten Regeln überwacht fail2ban in Echzeit die Logfiles nach verdächtigen Angriffsmustern. Nach einer frei definierbaren Anzahl an Fehlversuchen wird die verursachende IP-Adresse für eine ebenfalls frei definierbare Zeit durch iptables geblockt. Die häufigesten Angriffsversuche sind mit brute-force-Angriffen auf den ssh-Daemon Angriffe auf WordPress oder Postfix bzw. Dovecot, also das Mailsystem. Nun kann es vorkommen, dass man sich bzw. seine IP-Adresse unbeabsichtigt selber aussperrt. Das kann durch Schusseligkeit aber auch durch einen fehlkonfigurierten Email-Client oder ähnlichem vorkommen. fail2ban bzw. iptables macht keinen Unterschied zwischen den Diensten beim Sperren von IP-Adressen. Das hat nun den blöden Nebeneffekt, dass man für eine bestimmte Zeit keinen Zugriff mehr auf seinen Server hat.

Zunächst muss man seine eigene öffentliche IP-Adresse heraus bekommen. Da die meisten Menschen heutzutage über einen Router mit NAT im Internet sind entspricht die IP-Adresse im lokalen Netzwerk nicht seiner öffentlichen IP-Adresse. Die öffentliche IP-Adresse ist meist die internetseitige IP-Adresse des Routers. In der Shell kann man seine öffentliche IP-Adresse einfach ermitteln:

$ host myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}'
123.456.789.123

Weiterlesen

Durch fail2ban geblockte IPs an AbuseIPDB melden

 

Wenn man eine funktionierende Installation von fail2ban hat kann man die geblockten IP-Adressen an AbuseIPDB weiterleiten. AbuseIPDB sammelt bösartige IPs die auf verschiedenen Weise Server angreifen. Um IP-Adressen zu melden braucht man einen API-Schlüssel. Den erhält man dadurch das man sich bei AbuseIPDB einen Account erstellt und unter API einen Schlüssel erstellt. Der API-Schlüssel ist ein längerer hexadezimaler Wert.

Leider ist das Debian-10-Paket von fail2ban so alt, dass der API-Aufruf nicht mehr funktioniert. Zum Glück ist es nur eine Datei die aktualisiert werden muss. Dazu wechselt man in das Verzeichnis /etc/fail2ban/action.d/ und lädt mit:

wget https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/action.d/abuseipdb.conf

die aktuelle Datei abuseipdb.conf in das korrekte Verzeichnis. Unten in dieser Datei wird auch in der untersten Zeile bei der Variablen abuseipdb_apikey der API-Schlüssel eingetragen.

Weiterlesen

Webpage zur Anzeige der von fail2ban geblockten IP-Adressen

Irgendwie interessiert mich immer mal woher die IPs kommen die durch automatisierte Angriffscripts von fail2ban aussortiert werden. Was liegt hier nahe – ein Shellscript zu schreiben und dann mit crond regelmäßig zu erneuern. Geblockte IP-Adressen können mit:

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}'

ausgelesen werden. Ist ein wenig unhandlich diese unformatierte Ausgabe.

Weiterlesen

kais-universum.de