Blacklist
Die ReportedIP Blacklist ist eine von der Community gepflegte Liste bösartiger IP-Adressen, die automatisch aus realen Angriffsmeldungen generiert wird und über API sowie GitHub verfügbar ist. Nutzen Sie sie, um bekannte bösartige IP-Adressen in Ihrer Firewall, auf Ihrem Webserver oder in Ihrer Anwendung zu blockieren – sie wird täglich aktualisiert, ohne dass eine manuelle Überprüfung erforderlich ist.
So wird die Blacklist erstellt
Jede IP-Adresse in der Blacklist stammt aus Community-Reports, die in unsere Reputations-Engine eingehen. Eine IP-Adresse wird nur dann aufgenommen, wenn:
- its Confidence Score ≥ 75 % beträgt (berechnet aus der Häufigkeit der Reports, der Vielfalt der Quellen, dem Schweregrad und der Aktualität)
- ihr jüngster Bericht mindestens 48 Stunden alt ist (Abkühlphase für False Positives – Einträge werden erst dann in den Export aufgenommen, wenn der Wert Zeit hatte, sich neu zu kalibrieren)
- sie nicht auf der Whitelist steht (Suchmaschinen, CDN-Anbieter und als sicher bekannte Infrastrukturen sind ausgeschlossen)
Die Blacklist wird automatisch aktualisiert – es findet keine manuelle redaktionelle Überprüfung statt. Die gesamte Pipeline
ist offen und transparent: Sie können jeden Eintrag über
GET /reportedip/v2/check?ip=<ip>&verbose=true
die genaue Aufschlüsselung der Bewertung einsehen.
GitHub-Repository
Die vollständige Blacklist wird als öffentliches GitHub-Repository veröffentlicht, das täglich anhand der Live-API-Daten aktualisiert wird. Die exportierten Daten selbst unterliegen einer Verzögerung von 48 Stunden (die oben beschriebene Abkühlphase für False Positives). Sie können das Repository klonen, in CI/CD-Pipelines verwenden oder in Ihre Infrastruktur integrieren.
github.com/reportedip/ReportedIP Blacklist
Struktur des Repositorys
reportedip-blacklist/
├── blacklist-all.txt # All IPs, one per line
├── blacklist-all.json # All IPs with metadata
├── blacklist-all.csv # All IPs, CSV format
├── metadata.json # Export metadata (version, counts, timestamps)
├── lists/ # Thematic sub-lists
│ ├── spam.txt
│ ├── brute-force.txt
│ ├── cms-login.txt
│ ├── web-attacks.txt
│ ├── malware.txt
│ ├── ddos.txt
│ ├── fraud.txt
│ ├── infrastructure.txt
│ └── apt.txt
└── formats/ # Ready-to-include firewall snippets
├── nginx-deny.conf
├── apache-htaccess.txt
└── iptables.sh
Dateiformate
TXT-Format
Klartext, eine IP-Adresse pro Zeile. Zeilen, die mit # sind Kommentare,
die Metadaten wie Erstellungszeit und Gesamtanzahl enthalten.
# ReportedIP Blacklist - All IPs
# https://reportedip.com
#
# Copyright (c) 2026 ReportedIP / Patrick Schlesinger
# Licensed under CC BY 4.0 - https://creativecommons.org/licenses/by/4.0/
#
# IMPORTANT: Data is delayed by 48 hours.
# For real-time threat intelligence via API, contact: 1@reportedip.com
#
# Generated: 2026-07-22
# Total IPs: 12847
#
1.2.3.4
5.6.7.8
9.10.11.12
JSON-Format
Ein meta Block (Exportversion, Zählwerte, Erstellungszeitstempel), gefolgt von einem
entries Array. categories sind numerische IDs für Threat Categories – ordnen
Sie diese dem Katalog der Threat Categories zu
oder GET /categories.
{
"meta": {
"version": "2026-07-22",
"generatedAt": "2026-07-22T00:00:00Z",
"totalCount": 12847
},
"entries": [
{
"ip": "1.2.3.4",
"confidence": 95,
"categories": [18, 21],
"source": "dynamic"
},
{
"ip": "5.6.7.8",
"confidence": 82,
"categories": [14],
"source": "dynamic"
}
]
}
CSV-Format
Durch Kommas getrennte Werte mit einer Kopfzeile. Einfach in Tabellenkalkulationen, Datenbanken oder SIEM-Tools zu importieren.
categories enthält durch Semikolons getrennte numerische Kategorie-IDs.
ip,confidence,categories,last_reported
1.2.3.4,95,"18;21","2026-07-19 14:22:00"
5.6.7.8,82,"14","2026-07-18 09:15:00"
9.10.11.12,78,"21","2026-07-17 20:45:00"
Firewall-Integration
Verwenden Sie die Blacklist-Dateien, um bösartige IP-Adressen auf Firewall- oder Webserver-Ebene zu blockieren. Nachfolgend finden Sie Integrationsbeispiele für gängige Tools.
Nginx
Erstellen Sie eine Blocklist-Konfiguration und fügen Sie diese in Ihren Nginx-Serverblock ein:
# Generate Nginx blocklist from TXT file
awk '{print "deny " $1 ";"}' blacklist-all.txt > /etc/nginx/blocklist.conf
# /etc/nginx/sites-enabled/default
server {
include /etc/nginx/blocklist.conf;
# ... rest of your config
}
Apache (.htaccess)
# .htaccess — Block reported IPs
<RequireAll>
Require all granted
Require not ip 1.2.3.4
Require not ip 5.6.7.8
Require not ip 9.10.11.12
</RequireAll>
iptables
# Block all IPs from the blacklist
while read ip; do
iptables -A INPUT -s "$ip" -j DROP
done < blacklist-all.txt
fail2ban
Erstellen Sie eine benutzerdefinierte Jail, die IP-Adressen aus der ReportedIP Blacklist sperrt:
# /etc/fail2ban/jail.d/reportedip.conf
[reportedip-blacklist]
enabled = true
banaction = iptables-allports
bantime = 86400
filter = reportedip-blacklist
logpath = /var/log/reportedip-blacklist.log
maxretry = 1
fail2ban funktioniert auch in die andere Richtung: Eine vorgefertigte Aktion meldet jede Sperrung auf Ihrem Server
an die Community über POST /report. Informationen zur Konfiguration der Aktion sowie zur Zuordnung von Jails zu Kategorien finden Sie im
fail2ban-Integrationsleitfaden.
API-Zugriff
Der /blacklist
Endpoint bietet Echtzeit-Zugriff auf die vollständige Blacklist mit
Filteroptionen. Ein API Key mit der „Threat Feed“-Funktion (ab der „Contributor“-Stufe) ist erforderlich.
Der Endpoint ist funktionsgebunden und wird nicht
auf Ihr tägliches Abfrage- oder
Reports-Kontingent angerechnet – Sie können ihn so oft abfragen, wie es Ihre Caching-Strategie erfordert. Informationen zu
Stufen und Schlüsseln finden Sie unter „Authentifizierung & Rate Limits
“.
| Parameter | Typ | Beschreibung |
|---|---|---|
format |
Zeichenkette | Antwortformat: json (Standard), txt, csv |
source |
Zeichenkette | Quelle der Blacklist: dynamic (Standard) – die von der Community gepflegte, automatisch bewertete Blacklist. Andere Werte sind für den internen Gebrauch reserviert |
confidence |
Ganzzahl | Mindestwert für den Confidence Score (0–100). Standard: 75. Alias: confidenceMinimum. Empfohlen für die automatische Sperrung: 90 |
category |
Zeichenkette | Eine oder mehrere IDs von Threat Categories, durch Kommas getrennt (z. B. 22,18 für SSH sowie generische Brute-Force-Angriffe). Den vollständigen Katalog finden Sie auf der Seite „Threat Categories“ oder über GET /categories |
limit |
Ganzzahl | Maximale Anzahl der zurückzugebenden IP-Adressen. Standard: 10.000 – behalten Sie den Standardwert bei; kleinere Werte führen zu einer Verkürzung der Liste |
curl -H "X-Key: YOUR_API_KEY" \
"https://reportedip.com/wp-json/reportedip/v2/blacklist?format=txt&confidence=90&limit=10000"
Die vollständige Dokumentation zum Endpoint, das Antwortformat sowie weitere Parameter finden Sie in der API Reference.
Dienstspezifische Blacklists
Kombinieren Sie den category Filter mit confidence=90 , um eine Sperrliste pro
offengelegtem Dienst zu erstellen. Jede Liste enthält nur IP-Adressen, die für den entsprechenden Angriffstyp gemeldet wurden, sodass Sie
sie portbezogen anwenden können – eine IP-Adresse auf der Web-Liste sperrt niemanden aus dem SSH-Zugang aus.
| Liste | category Wert |
Enthaltene Kategorien | Anwenden auf |
|---|---|---|---|
| SSH | 22,18 |
SSH-Brute-Force, generische Brute-Force | sshd – Port 22 |
11,7,17,18 |
Email Spam, Phishing, Spoofing, Brute-Force (SMTP-AUTH/IMAP/POP3) | Postfix/Exim, Dovecot – Ports 25, 465, 587, 110, 143, 993, 995 | |
| Web | 21,16,10,19,12 |
Web App Attack, SQL Injection, Web Spam, Bad Web Bot, Blog Spam – umfasst Brute-Force-Angriffe auf WordPress-Login/XML-RPC/REST, Exploits für Plugins und den Kern, Kommentar-Spam sowie Scans, die unter folgenden IDs gemeldet werden | nginx/Apache inkl. WordPress-Hosting – Ports 80, 443 |
| FTP | 5,18 |
FTP Brute-Force, generische Brute-Force | vsftpd/proftpd – Port 21 |
| Edge | 4,14,20 |
DDoS Attack, Port Scan, Exploited Host | gesamter Netzwerk-Edge, alle Ports |
# SSH attackers only, plain text for ipset/nftables
curl -H "X-Key: YOUR_API_KEY" \
"https://reportedip.com/wp-json/reportedip/v2/blacklist?confidence=90&format=txt&limit=10000&category=22,18"
Die Listen werden serverseitig alle 15 Minuten neu generiert. Eine stündliche Abfrage pro Liste ist ausreichend; senden Sie die
gespeicherten ETag als If-None-Match und antworten bei unveränderten Listen mit
304 Not Modified. Alle gültigen Kategorie-IDs liegen im Bereich von 1 bis 30 – siehe den
Katalog der Threat Categories.
Skript zur automatischen Aktualisierung
Richten Sie einen Cron-Job ein, um die aktuelle Blacklist automatisch herunterzuladen und Ihre Firewall Rules zu aktualisieren.
Cron-Zeitplan
# /etc/cron.d/reportedip-blacklist
0 */6 * * * root /usr/local/bin/update-reportedip-blocklist.sh
Update-Skript
#!/bin/bash
# /usr/local/bin/update-reportedip-blocklist.sh
# Downloads the latest ReportedIP blacklist and updates Nginx blocklist
API_KEY="your-api-key-here"
API_URL="https://reportedip.com/wp-json/reportedip/v2/blacklist"
BLOCKLIST="/etc/nginx/blocklist.conf"
TMPFILE=$(mktemp)
# Download latest blacklist in TXT format
curl -sf -H "X-Key: $API_KEY" \
"$API_URL?format=txt&confidence=90&limit=10000" \
-o "$TMPFILE"
if [ $? -eq 0 ] && [ -s "$TMPFILE" ]; then
# Convert to Nginx deny directives
grep -v "^#" "$TMPFILE" | grep -v "^$" | \
awk '{print "deny " $1 ";"}' > "$BLOCKLIST"
# Reload Nginx
nginx -t && systemctl reload nginx
echo "$(date): Blocklist updated with $(wc -l < "$BLOCKLIST") entries"
else
echo "$(date): Failed to download blacklist" >&2
fi
rm -f "$TMPFILE"
Echtzeit vs. GitHub
| Methode | Latenz | Authentifizierung erforderlich | Am besten geeignet für |
|---|---|---|---|
| API | Echtzeit | Ja (API Key) | Automatische Sperrung, dynamische Firewall Rules, SIEM-Integration |
| GitHub | Bis zu 48 Stunden | Nein | Statische Firewall Rules, CI/CD-Pipelines, Offline-Analyse |
Zuletzt aktualisiert: · Betreut vom reportedIP-Team