fail2ban-Integration
Jede IP-Adresse, die von fail2ban auf Ihrem Server gesperrt wird, wird an die Blacklist ReportedIP gemeldet. Eine kleine benutzerdefinierte Aktion ruft bei jeder Sperrung die Berichts-API auf, sodass sich Ihre Firewall und die Community gegenseitig schützen – dieselben Daten fließen auch in den Blacklist-Feed und die DNS/RBL-Zone ein.
report Berechtigung. Erstellen Sie kostenlos eine in Ihrem
Dashboard; siehe Authentifizierung für Begrenzungen. Melde nur IP-Adressen, die dein eigener Server tatsächlich erfasst hat.So funktioniert fail2ban (in 30 Sekunden)
fail2ban überwacht Protokolldateien (oder das systemd-Journal). Ein Filter entspricht Angriffsmustern, a Gefängnis zählt die Übereinstimmungen pro IP-Adresse innerhalb von findtime, und sobald eine IP-Adresse
auf maxretry Das Gefängnis betreibt sein Maßnahmen (Sperre + was auch immer du sonst noch hinzufügst).
Wir fügen eine zweite Aktion hinzu, die die gesperrte IP an ReportedIP meldet.
1. Erstellen Sie die Berichtsaktion
Als … speichern /etc/fail2ban/action.d/reportedip.conf. Bei jeder Sperrung sendet es die gesperrte IP-Adresse, die
Bedrohungskategorien und einen kurzen Kommentar per POST an den Melde-Endpunkt.
# /etc/fail2ban/action.d/reportedip.conf
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = curl -sS -m 10 -X POST "<report_url>" \
-H "X-Key: <api_key>" \
--data-urlencode "ip=<ip>" \
--data-urlencode "categories=<categories>" \
--data-urlencode "comment=fail2ban <name>: <failures> failed attempts" \
-o /dev/null || :
actionunban =
[Init]
report_url = https://reportedip.de/wp-json/reportedip/v2/report
api_key = <your-api-key>
categories = 18,22
Schränken Sie die Berechtigungen so ein, dass der Schlüssel nicht für alle lesbar ist:
chmod 600 /etc/fail2ban/action.d/reportedip.conf
Die Tags <ip>, <name> (Name der Haftanstalt) und <failures>
werden von fail2ban ausgefüllt; <api_key>, <categories> und
<report_url> stammen aus dem [Init] Block.
2. Aktivieren Sie es in einem Jail
Füge die Aktion zu einem Gefängnis in /etc/fail2ban/jail.local — zusätzlich zu die
übliche Sperrmaßnahme (%(action_)s), nicht anstelle davon:
# /etc/fail2ban/jail.local
[sshd]
enabled = true
action = %(action_)s
reportedip
Sie können die Kategorien pro Jail überschreiben, indem Sie sie inline übergeben, z. B.
reportedip[categories="16,21"] in einer Webanwendungs-Jail.
3. Anwenden und überprüfen
fail2ban-client reload
tut nicht Befestigen Sie es sicher. Verwenden Sie systemctl restart fail2ban, und vergewissere dich dann, dass beide
Aktionen geladen sind.systemctl restart fail2ban
fail2ban-client get sshd actions
# -> The jail sshd has the following actions:
# nftables, reportedip
Das fail2ban-Protokoll lesen
fail2ban-Protokolle an /var/log/fail2ban.log (oder die Zeitschrift: journalctl -u fail2ban).
Die Zeilen, die für dich wichtig sind:
2026-05-30 21:56:18 fail2ban.filter [38760]: INFO [sshd] Found 203.0.113.45 - 2026-05-30 21:56:18
2026-05-30 21:56:26 fail2ban.actions [38760]: NOTICE [sshd] Ban 203.0.113.45
2026-05-30 22:06:26 fail2ban.actions [38760]: NOTICE [sshd] Unban 203.0.113.45
| Kurzbeschreibung | Bedeutung |
|---|---|
Found <ip> | Der Filter hat einen Angriffsversuch erkannt. Noch nicht gesperrt. |
Ban <ip> | Schwellenwert erreicht – das Jail hat seine Aktionen ausgeführt, einschließlich der Meldung an ReportedIP. |
Unban <ip> | bantime ist abgelaufen; die Firewall-Regel wurde entfernt (kein Bericht). |
Restore Ban <ip> | fail2ban wurde neu gestartet und hat eine noch aktive Sperre erneut angewendet. |
Der Bericht selbst enthält keine Angaben zum Erfolg (-o /dev/null). Um zu sehen, wie Berichte versendet werden,
beobachten Sie während des Tests das Protokoll oder führen Sie die Aktion aus curl manuell für eine IP-Adresse – ein Erfolg
gibt den neuen Bericht zurück:
{"data":{"ipAddress":"203.0.113.45","abuseConfidencePercentage":39,"reportId":"4316026","aggregated":true}}
Live-Zähler: Überprüfen Sie Ihren Schlüssel mit
curl -H "X-Key: <key>" https://reportedip.de/wp-json/reportedip/v2/verify-key und lesen
limits.dailyReportUsageoder öffnen Sie die Dashboard.
Auswahl der Bedrohungskategorien pro Gefängnis
Übergeben Sie die Kategorie-IDs, die mit den von der Jail erkannten Elementen übereinstimmen. Gängige Zuordnungen (vollständige Liste unter Bedrohungskategorien):
| Gefängnis | categories | Bedeutung |
|---|---|---|
sshd | 18,22 | Brute-Force, SSH |
postfix-sasl, dovecot | 11,18 | Spam-E-Mails, Brute-Force-Angriffe |
proftpd, vsftpd | 5 | FTP-Brute-Force-Angriff |
nginx-http-auth, apache-auth | 18,21 | Brute-Force-Angriff, Angriff auf Webanwendungen |
nginx-badbots, apache-badbots | 14,19 | Port-Scan, bösartiger Web-Bot |
apache-sqli, Web-Exploits | 16,21 | SQL-Injection, Angriff auf Webanwendungen |
WordPress / wp-login | 18,21 | Brute-Force-Angriff, Angriff auf Webanwendungen |
recidive (Wiederholungstäter) | 15,18 | Hacking, Brute-Force |
Mehr als eine Haftanstalt melden
Fügen Sie die Aktion jedem Gefängnis hinzu und überschreiben Sie die Kategorien direkt im Code, damit jeder Bericht korrekt ist:
# /etc/fail2ban/jail.local
[sshd]
enabled = true
action = %(action_)s
reportedip[categories="18,22"]
[postfix-sasl]
enabled = true
action = %(action_)s
reportedip[categories="11,18"]
[recidive]
enabled = true
action = %(action_)s
reportedip[categories="15,18"]
Bewährte Verfahren & Sicherheit
- Melde bitte nur deine eigenen Sperrungen. Melde niemals IP-Adressen, bei denen du keine Angriffe auf deine eigenen Systeme beobachtet hast – falsche Meldungen beeinträchtigen den Datensatz (und können dazu führen, dass dein Schlüssel gesperrt wird).
- Fügen Sie Ihre eigenen Nummernbereiche zur Whitelist hinzu. Behalten
ignoreipLegen Sie die IP-Adressen Ihres Büros bzw. Ihrer Überwachungssysteme fest, damit Sie sich niemals selbst melden. - Behalte den Schlüssel geheim (
chmod 600). Es ist für Angreifer nicht einsehbar, aber jeder, der im Besitz der Datei ist, kann Berichte in Ihrem Namen einreichen. Ändern Sie es über das Dashboard, falls es in die falschen Hände geraten sollte. - Ein fehlgeschlagener Bericht verhindert niemals eine Sperre. Die
|| :am Ende vonactionbanbedeutet, dass eine vorübergehende Netzwerkstörung bei ReportedIP fail2ban ReportedIP daran hindert, lokal Sperren zu verhängen. - Sinnvolle Schwellenwerte. Sehr niedrig
maxretryBei „noisy jails“ kann es zu einer Übererfassung von temporären Clients kommen; die Standardeinstellungen (3–5) sind ausreichend.
Fehlerbehebung
| Symptom | Beheben |
|---|---|
get <jail> actions zeigt nur die Sperrmaßnahme an | Du hast die Seite neu geladen, anstatt sie neu zu starten. Führe systemctl restart fail2ban. |
unknown smtpd restriction / jail lässt sich nicht starten | Tippfehler in der Konfiguration jail.local; überprüfe die Einrückung der Fortsetzungszeile unter action. |
| Berichte abgelehnt (HTTP 401/403) | Taste fehlt report Berechtigung oder falscher Header – es muss X-Key. |
| HTTP 429 / Kontingent | Das Tageslimit für Ihren Tarif wurde erreicht; siehe „Authentifizierung“. |
| Keine Einträge im Protokoll zum Sperrverzeichnis | Der Bericht enthält keine Angaben zum Erfolg. Bitte überprüfen Sie dies bei fail2ban-client get <jail> actions und eine Bedienungsanleitung curl. |