Skip to main contentSkip to footer

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

text
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.

text
# 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.

json
{
  "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.

csv
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:

bash
# Generate Nginx blocklist from TXT file
awk '{print "deny " $1 ";"}' blacklist-all.txt > /etc/nginx/blocklist.conf
nginx
# /etc/nginx/sites-enabled/default
server {
    include /etc/nginx/blocklist.conf;

    # ... rest of your config
}

Apache (.htaccess)

apache
# .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

bash
# 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:

ini
# /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
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
E-Mail 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
curl
# 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

bash
# /etc/cron.d/reportedip-blacklist
0 */6 * * * root /usr/local/bin/update-reportedip-blocklist.sh

Update-Skript

bash
#!/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

Wichtig: Das GitHub-Repository wird täglich aktualisiert, die exportierten Daten unterliegen jedoch einer 48-stündigen Abkühlphase für False Positives. Für eine Echtzeit-Blockierung mit den aktuellsten Daten nutzen Sie bitte direkt die API – diese spiegelt Änderungen sofort wider, sobald neue Reports eingehen, während die GitHub-Dateien um bis zu zwei Tage hinterherhinken. Mailserver können die Blacklist zudem als DNSBL-/RBL-Zone nutzen, ohne Dateien herunterladen zu müssen.
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

Security Focused
GDPR Compliant
Made in Germany
Zurück zu den Docs