Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| software:fail2ban [2026/02/23 23:37] – angelegt wolfgang | software:fail2ban [2026/07/24 13:00] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Fail2Ban ====== | ||
| + | <code bash> | ||
| + | sudo fail2ban-client reload | ||
| + | |||
| + | sudo fail2ban-client status | ||
| + | |||
| + | sudo fail2ban-client banned | ||
| + | |||
| + | sudo fail2ban-client status sshd | ||
| + | |||
| + | #Manually ban an IP address | ||
| + | sudo fail2ban-client set < | ||
| + | |||
| + | #Manually unban an IP address | ||
| + | sudo fail2ban-client set < | ||
| + | </ | ||
| + | |||
| + | ===== Anwendung ===== | ||
| + | |||
| + | Add to .bash_aliases | ||
| + | |||
| + | <code bash> | ||
| + | # | ||
| + | # Fail2Ban | ||
| + | # | ||
| + | alias fail2ban_status=" | ||
| + | alias fail2ban_restart=" | ||
| + | alias fail2ban_stop=" | ||
| + | alias fail2ban_log=" | ||
| + | alias fail2ban_config=" | ||
| + | alias fail2ban_jail=" | ||
| + | alias fail2ban_check_config=" | ||
| + | </ | ||
| + | |||
| + | |||
| + | ====== Fail2Ban ====== | ||
| + | |||
| + | Fail2ban (sinngemäß „Fehlschlag führt zum Bann“) ist ein in Python geschriebenes Intrusion Prevention System (Framework zur Vorbeugung gegen Einbrüche), | ||
| + | |||
| + | Der Hauptzweck von fail2ban ist das Bestimmen und Blockieren bestimmter IP-Adressen, | ||
| + | |||
| + | Fail2ban ist in der Lage, verschiedene Aktionen auszuführen, | ||
| + | |||
| + | Die Standardkonfiguration enthält Filter für Apache, Lighttpd, sshd, vsftpd, qmail, Postfix und den Courier Mail Server. | ||
| + | |||
| + | Filter werden durch reguläre Ausdrücke definiert, die vom Administrator gut angepasst werden können. | ||
| + | |||
| + | < | ||
| + | Die Kombination aus Filter und Aktion wird als jail (Gefängnis) bezeichnet und ist in der Lage, bösartige Hosts zu blockieren. | ||
| + | </ | ||
| + | |||
| + | Ein " | ||
| + | |||
| + | |||
| + | ([[https:// | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | <nspages -h1 software: | ||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | <code bash> | ||
| + | # Installation | ||
| + | sudo apt install fail2ban | ||
| + | |||
| + | # Eigene Konfiguration, | ||
| + | sudo cp / | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Konfiguration ===== | ||
| + | |||
| + | https:// | ||
| + | ===== Anwendung ===== | ||
| + | |||
| + | Add to .bash_aliases | ||
| + | |||
| + | <code bash> | ||
| + | # | ||
| + | # Fail2Ban | ||
| + | # | ||
| + | alias fail2ban_status=" | ||
| + | alias fail2ban_restart=" | ||
| + | alias fail2ban_stop=" | ||
| + | alias fail2ban_log=" | ||
| + | alias fail2ban_config=" | ||
| + | alias fail2ban_jail=" | ||
| + | alias fail2ban_check_config=" | ||
| + | </ | ||
| + | |||
| + | ===== Unban IP ===== | ||
| + | |||
| + | <code bash> | ||
| + | # Konfiguration ohne neustart neu laden | ||
| + | sudo fail2ban-client reload | ||
| + | |||
| + | # Jail ermitteln | ||
| + | sudo fail2ban-client status | ||
| + | |||
| + | # Status des Jail anzeigen | ||
| + | sudo fail2ban-client status Jail | ||
| + | |||
| + | # Status ssh | ||
| + | sudo fail2ban-client status ssh | ||
| + | |||
| + | # Im fail2ban-client dann die Ip freigeben | ||
| + | set Jail unbanip 127.0.0.1 | ||
| + | |||
| + | #wenn man den Jail schon weiß | ||
| + | sudo fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE | ||
| + | </ | ||
| + | |||
| + | ===== Ban IP manually ===== | ||
| + | |||
| + | <code bash> | ||
| + | fail2ban-client set jail_name banip xx.xx.xx.xx | ||
| + | </ | ||
| + | |||
| + | ===== Einträge in IPTABLES ===== | ||
| + | |||
| + | IPTABLES - geblockte IPs sehen und bestimmte IPs entsperren | ||
| + | |||
| + | <code bash> | ||
| + | # Um gesperrte IPs zu sehen: | ||
| + | iptables -L INPUT -v -n --line-number | ||
| + | |||
| + | #Um eine IP-Adresse zu entsperren, bzw. eine Zeile (zB 6) zu löschen: | ||
| + | iptables -D INPUT 6 | ||
| + | </ | ||
| + | ===== Mailbenachrichtigung ===== | ||
| + | |||
| + | Siehe https:// | ||
| + | |||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | <code conf> | ||
| + | [DEFAULT] | ||
| + | maxretry=3 | ||
| + | bantime=1800 | ||
| + | |||
| + | # Destination email address used solely for the interpolations in | ||
| + | # jail.{conf, | ||
| + | destemail = meineemail@provider.de | ||
| + | |||
| + | # Sender email address used solely for some actions | ||
| + | sender = absenderadresse@provider.de | ||
| + | sendername = Fail2BanAlerts | ||
| + | |||
| + | # E-mail action. Since 0.8.1 Fail2Ban uses sendmail MTA for the | ||
| + | # mailing. Change mta configuration parameter to mail if you want to | ||
| + | # revert to conventional ' | ||
| + | mta = mail | ||
| + | action = %(action_mwl)s | ||
| + | </ | ||
| + | |||
| + | ==== Standard Mails unterdrücken ==== | ||
| + | |||
| + | In folgenden Dateien in / | ||
| + | |||
| + | * mail-buffered.local | ||
| + | * mail.local | ||
| + | * mail-whois-lines.local | ||
| + | * mail-whois.local | ||
| + | * sendmail-buffered.local | ||
| + | * sendmail-common.local | ||
| + | |||
| + | die Aktionen actionstart und actionstop anpassen: | ||
| + | |||
| + | <code apache> | ||
| + | [Definition] | ||
| + | | ||
| + | # Option: | ||
| + | # Notes.: | ||
| + | # Values: | ||
| + | # | ||
| + | actionstart = | ||
| + | | ||
| + | # Option: | ||
| + | # Notes.: | ||
| + | # Values: | ||
| + | # | ||
| + | actionstop = | ||
| + | </ | ||
| + | ===== Eigene Filter erstellen ===== | ||
| + | |||
| + | Regel in | ||
| + | |||
| + | / | ||
| + | |||
| + | anlegen und eintragen in | ||
| + | |||
| + | / | ||
| + | |||
| + | < | ||
| + | # Megadruck Conf Datei to Filter 408 Requests | ||
| + | [Definition] | ||
| + | failregex=^[^ ]+ < | ||
| + | </ | ||
| + | | ||
| + | |||
| + | | ||
| + | <code bash> | ||
| + | # Regel überprüfen | ||
| + | sudo fail2ban-regex --print-all-matched / | ||
| + | </ | ||
| + | |||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | ==== Eigener Filter für Postfix ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo nano / | ||
| + | </ | ||
| + | |||
| + | Folgenden Inhalt anlegen | ||
| + | |||
| + | < | ||
| + | # Fail2Ban filter for postfix authentication failures | ||
| + | [INCLUDES] | ||
| + | before = common.conf | ||
| + | [Definition] | ||
| + | _daemon = postfix/ | ||
| + | failregex = ^%(__prefix_line)swarning: | ||
| + | </ | ||
| + | |||
| + | In jail.local folgenden Abschnitt hinzufügen: | ||
| + | |||
| + | < | ||
| + | [sasl] | ||
| + | enabled = true | ||
| + | port = smtp | ||
| + | filter = postfix-sasl | ||
| + | logpath = / | ||
| + | maxretry = 5 | ||
| + | action = iptables-allports[name=sasl] | ||
| + | </ | ||
| + | |||
| + | * Siehe auch https:// | ||
| + | |||
| + | ===== IP Blacklist erstellen ===== | ||
| + | |||
| + | * https:// | ||
| + | |||
| + | Um es direkt auszuführen: | ||
| + | |||
| + | < | ||
| + | sudo iptables -I INPUT -m iprange --src-range 1.2.3.0-1.2.3.255 -j DROP | ||
| + | </ | ||
| + | ===== Jails für spezielle Anwendungen ===== | ||
| + | |||
| + | ==== Nginx ==== | ||
| + | |||
| + | [[software: | ||
| + | |||
| + | |||
| + | ==== Slowloris ==== | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | ===== Konfiguration ===== | ||
| + | |||
| + | |||
| + | |||
| + | ===== Probleme ===== | ||
| + | |||
| + | Fehler, weil die maximale Größe der IP-Tables erreicht ist | ||
| + | |||
| + | < | ||
| + | 2022-03-25 09: | ||
| + | </ | ||
| + | |||
| + | * https:// | ||
| + | |||
| + | <code bash> | ||
| + | sudo cat / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Ressourcen ===== | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | |||
| + | ===== Fail2Ban für Windows ===== | ||
| + | |||
| + | Fail2Ban ist nicht für Windows verfügbar | ||
| + | |||
| + | Zu Alternativen siehe: | ||
| + | |||
| + | * IPBAN https:// | ||
| + | * https:// | ||