IP-DB ist eine einfache REST-API mit Schlüssel-Authentifizierung und funktioniert mit allem, was HTTP spricht: Live-Blockliste für die Firewall, Anreicherung für das SIEM, automatische Meldungen vom Server.
Feed-Adressen39.238stündlicher Snapshot
Kategorien12
Plattformen29Copy-paste-Anleitungen
Formate4plain · cidr · json · csv
Blocklist-Feed
Eine Live-Blockliste mit einer IP pro Zeile, die Ihre Firewall regelmäßig von einer URL abruft. Der Feed enthält die höchstbewerteten Adressen aus redistributierbaren Quellen, die von mindestens zwei unabhängigen Quellfamilien bestätigt wurden — ohne Rauschen und ohne unlizenzierte Daten. Erstellen Sie unten Ihre Feed-URL.
Der Feed nutzt Ihren API-Schlüssel (Schlüssel erstellen) und zählt zu Ihrer täglichen Nutzung; jeder Abruf liefert den aktuellen Snapshot. Für den vollständigen Bulk-Download nutzen Sie /datasets (CSV, JSON, TXT, MMDB · CC BY-SA 4.0).
WordPress-Plugin
Ein fertiges Plugin für WordPress. Es spiegelt die IP-DB-Blockliste in Ihre Site, prüft die Adresse hinter Login-, Kommentar-, Registrierungs- und Checkout-Anfragen und meldet Angreifer zurück an den Pool. Außer dem API-Schlüssel gibt es nichts zu konfigurieren.
Monitor mode: everything is logged, nothing is blocked. Switch to blocking in the settings once the log looks right.
Blocked today128requests refused
Blocked this week1,40642 comments flagged, 17 held
Addresses on the local list5,000synced 12 mins ago
Reported to IP-DB93last 7 days
Status
Protection
Monitoring
API key
Verified
Blocklist feed
Fresh
Next sync
in 48 mins
Your address
198.51.100.24
Sync blocklist nowVerify API key
Most active addresses, last 7 days
Address
Hits
Score
203.0.113.9
412
98
198.51.100.24
287
91
203.0.113.77
164
86
198.51.100.5
103
74
Full activity log →
Das Dashboard des Plugins. Die Zahlen sind Beispielwerte.
Was es tut
Die Login-Seite
Verweigert listeten Adressen die Login-Seite und zählt fehlgeschlagene Anmeldungen pro Adresse.
Kommentare und Pingbacks
Markiert, hält zurück oder verweigert Kommentare und Pingbacks — ganz wie Sie wollen.
Eigene Schalter
Eigene Schalter für Registrierung, WooCommerce-Checkout, unauthentifizierte REST-Aufrufe und XML-RPC.
Dashboard und Protokoll
Ein Dashboard für Blockiertes, Zurückgehaltenes und Gemeldetes, dazu ein filterbares Aktivitätsprotokoll als CSV-Export.
Reverse-Proxys
Explizite Reverse-Proxy-Behandlung: Cloudflare, X-Forwarded-For und eine Liste vertrauter Proxys — denn was ein Client senden kann, kann er auch fälschen.
Im laufenden Betrieb
WP-CLI-Befehle, Website-Zustand-Prüfungen, übersetzte Oberfläche und Selbst-Update — Updates erscheinen wie gewohnt im Plugins-Bildschirm.
Wie es entscheidet
Zwei Entscheidungsquellen, bewusst getrennt.
heißer Pfad
Die gespiegelte Blockliste
Eine indizierte Abfrage. Sie kann auf dem heißen Pfad laufen — auf Wunsch bei jedem anonymen Seitenaufruf — und verbraucht nichts von Ihrem Kontingent.
verbraucht Kontingent
Ein Live-Lookup
Nur bei Anfragen, die einen Aufruf wert sind: Login, Kommentar, Registrierung, Checkout.
Es ist so gebaut, dass man es ohne Risiko einschalten kann. Der Monitor-Modus protokolliert jede Entscheidung, ohne zu blocken, sodass Sie einen Tag echten Verkehr lesen können, bevor Sie einem Schwellenwert vertrauen. Die Adresse, von der aus Sie aktivieren, landet auf der Allow-Liste, Administratoren sind ohnehin ausgenommen, und ein unbeantworteter Lookup lässt die Anfrage durch — das Plugin fällt nie geschlossen aus.
Installation
Plugin herunterladen, über Plugins → Installieren → Plugin hochladen installieren und aktivieren.
Ihren kostenlosen API-Schlüssel unter IP-DB → Einstellungen einfügen.
Im Dashboard Blockliste jetzt synchronisieren drücken — danach übernimmt WP-Cron.
Einen Tag im Monitor-Modus laufen lassen, das Protokoll lesen, dann auf Blocken umstellen.
Wer etwas zurückgeben möchte, aktiviert das Melden im Reiter Meldungen.
Die Synchronisierung läuft über WP-Cron; auf einer ruhigen Site ist ein echter Cron-Eintrag auf wp-cron.php zuverlässiger. Wird die Liste alt, meldet das Plugin es im Website-Zustand — dort, wo Sie ohnehin nach Problemen sehen.
Mit aktiviertem Melden fließen die Brute-Force-Versuche und der Kommentar-Spam, den Ihre Site abfängt, zurück in den Pool — auch Kommentare, die ein Moderator selbst als Spam markiert, das zuverlässigste Signal einer Site. Meldungen zählen nicht gegen Ihr Lookup-Kontingent.
Sobald das Plugin seinen ersten Aufruf mit Ihrem Schlüssel macht, erscheint Ihre Website in Ihrem Dashboard unter Meine Schilde — mit der Markierung WordPress, Version, letzter Meldung und Aufrufzahl. Solange sie meldet, bleibt Ihr Konto auf der Beitragenden-Stufe.
Updates kommen von ip-db.com: Das Plugin nutzt den Update URI-Header aus WordPress 5.8, deshalb erscheint eine neue Version wie bei jedem Verzeichnis-Plugin im Plugins-Bildschirm.
fail2ban
Lassen Sie fail2ban dieselbe IP automatisch auch an IP-DB melden, sobald sie gesperrt wird. Erstellen Sie /etc/fail2ban/action.d/ipdb-report.conf:
Binden Sie unseren Pool direkt als External Dynamic List (EDL) in PAN-OS ein — kein separates Sync-Skript nötig, die Firewall zieht die Liste selbst periodisch.
Der Threat Feed-Konnektor von FortiGate konsumiert dieselbe Klartext-URL.
GUI: Security Fabric → External Connectors → Create New → Threat Feed → IP Address. Oder per CLI:
config system external-resource
edit "ipdb-blacklist"
set type address
set resource "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY"
set refresh-rate 30
next
end
Verwenden Sie diese external-resource anschließend als Quelladresse einer Firewall-Policy mit Deny-Aktion.
Paginieren Sie /api/v1/blacklist, um den gesamten Pool in ein ipset zu laden, und blockieren Sie ihn dann mit einer einzigen iptables-Regel. Alle 30 Minuten per Cron ausführen genügt — der Pool wird ohnehin in diesem Takt aktualisiert.
Einmalig die Regel hinzufügen, die das ipset tatsächlich durchsetzt:
iptables -I INPUT -m set --match-set ipdb-blacklist src -j DROP
Cisco Secure Firewall (FTD / FMC)
Cisco Secure Firewall (FTD) verarbeitet einen URL-Feed über FMC nativ — kein Skript nötig. Als Security-Intelligence-Netzwerkliste anlegen und im Reiter Security Intelligence der Access-Control-Policy blocken.
Check Point ab R80.20 zieht eine externe Indikatorquelle als Custom Intelligence Feed. Unser Feed enthält einen Wert pro Zeile, die Wertspalte ist also 1.
SRX kann eine externe Liste in eine dynamische Adressgruppe einspeisen. Feed-Server definieren und die Adressgruppe als Quelle in einer Security-Policy verwenden.
set security dynamic-address feed-server ipdb url "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY"
set security dynamic-address feed-server ipdb update-interval 1800
set security dynamic-address feed-server ipdb feed-name blocklist path "/"
set security dynamic-address address-name ipdb-blocklist profile feed-name blocklist
set security policies from-zone untrust to-zone trust policy block-ipdb \
match source-address ipdb-blocklist destination-address any application any
set security policies from-zone untrust to-zone trust policy block-ipdb then deny
pfSense / pfBlockerNG
pfBlockerNG akzeptiert URL-basierte IPv4-Listen direkt: <span class="mono">Firewall → pfBlockerNG → IPv4 → Add</span>, mit der Feed-URL als Quelle.
Format: Auto
Source: https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY
Header/Label: ipdb_blacklist
Update Frequency: Every 1 hour
List Action: Deny Both
OPNsense
Legen Sie in OPNsense ein Alias vom Typ URL Table an; die Firewall aktualisiert die Liste selbstständig.
Auf modernen Distributionen mit nftables ist ein benanntes Set das direkte Gegenstück zu einem ipset.
nft add table inet filter
nft add set inet filter ipdb '{ type ipv4_addr; flags interval; }'
nft add rule inet filter input ip saddr @ipdb drop
# cron: her 30 dakikada bir / every 30 minutes
curl -fsS "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY" \
| grep -E '^[0-9]' | paste -sd, - \
| xargs -I{} nft flush set inet filter ipdb \; add element inet filter ipdb { {} }
Windows Firewall
Erstellen Sie unter Windows Server per PowerShell eine Regel und aktualisieren Sie deren Remote-Adressliste. Nutzen Sie einen Kategoriefilter — eine Regel fasst nur begrenzt viele Adressen.
Da Wazuh keine Firewall ist, funktioniert die Logik hier umgekehrt: Statt dass eine Firewall Daten von uns abruft, meldet Wazuh selbst bei einem Alarm an uns. Nutzen Sie den benutzerdefinierten Integrationsmechanismus von Wazuh — die folgende Grundstruktur sollte an Ihre Umgebung angepasst werden.
Ersetzen Sie die rule_id-Liste durch die tatsächlichen Brute-Force-/Angriffs-Regel-IDs Ihrer Umgebung; das Skript ausführbar machen nicht vergessen (chmod +x).
Laden Sie den Feed in ein KV-Store-Lookup und gleichen Sie zur Suchzeit ab, sodass jedes Ereignis mit einer Quell-IP aus dem Pool markiert wird.
# $SPLUNK_HOME/etc/apps/ipdb/bin/sync.sh — cron, 30 dk / 30 min
curl -fsS "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY" \
| awk 'BEGIN{print "cidr"} /^[0-9]/{print}' \
> $SPLUNK_HOME/etc/apps/ipdb/lookups/ipdb_blacklist.csv
# SPL — kaynak IP havuzda mi? / is the source IP in the pool?
index=firewall
| lookup ipdb_blacklist cidr AS src_ip OUTPUT cidr AS ipdb_match
| where isnotnull(ipdb_match)
| stats count by src_ip, dest_port
Elastic Security
Für die Indicator-Match-Regel von Elastic Security schreiben Sie den Feed in einen Threat-Indicator-Index.
# gostergeleri indekse yaz / write indicators into the index
curl -fsS "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY&category=botnet_c2" \
| grep -E '^[0-9]' | sed 's|/32$||' \
| while read ip; do
echo '{"index":{}}'
echo "{\"@timestamp\":\"$(date -u +%FT%TZ)\",\"threat\":{\"indicator\":{\"type\":\"ipv4-addr\",\"ip\":\"$ip\",\"provider\":\"ip-db.com\"}}}"done | curl -s -XPOST "$ES/logs-ti_ipdb-default/_bulk" -H 'Content-Type: application/x-ndjson' --data-binary @-
# Security → Rules → Create → Indicator Match# Index: logs-ti_ipdb-* | Field: threat.indicator.ip ↔ source.ip
Microsoft Sentinel
In Microsoft Sentinel ist eine Watchlist der praktikable Weg, gegen die Analytics-Regeln joinen.
# Watchlist olarak yukle / upload as a watchlist
curl -fsS "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY&category=botnet_c2" \
| awk 'BEGIN{print "IPAddress"} /^[0-9]/{sub("/32","");print}' > ipdb.csv
# Sentinel → Watchlist → New → alias: ipdb, search key: IPAddress// KQLlet ipdb = _GetWatchlist('ipdb') | project IPAddress;
CommonSecurityLog
| where SourceIP in (ipdb)
| summarize count() by SourceIP, DestinationPort
IBM QRadar
Legen Sie in QRadar ein Reference Set an, befüllen Sie es über die API und prüfen Sie in Ihren Regeln dagegen.
# referans kumesi olustur / create the reference set
curl -s -X POST -H "SEC: $QRADAR_TOKEN" \
"https://$QRADAR/api/reference_data/sets?name=ipdb_blacklist&element_type=IP"# toplu doldur / bulk load
curl -fsS "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY" \
| grep -E '^[0-9]' | sed 's|/32$||' | jq -Rn '[inputs]' \
| curl -s -X POST -H "SEC: $QRADAR_TOKEN" -H "Content-Type: application/json" \
"https://$QRADAR/api/reference_data/sets/bulk_load/ipdb_blacklist" --data-binary @-
# Rule: when the source IP is contained in any of ipdb_blacklist
Graylog
Definieren Sie in Graylog eine Lookup-Tabelle mit dem CSV-Dateiadapter und fragen Sie darin die Quell-IP in Ihrer Pipeline ab.
# /etc/graylog/server/ipdb.csv — cron ile yenile / refresh by cron
curl -fsS "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY" \
| awk 'BEGIN{print "ip,listed"} /^[0-9]/{sub("/32","");print $0",true"}' \
> /etc/graylog/server/ipdb.csv
# System → Lookup Tables: Data Adapter = CSV File, Cache = In-Memory# Pipeline rule:
rule "ipdb lookup"when has_field("src_ip")
then
set_field("ipdb_listed", lookup_value("ipdb", to_string($message.src_ip)));
end
SIEM /Automatisierungsplattformen
Es gibt kein offizielles Plugin — das brauchen Sie auch nicht. Die API ist reines JSON über REST mit einem Key-Header, daher funktioniert sie direkt mit dem generischen „HTTP-Request"/„Webhook"-Schritt in Zapier, Make, n8n, Splunk (per HEC-Skript) oder jedem SOAR-Playbook. Authentifizierung: benutzerdefinierter Header Key: YOUR_API_KEY.
Suricata
Suricata ab Version 6 kann Datasets direkt in einer Regel abgleichen.
# /var/lib/suricata/ipdb.list
curl -fsS "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY" \
| grep -E '^[0-9]' | sed 's|/32$||' > /var/lib/suricata/ipdb.list
# local.rules
alert ip [!$HOME_NET] any -> $HOME_NET any (msg:"ip-db.com listed source"; \
dataset:isset,ipdb,type string,load ipdb.list; sid:9000001; rev:1;)
Snort
Der Reputation-Präprozessor von Snort 2.9 liest eine einfache IP-Listendatei.
HAProxy liest eine ACL direkt aus einer Datei und kann sie über die Runtime-API auch ohne Reload aktualisieren.
curl -fsS "https://ip-db.com/api/v1/feed.txt?key=YOUR_API_KEY" \
| grep -E '^[0-9]' > /etc/haproxy/ipdb.lst
# haproxy.cfg
frontend web
bind :443 ssl crt /etc/ssl/site.pem
acl ipdb_blocked src -f /etc/haproxy/ipdb.lst
http-request deny deny_status 403 if ipdb_blocked
# yeniden yuklemeden guncelle / update without a reload
echo "add map #0 <ip> 1" | socat stdio /var/run/haproxy.sock
Cloudflare
Legen Sie in Cloudflare eine IP-Liste an und referenzieren Sie sie in einer WAF-Regel. Die Listengröße ist tarifabhängig begrenzt — nutzen Sie einen Kategoriefilter.
Unser kostenloser Open-Source-Honeypot wartet auf Ports, die Ihr Server nicht nutzt, und meldet verbindende Scanner und Angreifer an eine gemeinsame Blockliste.
Installation mit einem BefehlGehärteter systemd-Dienst, SHA-256-geprüft
Kein root, keine BefehleUnprivilegierter Benutzer; speichert keine Passwörter
SchlankUnter 30 MB Speicher, ein kleiner Bericht pro Minute
Kostenlos, ohne KontingentSensorberichte zählen nicht zum API-Kontingent
Erfahren Sie wöchentlich per E-Mail, was zuerst gepatcht werden muss
Jede Woche erscheinen Tausende CVEs; wenige zählen. Das Bulletin fasst in einer E-Mail zusammen, was in dieser Woche tatsächlich ausgenutzt wurde, und die wichtigen kritischen Schwachstellen.
Ausgenutztes zuerstJeder KEV-Eintrag dieser Woche
Eine E-Mail pro WocheKein Rauschen, keine Werbemails
Kein Konto nötigAbmeldung mit einem Klick; die Adresse wird nie geteilt
CVSS, KEV und EPSS zusammenNicht nur ein Score — was zuerst zu patchen ist