Automatisiertes IP-Threat-Intelligence-System mit dynamischer Blacklist-Verwaltung.
β‘ Quick Start Β· π Blocklisten Β· π― Scoring Β· ποΈ Architektur Β· βοΈ Workflows Β· π‘ Feeds
|
IP-Quellen (dynamisch) |
Aktive IP-Drohungen (Confidence β₯65) |
CVE/Exploit IPs Β |
Honeypot IPs Β |
| π Letztes Update | 2026-05-07 09:59 UTC | π Intervall | 8Γ tΓ€glich |
| π IP-Retention | 180 Tage | βοΈ Aktive Workflows | 19 |
| π Abdeckung | 250+ LΓ€nder | ||
NETSHIELD aggregiert, bewertet und bereinigt tΓ€glich IP-Bedrohungsdaten aus ΓΌber 120 Quellen: 98 ΓΆffentliche Remote-Feeds, 5 lokale Sub-Workflow-Feeds (CVE, Honeypot, HoneyDB, Bot-Detector, AbuseIPDB API) und ~18 automatisch entdeckte GitHub-Feeds. Das System unterscheidet aktive Bedrohungen von veralteten statischen Listen und liefert daraus qualitativ hochwertige Blocklisten fΓΌr OPNsense, pfSense und iptables.
Firewall β Aliases β URL Table (Type: URL Table (IPs)):
- Neuen URL Alias erstellen
- Listen-URL einfΓΌgen
- Intervall auf
TΓ€glichsetzen - Regeln anwenden
# β
Empfohlen β aktive Bedrohungen (Score β₯65, letzte 30 Tage)
https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/active_blacklist_ipv4.txt
# π GrΓΆΓere Abdeckung (Score β₯40)
https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/blacklist_confidence40_ipv4.txt
# ποΈ Nur Monitoring (Score 25β39)
https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/watchlist_confidence25to39_ipv4.txtπ§ iptables / ipset
ipset create netshield hash:ip
curl -s https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/active_blacklist_ipv4.txt \
| grep -v '^#' | xargs -I{} ipset add netshield {}
iptables -I INPUT -m set --match-set netshield src -j DROP| Datei | Zweck | EintrΓ€ge | Empfohlen fΓΌr |
|---|---|---|---|
π‘οΈ active_blacklist_ipv4.txt |
Aktive Bedrohungen Β· letzte 30 Tage Β· Score β₯ 65 | 2,326,802 | OPNsense / pfSense / Firewall |
πΆ blacklist_confidence40_ipv4.txt |
Mittleres bis hohes Vertrauen Β· Score β₯ 40 | 4,025,689 | Erweiterte Filterregeln |
π¦ combined_threat_blacklist_ipv4.txt |
Alle IPs Β· 180-Tage-Fenster | 5,028,709 | Audit / SIEM |
ποΈ watchlist_confidence25to39_ipv4.txt |
Watchlist Β· Score 25β39 | 177,591 | Monitoring |
π£ cve_exploit_ips.txt |
CVE-Exploits & aktive C2-Server | 52,974 | IDS / IPS |
π― honeypot_ips.txt |
Honeypot-bestΓ€tigte Angreifer | 171,881 | ErgΓ€nzung |
π― honeydb_ips.txt |
HoneyDB Community Honeypot (API) | 17,426 | ErgΓ€nzung |
π€ bot_detector_blacklist_ipv4.txt |
Bot- & Scanner-IPs | 17,949 | Web-Schutz |
π abuseipdb_api_blacklist.txt |
AbuseIPDB Top-IPs (API, Score β₯50) | 9,983 | ErgΓ€nzung |
π asn_blocklist_firewall.txt |
Hochrisiko-ASNs Β· Score β₯ 50 | 19 | ASN-Blocking |
Note
combined_threat_blacklist_ipv4.txt: Wenn die Datei ΓΌber 90 MB wΓ€chst, werden zusΓ€tzlich Parts combined_threat_blacklist_ipv4_part1.txt, _part2.txt (etc.) mit je ca. 40 MB erzeugt. Die Hauptdatei bleibt bestehen, solange sie unter 100 MB ist (GitHub-Limit). Firewall-Konsumenten, die am GitHub-Limit angestoΓen werden, sollten stattdessen die Parts als separate URLs importieren.
π Geo-Listen
countries/ β IPv4-Ranges pro Land, nach Kontinent sortiert
continents/ β Zusammengefasste Ranges pro Kontinent
all_countries_ipv4.txt β Alle LΓ€nder in einer Datei
Jede IP bekommt einen Confidence-Score (0β100) aus vier Dimensionen:
Score = Quellen-QualitΓ€t (40) + AktualitΓ€t (30) + Persistenz (20) + Bekannt seit (10)
| Dimension | Gewicht | Logik |
|---|---|---|
| π Quellen-QualitΓ€t | 40 |
HQ-Feed = 40 Β· 5+ Feeds heute = 35 Β· 3+ heute = 28 Β· 2+ heute = 20 Β· 5+ gesamt = 15 Β· 3+ gesamt = 10 Β· 2+ gesamt = 5 |
| β±οΈ AktualitΓ€t | 30 |
Heute = 30 Β· β€ 3 Tage = 25 Β· β€ 7 Tage = 20 Β· β€ 14 Tage = 12 Β· β€ 30 Tage = 6 |
| π Persistenz | 20 |
14+ Tage = 20 Β· 7 Tage = 15 Β· 3 Tage = 10 Β· 2 Tage = 6 Β· 1 Tag = 2 |
| π Bekannt seit | 10 |
90+ Tage = 10 Β· 30+ Tage = 6 Β· 14+ Tage = 3 |
Important
Nur HQ-Feeds (Feodo, AbuseIPDB, Spamhaus, DataPlane, FireHOL u. a.) bestimmen die Lebenszeit einer IP. Statische Mega-Listen erhΓΆhen den Score, kΓΆnnen eine IP aber nicht am Leben halten. Nach 180 Tagen ohne HQ-BestΓ€tigung wird eine IP automatisch entfernt. Watchlist-IPs ohne HQ-BestΓ€tigung laufen bereits nach 30 Tagen ab.
| Score | Liste | Verwendung |
|---|---|---|
| π΄ β₯ 65 | active_blacklist |
Firewall Β· direktes Blocking |
| π β₯ 40 | confidence40 |
Erweiterte Regeln |
| π‘ 25β39 | watchlist |
Nur Monitoring |
| βͺ < 25 | combined |
Audit / SIEM |
121 Quellen (98 Remote + 5 Lokal + ~18 Auto-Discovered)
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββ
β Update Combined Blacklist β β Haupt-Engine Β· 8Γ tΓ€glich
β β
β βββββββββββββββ ββββββββββββββββββββββββ β
β β seen_db β β False-Positive-Set β β
β β (Cache) β β (Whitelist-Filter) β β
β ββββββββ¬βββββββ ββββββββββββββββββββββββ β
β β β
β Score-Berechnung Β· HQ/Non-HQ Trennung β
β IP-Lebenszeit: 180T (HQ) / 30T (Watchlist)β
ββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β
βββββββΌββββββββββββββββββ
βΌ βΌ βΌ
active combined confidence40
β₯65 180T β₯40 / watchlist
β β β
βΌ βΌ βΌ
OPNsense Audit/SIEM Analyse
Sub-Workflows (vor Combined):
CVE Mapper βββββββ
Honeypot Monitor ββββ Lokale .txt-Dateien βββ Combined liest ein
HoneyDB Monitor β
Bot-Detector βββββ
Enrichment (nach Combined):
Geo-Tagger βββββββ blacklist_geo_enriched.json
ASN Scorer βββββββ asn_reputation_db.json
Score Decay ββββββ Alterungs-Report (read-only)
π§ Kern-Pipeline
| Workflow | Zeitplan | Aufgabe |
|---|---|---|
| Update Combined Blacklist | 8Γ tΓ€glich (alle 3h) | Feeds laden, seen_db aktualisieren, combined + active Blacklists schreiben |
| Confidence Blacklist | 8Γ tΓ€glich (+45 min) | confidence40 + watchlist aus seen_db berechnen |
| False Positive Checker | 3Γ tΓ€glich | Whitelist-CIDRs prΓΌfen β false_positives_set.json |
| NETSHIELD Report Generator | alle 30 Minuten | NETSHIELD_REPORT.md + README-Statistiken aktualisieren |
π‘ Datenquellen (Sub-Workflows)
| Workflow | Zeitplan | Aufgabe |
|---|---|---|
| CVE-to-IP Mapper | tΓ€glich 04:00 | C2/Exploit-IPs β cve_exploit_ips.txt |
| Honeypot Monitor | tΓ€glich 23:00 | Honeypot-Feeds β honeypot_ips.txt |
| HoneyDB Monitor | tΓ€glich 22:15 | HoneyDB API β honeydb_ips.txt |
| Bot-Detector Blacklist | tΓ€glich 22:45 | Bot-IPs β bot_detector_blacklist_ipv4.txt |
| Auto Feed Discovery | wΓΆchentlich So 04:30 | GitHub nach neuen Feeds durchsuchen |
π Enrichment & Monitoring
| Workflow | Zeitplan | Aufgabe |
|---|---|---|
| Geo-Tagger | wΓΆchentlich So 07:45 | Blacklist-IPs geo-anreichern via ScaniteX |
| ASN Reputation Scorer | tΓ€glich 02:00 | ASN-Scoring β asn_reputation_db.json |
| Score Decay Monitor | wΓΆchentlich So 07:00 | Alterungs-Report (read-only) |
| Feed Health Monitor | tΓ€glich 01:00 | Feed-URLs auf Erreichbarkeit prΓΌfen |
| Workflow Health Checker | 4Γ tΓ€glich | Python-Code + Production Health Checks (seen_db, Output-Sanity, Drift, Feed-AusfΓ€lle) |
| Update All Countries IPv4 | Mo + Mi 01:30 | LΓ€nder/Kontinente IPv4-Ranges synchronisieren |
π€ Community
| Workflow | Trigger | Aufgabe |
|---|---|---|
| Community IP Report | Issue mit Label community-report |
Community-gemeldete IPs validieren und eintragen |
22:15 HoneyDB Monitor βββββββββββββββββββ
22:45 Bot-Detector Blacklist βββββββββββββ€
23:00 Honeypot Monitor βββββββββββββββββββ€
00:00 Update Combined Blacklist ββββββββββΌβββ seen_db Cache
00:45 Confidence Blacklist βββββββββββββββ (8Γ tΓ€glich wiederholt)
01:00 Feed Health Monitor
01:15 Workflow Health Checker βββββββββββββ (4Γ tΓ€glich: 01:15, 07:15, 13:15, 19:15)
01:30 Update All Countries (Mo+Mi)
02:00 ASN Reputation Scorer
04:00 CVE-to-IP Mapper
04:30 Auto Feed Discovery (So)
05:00 False Positive Checker
07:00 Score Decay Monitor (So)
07:45 Geo-Tagger (So)
VerdΓ€chtige IPs kΓΆnnen ΓΌber das Issue-System gemeldet werden:
- Issue mit Label
community-reporterstellen - System validiert die IP automatisch (nur ΓΆffentliche IPv4)
- IP landet als Watchlist-Eintrag in der seen_db
- Bei 3 unabhΓ€ngigen Meldungen β Promotion zur aktiven Blacklist
- Issue wird automatisch geschlossen
Tip
Limit: 5 Reports pro User pro Tag.
| Datei | Inhalt |
|---|---|
π NETSHIELD_REPORT.md |
GesamtΓΌbersicht + Feed Health (alle 30 min) |
π feed_health_report.md |
Status aller Feed-URLs |
βοΈ workflow_health_report.md |
Workflow-Analyse (Python-Syntax, Cron-Timing, Guards) |
π combined_threat_blacklist_report.md |
Feed-Statistik pro Lauf |
π geo_tagger_report.md |
Geo-Verteilung der Blacklist-IPs |
π’ asn_reputation_report.md |
ASN-Scoring mit Abuse-Dichte |
π score_decay_report.md |
Alterungs-Analyse der seen_db |
π auto_feed_discovery_report.md |
Neu entdeckte Feeds + Bewertung |
NETSHIELD bezieht Daten aus folgenden Kategorien:
| Kategorie | Beispiele | HQ |
|---|---|---|
| Abuse-Tracker | Feodo, ThreatFox, URLhaus (abuse.ch) | β |
| Blocklist-Aggregatoren | FireHOL Level 1β4, blocklist.de, DShield | β |
| Honeypot-Netzwerke | DataPlane, Turris Sentinel, HoneyDB (API) | β |
| Reputation-Feeds | AbuseIPDB (API + Mirrors), ipsum, CINSscore | β |
| C2/Botnet-Tracker | C2-Tracker, MISP C2 Intel Feeds | β |
| Threat Intelligence | Spamhaus DROP, Emerging Threats, Threatview | β |
| Community-Feeds | GitHub-Repos (auto-discovered), Bot-Detector | β |
| Brute-Force-Listen | CrowdSec, danger.rulez.sk, blocklist.de/ssh | β |
Important
HQ-Feeds (49 von 98 Remote-Quellen) bestimmen die Lebenszeit einer IP. Non-HQ-Feeds erhΓΆhen den Confidence-Score, kΓΆnnen IPs aber nicht am Leben halten.
Repository-Layout anzeigen
NETSHIELD/
βββ .github/workflows/ # 16 GitHub Actions Workflows
βββ continents/ # IPv4-Ranges pro Kontinent
βββ countries/ # IPv4-Ranges pro Land
β βββ africa/ Β· asia/ Β· europe/
β βββ north_america/ Β· oceania/ Β· south_america/
β
βββ active_blacklist_ipv4.txt # β Firewall (Score β₯65, 30 Tage)
βββ blacklist_confidence40_ipv4.txt # β Erweiterte Regeln (Score β₯40)
βββ combined_threat_blacklist_ipv4.txt # β Audit / SIEM (180 Tage)
βββ watchlist_confidence25to39_ipv4.txt # β Monitoring (Score 25β39)
β
βββ cve_exploit_ips.txt # CVE/C2-IPs (tΓ€glich)
βββ honeypot_ips.txt # Honeypot-Feeds (tΓ€glich)
βββ honeydb_ips.txt # HoneyDB API (tΓ€glich)
βββ bot_detector_blacklist_ipv4.txt # Bot-Detector (tΓ€glich)
βββ abuseipdb_api_blacklist.txt # AbuseIPDB API (Round-Robin)
βββ asn_blocklist_firewall.txt # ASN-Blocking (Score β₯50)
β
βββ asn_reputation_db.json # ASN-Scoring-Daten
βββ blacklist_geo_enriched.json # Geo-Anreicherung
βββ auto_discovered_feeds.json # Auto-entdeckte Feeds
βββ false_positives_set.json # FP-Whitelist
βββ feed_health_status.json # Feed-Status
βββ seen_db_meta.json # seen_db Metadaten (DB im Cache)
β
βββ NETSHIELD_REPORT.md # Haupt-Dashboard
βββ README.md
| Mechanismus | Beschreibung |
|---|---|
| π Leerungsschutz | Jeder Workflow prΓΌft MIN_ENTRIES vor dem Schreiben β bei zu wenigen Ergebnissen bleibt die alte Datei erhalten |
| βͺ False-Positive-Filter | Umfangreiche Whitelist (CDN, DNS, Mail, Cloud-Provider) verhindert Blocking legitimer Infrastruktur |
| π HQ/Non-HQ-Trennung | Nur verifizierte HQ-Feeds verlΓ€ngern die Lebenszeit einer IP β statische Listen kΓΆnnen IPs nicht am Leben halten |
| π Push-Retry | 5 Versuche mit git rebase bei gleichzeitigen Commits |
| π Concurrency-Lock | Jeder Workflow lΓ€uft max. 1Γ gleichzeitig |
| π¦ Cache-Isolation | Verschiedene Workflows nutzen eigene Cache-Prefixe (v2, fp, afd, community) |
Automatisch aktualisiert Β· NETSHIELD_REPORT.md