Webserver mit einer Live-IP-Blacklist schützen
Um einen Webserver mit einer Live-IP-Blacklist zu schützen, laden Sie je exponiertem Dienst eine eigene ReportedIP-Liste, übernehmen sie in ein ipset- oder nftables-Set und wenden jedes Set nur auf die Ports dieses Dienstes an. Am 29. September 2026 erfasste die Community-Datenbank 799.893 IP-Adressen aus 7.194.829 Missbrauchsmeldungen, und 4.173 dieser Adressen erreichten einen Score von 90 oder mehr, die Stufe, die wir für unbeaufsichtigtes Sperren empfehlen.
Dieser Artikel beschreibt den Weg in Eigenregie: Ihr eigenes Skript, Ihr eigener Cronjob, Ihre eigene fail2ban-Aktion. Auf einem Linux-Server erledigt der ReportedIP Agent dieselbe Arbeit als ein fertiges Binary, mehr dazu weiter unten.
Warum ist eine Live-Blacklist besser als eine statische Sperrliste?
Statische Sperrlisten veralten schnell. Angreifer wechseln zwischen Cloud-Anbietern und Botnetzen, deshalb ist eine IP, die im Juni SSH-Brute-Force-Angriffe gefahren hat, im August oft ein legitimer Kunde desselben Hosters. Eine einmal geladene und dann liegen gelassene Liste sperrt weiter die Falschen und verpasst die aktuelle Welle.
Die ReportedIP Dynamic Blacklist wird auf dem Server alle 15 Minuten aus aktuellen Community-Meldungen neu aufgebaut. Honeypot-Server, WordPress-Sites mit dem Hive-Plugin und fail2ban-Installationen liefern Meldungen in eine Bewertungskette, und nur IPs oberhalb der angefragten Confidence-Schwelle landen in Ihrem Download. Wird ein Angreifer still, sinkt sein Score und die IP fällt von selbst heraus.
Wie hält der Confidence-Score die Liste sauber?
Jede IP auf der Liste trägt einen Confidence-Score von 0 bis 100. Er setzt sich aus vier Bestandteilen und einem Honeypot-Bonus zusammen:
- Meldungsmenge (bis 30 Punkte): die gewichtete Zahl der Meldungen gegen die IP.
- Vielfalt der Melder (bis 15 Punkte): Meldungen aus unabhängigen Quellen zählen mehr. Ein einzelner Melder kann eine IP nicht über einen Score von 60 heben.
- Aktualität (bis 15 Punkte): eine Meldung aus den letzten 24 Stunden bringt 5 Punkte, eine aus der letzten Woche 3, ältere Meldungen weniger.
- Schwere (bis 15 Punkte): gewichtet nach Bedrohungskategorie, ein kompromittierter Host zählt also anders als ein Kommentar-Spammer.
- Honeypot-Bonus (bis 25 Punkte): Honeypot-Meldungen wiegen mehr, weil kein legitimer Nutzer je einen Honeypot anspricht.
Meldungen verlieren mit einer Halbwertszeit von 30 Tagen an Gewicht: nach 30 Tagen zählt eine Meldung 50 Prozent, nach 60 Tagen 25 Prozent. Kommt zu einer IP zwei Wochen lang keine neue Meldung, halbiert sich zusätzlich ihr gesamter Score alle 30 Tage. Darüber liegen feste Obergrenzen: weniger als 5 effektive Meldungen halten den Score bei höchstens 49, weniger als 10 bei höchstens 74. Ein Score von 90 setzt deshalb aktuellen Missbrauch voraus, den mehrere unabhängige Melder bestätigt haben. Die vollständige Rechnung steht auf der Seite zum Confidence-Score.
Warum eine eigene Sperrliste pro Dienst?
Jede Meldung trägt Kategorie-IDs von 1 bis 63: klassische Kategorien wie SSH (22) und Email Spam (11), einen eigenen WordPress-Block (31 bis 58) und Honeypot-Kategorien (59 bis 63). Der Parameter category von GET /blacklist nimmt eine kommagetrennte Liste von IDs entgegen, so bekommt jeder exponierte Dienst genau die Angreifer, die ihn ins Visier nehmen.
| Liste | Kategorien | Angewendet auf | Größe bei Confidence 90 |
|---|---|---|---|
| SSH | 22,18 | Port 22 | 1.640 IPs |
11,7,17,18 | Ports 25, 465, 587, 110, 143, 993, 995 | 1.547 IPs | |
| Web | 21,16,10,19,12 und 31 bis 58 | Ports 80, 443 | 1.372 IPs |
| FTP | 5,18 | Port 21 | 1.472 IPs |
| Edge | 4,14,20 | Alle Ports | 1.344 IPs |
Die Größen wurden am 29. September 2026 gemessen. Sie ändern sich täglich und sind gesunken, seit am 28. September 2026 der Score-Zerfall für ruhige IPs live ging. Portgebundene Sets halten Fehler billig: eine IP auf der Web-Liste kann nie einen Admin aus SSH aussperren. Die Edge-Liste (DDoS, Portscans, kompromittierte Hosts) ist die einzige, die sich für alle Ports lohnt, weil diese Angreifer alles abtasten.
Wie laden Sie eine ReportedIP-Liste in ipset oder nftables?
Der Endpoint /blacklist braucht einen API-Key ab dem Contributor-Tarif. Contributor ist kostenlos für Konten, die einen Honeypot betreiben und seine Meldungen teilen; sonst beginnt der Feed mit Professional für 14,90 € im Monat inkl. MwSt. Mit format=txt kommt eine IP pro Zeile, IPv4 und IPv6 gemischt, filtern Sie deshalb vor dem Laden nach Adressfamilie:
ipset create rip-ssh hash:ip family inet maxelem 65536 -exist
curl -sS -H "X-Key: YOUR_API_KEY" \
"https://reportedip.com/wp-json/reportedip/v2/blacklist?confidence=90&format=txt&limit=50000&category=22,18" \
| grep -E '^[0-9]+(\.[0-9]+){3}$' | sed 's|^|add rip-ssh |' | ipset restore -exist
iptables -I INPUT -p tcp --dport 22 -m set --match-set rip-ssh src -j DROP
Ohne limit liefert der Endpoint höchstens 10.000 Einträge; limit=50000 liefert alles, was die Stufe enthält. Ein Set-Lookup dauert gleich lang, wie lang die Liste auch wird, genau dafür gibt es ipset statt einer Regel pro IP. Auf nftables-Systemen ersetzt ein benanntes Set in einer inet-Tabelle das ipset und nimmt IPv4 und IPv6 nebeneinander auf:
nft add table inet reportedip
nft add chain inet reportedip input '{ type filter hook input priority -10 ; policy accept ; }'
nft add set inet reportedip rip-ssh '{ type ipv4_addr ; }'
nft add rule inet reportedip input tcp dport 22 ip saddr @rip-ssh drop
Für jedes spätere Update nehmen Sie das Sync-Skript aus der Anleitung zum Netzwerk-Blocking. Es tauscht das Set atomar aus, trennt IPv4 von IPv6 und deckt auch Cloud-Firewalls ab. Zwei Sicherheitsregeln vor dem ersten Lauf: legen Sie Ihre eigenen Management-IPs in ein separates Accept-Set, das die Firewall zuerst prüft, und ersetzen Sie nie ein funktionierendes Set durch einen abgeschnittenen Download.
Wie bleibt die Liste aktuell, ohne Kontingent zu verbrauchen?
Ein stündlicher Cronjob pro Liste reicht, über die Stunde verteilt: fünf Listen einmal pro Stunde ergeben 120 Anfragen am Tag. Jede Antwort trägt ein ETag. Speichern Sie es pro Liste und senden Sie es als If-None-Match zurück; eine unveränderte Liste antwortet mit 304 Not Modified und leerem Body. Ein 304 kostet kein Kontingent, und auch der Download selbst zählt nicht gegen Ihr tägliches Check- oder Report-Kontingent.
- Ein ETag pro Liste. Das Tag gilt für genau die angefragte Parameterkombination, Kategoriefilter eingeschlossen.
- Bei Fehlern nie leeren. Bei jedem Status außer 200 oder 304 bleibt das bisherige Set aktiv, und der nächste Lauf versucht es erneut.
- Größe prüfen. Lehnen Sie eine Liste ab, die stark geschrumpft ist. Legen Sie das Minimum pro Liste nach dem fest, was Sie heute sehen, zum Beispiel die Hälfte der aktuellen Größe.
Parameter und Antwortformate (txt, csv, json) stehen in der API-Referenz, die Dienstlisten auf der Blacklist-Seite. Mailbetreiber, die DNS-Abfragen dem Listenabgleich vorziehen, fragen dieselben Daten als private RBL-Zone ab.
Wie melden Sie Angreifer mit fail2ban zurück?
Sperren ist die halbe Schleife. Eine kleine fail2ban-Aktion schickt jede Sperre auf Ihrem Server an POST /report, mit den Kategorien des jeweiligen Jails: 18,22 für sshd, 11,18 für postfix-sasl und dovecot, 18,21 für nginx-http-auth. Meldungen zählen nur gegen Ihr tägliches Report-Kontingent, nie gegen das Check-Kontingent.
Ihre Meldung hebt den Score des Angreifers für alle. Weil ein einzelner Melder eine IP nicht über 60 bringt, ist Ihre Bestätigung oft genau die, die eine Grenzfall-IP über die Sperrschwelle schiebt. Die Aktionsdatei und die Tabelle mit Jails und Kategorien finden Sie in der Anleitung zur fail2ban-Integration. WordPress-Sites bekommen dieselbe Schleife ohne Shell: das Hive-Plugin überwacht Logins, Kommentare und XML-RPC und meldet bestätigte Angriffe selbst.
Wann ist der ReportedIP Agent die bessere Wahl?
Alles oben ist Wartung, die bei Ihnen liegt: das Skript, die ETag-Dateien, die Größenprüfung, die fail2ban-Aktion. Der ReportedIP Agent verpackt diesen Weg für Linux-Server in ein statisches Binary, Version 0.3.38, Stand 28. September 2026:
- Er lädt dieselben fünf Dienstlisten, ssh, mail, web, ftp und edge, in ipset oder nftables, mit bedingter Anfrage, Größenprüfung und atomarem Tausch eingebaut.
- Auf einem lizenzierten Server aktualisiert er den Feed alle 15 Minuten und übernimmt jede IP ab Confidence 75.
- Er liest die Logs, die der Server ohnehin schreibt, von sshd über Postfix bis zum Webserver, und meldet Angreifer selbst. Das ersetzt die fail2ban-Aktion.
Der Feed auf dem Agent wird pro Server lizenziert. Professional enthält einen Server, Business drei; jede weitere Lizenz kostet 4,90 € im Monat inkl. MwSt., ab 50 Lizenzen sinkt der Preis auf 1,40 €. Ohne Lizenz erkennt der Agent weiter, sperrt lokal und meldet, nur der Feed pausiert. Installation und Voraussetzungen stehen in der Doku zum Linux Agent.
Sie betreiben mehr als einen Server? Der Cluster-Überblick zeigt, welcher ReportedIP-Baustein zu welcher Schicht passt, und geteilte IP-Sperren erklärt, wie eine Meldung einen Angreifer auf jedem Server einer Gruppe sperrt.
Wie vermeiden Sie Fehlalarme?
Drei Mechanismen begrenzen Kollateralschäden. Die Score-Obergrenzen verhindern, dass ein einzelner falsch konfigurierter Melder eine IP allein auf die Blacklist bringt. Der Zerfall entfernt IPs, die nicht mehr angreifen, ohne dass es jemandem auffallen muss. Und eine serverseitige Whitelist hält bekannte Infrastruktur wie Suchmaschinen-Crawler und Monitoring-Dienste schon vor dem Aufbau aus der Liste heraus.
Auf Ihrer Seite lassen Sie die erste Woche eine Log-Regel statt einer Drop-Regel laufen (-j LOG in iptables, log in nftables) und lesen nach, was gesperrt worden wäre. Das Hive-Plugin hat dieselbe Idee als Nur-Melden-Modus eingebaut. Landet eine Ihrer eigenen IPs auf der Liste, hilft das Delisting-Formular: Anträge werden innerhalb von 48 Stunden entschieden, die Entfernung ist kostenlos.
Häufige Fragen
Wie viele IPs stehen auf der ReportedIP Blacklist?
Am 29. September 2026 erfasste die Datenbank 799.893 gemeldete IPs. 4.173 davon hatten einen Score von 90 oder mehr, und die fünf Dienstlisten auf dieser Stufe enthielten jeweils zwischen 1.344 und 1.640 IPs. Der Parameter limit erlaubt bis zu 50.000 Einträge pro Antwort, ohne ihn sind es 10.000.
Wie oft sollte ich die Blacklist aktualisieren?
Einmal pro Stunde und Liste reicht. Der Server baut die Listen alle 15 Minuten neu, und mit ETag-Revalidierung erfasst ein stündlicher Cronjob jede relevante Änderung. Unveränderte Listen antworten mit 304 Not Modified, und weder der 304 noch ein voller Download zählt gegen ein Tageskontingent.
Welchen Confidence-Score sollte ich für automatisches Sperren nutzen?
Nutzen Sie 90 für unbeaufsichtigte Drop-Regeln. Der Endpoint verwendet standardmäßig 75, das passt für Alarme, Rate Limiting oder ein CAPTCHA. Ein Score von 90 braucht mindestens 10 effektive Meldungen von zwei oder mehr unabhängigen Meldern mit aktueller Aktivität, und ab da ist automatisches Verwerfen auf einem Produktivserver sicher.
Was kostet der Zugang zur Blacklist?
Der API-Feed ist ab dem Contributor-Tarif enthalten. Contributor ist kostenlos für Konten, die einen Honeypot betreiben; sonst kostet Professional 14,90 € im Monat inkl. MwSt. Downloads zählen nicht gegen ein Tageskontingent. Der ReportedIP Agent braucht für den Feed eine Serverlizenz, und Professional enthält eine.
Weiterlesen
- Netzwerk-Blocking: Sync-Skript, nftables, IPv6 und Cloud-Firewalls
- fail2ban-Integration: Ihre Sperren an die Community zurückmelden
- ReportedIP Agent: der fertige Weg für Linux-Server
- Preise anzeigen: welcher Tarif den Feed enthält