Fail2Ban einrichten: Schutz vor Brute-Force | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

Fail2Ban Einrichten Anleitung

Zuletzt aktualisiert: 11.01.2026 um 11:52 Uhr

Fail2Ban einrichten: Schutz vor Brute-Force

Fail2Ban überwacht Log-Dateien und sperrt IP-Adressen automatisch nach zu vielen fehlgeschlagenen Anmeldeversuchen. Ein unverzichtbares Tool für jeden öffentlich erreichbaren Server.

Wie funktioniert Fail2Ban?

  1. Überwacht Log-Dateien (SSH, Apache, Nginx, etc.)
  2. Erkennt fehlgeschlagene Anmeldeversuche per Regex
  3. Zählt Fehlversuche pro IP-Adresse
  4. Sperrt IP nach Überschreitung des Limits
  5. Entsperrt automatisch nach Ablauf der Ban-Zeit

Installation

# Ubuntu/Debian
sudo apt update
sudo apt install fail2ban -y

# Status prüfen
sudo systemctl status fail2ban

# Autostart aktivieren
sudo systemctl enable fail2ban

Grundkonfiguration

💡 Wichtig: Bearbeiten Sie nie jail.conf direkt! Erstellen Sie jail.local für eigene Einstellungen.
# Lokale Konfiguration erstellen
sudo nano /etc/fail2ban/jail.local
[DEFAULT]
# Ignorierte IPs (z.B. eigene IP)
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24

# Ban-Dauer in Sekunden (1 Stunde)
bantime = 3600

# Zeitfenster für Fehlversuche
findtime = 600

# Maximale Fehlversuche
maxretry = 5

# E-Mail-Benachrichtigung (optional)
destemail = admin@example.com
sender = fail2ban@example.com
action = %(action_mwl)s

# Ban-Aktion
banaction = iptables-multiport

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
# Fail2Ban neu starten
sudo systemctl restart fail2ban

SSH-Schutz (Standard)

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
findtime = 600

Bei geändertem SSH-Port

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Nginx-Schutz

# In jail.local hinzufügen:

[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
maxretry = 3

[nginx-limit-req]
enabled = true
filter = nginx-limit-req
port = http,https
logpath = /var/log/nginx/error.log
maxretry = 10

[nginx-botsearch]
enabled = true
filter = nginx-botsearch
port = http,https
logpath = /var/log/nginx/access.log
maxretry = 2

Apache-Schutz

[apache-auth]
enabled = true
port = http,https
logpath = /var/log/apache2/error.log
maxretry = 3

[apache-badbots]
enabled = true
port = http,https
logpath = /var/log/apache2/access.log
maxretry = 2

[apache-noscript]
enabled = true
port = http,https
logpath = /var/log/apache2/error.log
maxretry = 3

WordPress-Schutz

Filter erstellen

sudo nano /etc/fail2ban/filter.d/wordpress.conf
[Definition]
failregex = ^<HOST> .* "POST /wp-login.php
            ^<HOST> .* "POST /xmlrpc.php
ignoreregex =

Jail aktivieren

[wordpress]
enabled = true
filter = wordpress
port = http,https
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 3600

Wichtige Befehle

# Status aller Jails
sudo fail2ban-client status

# Status eines Jails
sudo fail2ban-client status sshd

# Gesperrte IPs anzeigen
sudo fail2ban-client status sshd | grep "Banned"

# IP manuell entsperren
sudo fail2ban-client set sshd unbanip 123.45.67.89

# IP manuell sperren
sudo fail2ban-client set sshd banip 123.45.67.89

# Fail2Ban neu laden
sudo fail2ban-client reload

# Jail neustarten
sudo fail2ban-client restart sshd

Logs prüfen

# Fail2Ban-Log
sudo tail -f /var/log/fail2ban.log

# Gebannte IPs suchen
sudo grep "Ban" /var/log/fail2ban.log

# Entbannte IPs suchen
sudo grep "Unban" /var/log/fail2ban.log

Persistente Bans

Standardmäßig gehen Bans bei Neustart verloren. Für persistente Bans:

[DEFAULT]
banaction = iptables-multiport
banaction_allports = iptables-allports

# Oder mit SQLite-Datenbank
dbfile = /var/lib/fail2ban/fail2ban.sqlite3
dbpurgeage = 86400

E-Mail-Benachrichtigung

[DEFAULT]
destemail = admin@example.com
sender = fail2ban@example.com
mta = sendmail

# Aktion mit E-Mail
action = %(action_mwl)s

Action-Typen

Action Beschreibung
action_ Nur Ban (Standard)
action_mw Ban + E-Mail mit Whois
action_mwl Ban + E-Mail mit Whois + Logs

Best Practices

  1. Eigene IP whitelisten: Vermeidet Selbst-Aussperrung
  2. Moderate Ban-Zeiten: Zu lange Bans behindern legitime Nutzer
  3. Logs überwachen: Regelmäßig auf Angriffsmuster prüfen
  4. Backup der Config: Vor Änderungen sichern
  5. Testen: Neue Regeln erst in niedriger Intensität

Troubleshooting

# Regex testen
sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

# Debug-Modus
sudo fail2ban-client -d

# Alle Bans aufheben
sudo fail2ban-client unban --all

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120