Fail2Ban und die bösen Jungs

Fail2Ban und die bösen Jungs

Neuer Server, neue Möglichkeiten – Warum ein Wechsel manchmal unvermeidbar ist

Manchmal steht es an: Ein neuer Server muss her. Der alte ist entweder im Preis-Leistungs-Verhältnis nicht mehr konkurrenzfähig oder andere Gründe machen den Wechsel notwendig. In unserem Fall ging es um die Neugestaltung der Webseite, verbunden mit einem Server-Update, um die Performance und Sicherheit zu verbessern.

Warum wir auf ISPConfig setzen

Seit vielen Jahren vertrauen wir auf ISPConfig, eine bewährte Open-Source-Lösung für die Verwaltung von Servern. Diese Software bietet eine Vielzahl von Funktionen, die einem die Arbeit erleichtern, sei es die Verwaltung von Domains, E-Mails oder Datenbanken. Aber wie bei vielen leistungsstarken Tools gilt: Manchmal sind individuelle Anpassungen nötig, um spezielle Anforderungen optimal umzusetzen.

Sicherheit im Fokus: Unser Einsatz von Fail2Ban

Im heutigen Beitrag wollen wir über Fail2Ban sprechen – ein wichtiges Tool, um Server vor unerwünschtem Zugriff zu schützen. Cyberkriminalität bleibt eine allgegenwärtige Bedrohung, und Tools wie Fail2Ban helfen uns, den Server abzusichern und „die bösen Jungs“ draußen zu halten.

Fail2Ban analysiert Log-Dateien und blockiert IP-Adressen, die durch verdächtige Aktivitäten auffallen – sei es durch fehlgeschlagene Login-Versuche oder andere verdächtige Muster. Damit sorgt das Tool für eine zusätzliche Schutzschicht, die besonders bei öffentlich zugänglichen Servern unverzichtbar ist.

 

Anleitung zur Konfiguration von Fail2Ban auf Ubuntu 24.04

In diesem Beitrag zeigen wir Schritt für Schritt, wie Sie Fail2Ban einrichten, testen und anpassen, um Ihren Server optimal zu schützen. Diese Anleitung ist speziell auf Ubuntu 24.04 abgestimmt.
Vorbereitung

  1.  Anmelden als Admin
    Loggen Sie sich mit einem Benutzerkonto ein, das sudo-Rechte hat.
  2. Benutzerdefinierte Dateien erstellen

    Um Ihre Konfiguration vor Überschreibungen bei Updates zu schützen, erstellen wir eigene Konfigurationsdateien. Dies kann mit dem touch-Befehl erfolgen:

    sudo touch /etc/fail2ban/jailinfo.sh
    sudo touch /etc/fail2ban/jail.d/custom.conf
    sudo touch /etc/fail2ban/filter.d/ufw.conf


Testing: Jail-Status prüfen

  1. Skript erstellen
    Erstellen Sie die Datei /etc/fail2ban/jailinfo.sh und machen Sie sie ausführbar:

    sudo nano /etc/fail2ban/jailinfo.sh

    Fügen Sie folgenden Inhalt ein:

    #!/bin/bash
    for jail in $(sudo fail2ban-client status | grep 'Jail list:' | sed 's/.*://;s/,//g'); do
     echo "Jail: $jail";
     sudo fail2ban-client status $jail | grep 'Banned IP';
    done
  2. Skript ausführbar machen

     

    sudo chmod +x /etc/fail2ban/jailinfo.sh

  3. Skript ausführen
    Das Skript liefert eine Übersicht der aktiven Jails und blockierten IP-Adressen:

    sudo ./etc/fail2ban/jailinfo.sh

    Beispielausgabe bei einer ISPConfig-Installation:

    Jail: dovecot
          `- Banned IP list:
    Jail: postfix-sasl
          `- Banned IP list:
    Jail: pure-ftpd
          `- Banned IP list:
    Jail: sshd
          `- Banned IP list: 218.92.0.155 141.98.10.198

Jail-Konfiguration anpassen

Öffnen Sie die Datei /etc/fail2ban/jail.d/custom.conf:

sudo nano /etc/fail2ban/jail.d/custom.conf

Fügen Sie die folgende Konfiguration ein:

[DEFAULT]
bantime.increment = true
bantime.multipliers = 1 2 4 8 16 32 64
bantime = 20m
findtime = 60m
maxretry = 3
banaction = ufw
banaction_allports = ufw
[ufw]
enabled = true
filter = ufw
action = iptables-allports
logpath = /var/log/ufw.log
[nginx-4xx]
enabled = true
port = http,https
filter = nginx-4xx
logpath = %(nginx_error_log)s
[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = %(nginx_error_log)s
[nginx-botsearch]
enabled = true
port = http,https
filter = nginx-botsearch
logpath = %(nginx_access_log)s
[nginx-forbidden]
enabled = true
port = http,https
filter = nginx-forbidden
logpath = %(nginx_error_log)s
[nginx-sslerror]
enabled = true
port = http,https
filter = nginx-sslerror
logpath = %(nginx_error_log)s

Filter für UFW anpassen

Öffnen Sie die Datei /etc/fail2ban/filter.d/ufw.conf:

sudo nano /etc/fail2ban/filter.d/ufw.conf

Fügen Sie folgenden Inhalt ein:

[Definition]
failregex = [UFW BLOCK].+SRC=<HOST> DST
ignoreregex =

Änderungen übernehmen

Starten Sie den Fail2Ban-Dienst neu und prüfen Sie den Status:

sudo service fail2ban restart
sudo service fail2ban status

 

Wir testen wieder und sehen direkt die Änderungen an unserem System.

Jail: dovecot
   `- Banned IP list:	
Jail: nginx-4xx
   `- Banned IP list:	
Jail: nginx-botsearch
   `- Banned IP list:	
Jail: nginx-forbidden
   `- Banned IP list:	
Jail: nginx-http-auth
   `- Banned IP list:	
Jail: nginx-sslerror
   `- Banned IP list:	
Jail: postfix-sasl
   `- Banned IP list:	
Jail: pure-ftpd
   `- Banned IP list:	
Jail: sshd
   `- Banned IP list:	218.92.0.155 141.98.10.198
Jail: ufw
   `- Banned IP list:	118.37.157.169 78.128.113.102 154.213.187.163 5.188.206.22 2.57.122.163 18.223.104.85 78.128.113.98 115.231.78.10

Direkt zu sehen sind die Änderungen bei der UFW Firewall. Bei den anderen Regeln ist es nur noch eine Frage der Zeit.

 

Fazit: Der Mix macht’s

Der Wechsel zu einem neuen Server und der Einsatz bewährter Tools wie ISPConfig und Fail2Ban ermöglichen uns, eine moderne und sichere Grundlage für unsere Projekte zu schaffen. Individuelle Anpassungen sorgen dabei für den Feinschliff, damit unsere Server so effizient und sicher wie möglich arbeiten.

 

Mehr

 

Zukunft
F. Romweber

Die Umsetzung von IT-Projekten für KMU ist ein heiß diskutiertes Thema, das Mehrwert und einen Wettbewerbsvorteil gegenüber jenen verspricht, die sich damit nicht befassen.