8.9 KiB
🛡️ Firewall-Audit - Network Reputation Service
Ein professionelles PowerShell-Audit-Tool zur Bewertung der Filtereffektivität Ihrer Firewall durch das Testen kategorisierter URLs basierend auf ihrer Netzwerk-Reputation.
📋 Inhaltsverzeichnis
- Überblick
- Funktionen
- Voraussetzungen
- Installation
- Nutzung
- Konfiguration
- Generierter Bericht
- Datenstruktur
- Bewertungssystem
- Fehlerbehebung
- Mitwirken
- Lizenz
🎯 Überblick
Dieses PowerShell-Skript testet die Effektivität Ihrer Firewall, indem es überprüft, dass schädliche URLs korrekt blockiert werden, während legitime Websites zugänglich bleiben. Es generiert einen professionellen HTML-Bericht mit Bewertung, Statistiken und Empfehlungen.
Autor: Hubert Cornet
Version: 1.3
Datum: 3. September 2025
✨ Funktionen
- 🔍 Automatisiertes Testen von Hunderten kategorisierter URLs
- 📊 Intelligente Bewertung mit Noten von A+ bis F
- 📱 Responsive HTML-Berichte mit interaktiver Benutzeroberfläche
- 🔧 Proxy-Unterstützung mit Authentifizierung
- ⚡ Echtzeit-Fortschrittsbalken
- 🎨 Farbkodierte Visualisierungen der Ergebnisse
- 💾 JSON-Export der Rohdaten
- 🌐 Multi-Methoden-Erkennung von Blockierungen
📋 Voraussetzungen
Systemanforderungen
- Windows 10/11 oder Windows Server 2016+
- PowerShell 5.1 oder höher
- Aktive Internetverbindung
- Schreibrechte im Skript-Verzeichnis
PowerShell-Module (werden automatisch installiert)
PSWriteHTML
PSWriteColor
Erforderliche Dateien
file-nrs.json
- Datenbank kategorisierter URLs
🚀 Installation
- Laden Sie das Skript in einen dedizierten Ordner herunter
- Laden Sie die JSON-Datei von hier herunter:
https://gitea.tips-of-mine.com/Tips-Of-Mine/Powershell/src/branch/main/cybersecurity/Network%20Reputation%20Service/file-nrs.json
- Platzieren Sie beide Dateien im selben Verzeichnis
💻 Nutzung
Grundlegende Nutzung
.\AuditFirewall.ps1
Mit Proxy
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.unternehmen.com:8080"
Mit Proxy-Authentifizierung
.\AuditFirewall.ps1 -ProxyUrl "http://proxy.unternehmen.com:8080" -ProxyUseAuthentication
Mit benutzerdefiniertem Timeout
.\AuditFirewall.ps1 -TimeoutSeconds 15
⚙️ Konfiguration
Verfügbare Parameter
Parameter | Typ | Beschreibung | Standard |
---|---|---|---|
ProxyUrl |
String | Netzwerk-Proxy-URL | Keine |
ProxyUseAuthentication |
Switch | Proxy-Authentifizierung aktivieren | False |
TimeoutSeconds |
Integer | Timeout pro URL | 10 |
Anpassung der Block-Schlüsselwörter
Bearbeiten Sie die Variable $BlockKeywords
im Skript:
$BlockKeywords = @("Seite blockiert", "Zugriff verweigert", "Web-Filterung", "Access Denied", "Site Blocked")
📊 Generierter Bericht
Das Skript generiert automatisch:
📁 Ausgabe-Dateistruktur
Rapports/
└── [Datum und Uhrzeit]/
├── Audit_Firewall_Report.html # Hauptbericht
└── Results.json # Rohdaten
🎨 HTML-Berichtsinhalt
- Zusammenfassung: Gesamtpunktzahl und wichtige Statistiken
- Punktetabelle: Leistung nach Kategorie
- Interaktive Details: Einzelne Tests pro URL
- Bewertungsskala: Erklärung des Bewertungssystems
📁 Datenstruktur
Format von file-nrs.json
{
"categorie": [
{
"id": "malware",
"nom": "Malware",
"description": "Websites, die schädliche Software verbreiten",
"urls": [
{
"url": "http://beispiel-malware.com",
"reputation": "malicious",
"expected_action": "block"
},
{
"url": "https://legitime-website.com",
"reputation": "safe",
"expected_action": "allow"
}
]
}
]
}
Erwartete Aktionen
"block"
: URL sollte von der Firewall blockiert werden"allow"
: URL sollte zugänglich bleiben
📈 Bewertungssystem
Notenskala
Note | Punktzahl | Interpretation |
---|---|---|
A+ | 95-100% | 🟢 Ausgezeichnet / Perfekt |
A | 90-95% | 🟢 Sehr gutes Filtering-Niveau |
B+ | 85-90% | 🟡 Sehr gut |
B | 80-85% | 🟡 Gut, einige Anpassungen nötig |
C+ | 75-80% | 🟠 Ziemlich gut |
C | 70-75% | 🟠 Durchschnittlich, erhebliche Lücken |
D+ | 65-70% | 🔴 Akzeptabel |
D | 60-65% | 🔴 Schwach, ineffektives Filtering |
E+ | 55-60% | 🔴 Sehr schwach |
E | 50-55% | 🔴 Unzureichend |
F+ | 45-50% | ⚫ Kritisch |
F | 0-45% | ⚫ Sofortige Maßnahmen erforderlich |
Berechnungsmethode
Punktzahl = (Korrekt gefilterte URLs / Gesamtzahl getesteter URLs) × 100
🔍 Erkennungsmethoden
Wie das Skript Blockierungen erkennt:
- Inhaltsanalyse: Suche nach Schlüsselwörtern von Blockierungsseiten
- Netzwerk-Timeouts: Anfragen, die ablaufen (wahrscheinliche Firewall-Blockierung)
- Verbindungsfehler: Unfähigkeit, den Server zu erreichen
- HTTP-Statuscodes: Analyse der Serverantworten
Simulierte HTTP-Header:
Das Skript simuliert einen modernen Browser, um Erkennung zu vermeiden:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
Accept: text/html,application/xhtml+xml,application/xml...
Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
🔧 Fehlerbehebung
Häufige Probleme
❌ "Datei 'file-nrs.json' existiert nicht!"
Lösung: Laden Sie die JSON-Datei vom bereitgestellten Link herunter und platzieren Sie sie im selben Ordner wie das Skript.
❌ "Modul X kann nicht installiert werden"
Lösung: Führen Sie PowerShell als Administrator aus oder verwenden Sie:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
❌ Häufige Timeouts
Lösungen:
- Erhöhen Sie den
-TimeoutSeconds
Wert - Überprüfen Sie Ihre Netzwerkverbindung
- Konfigurieren Sie die Proxy-Einstellungen korrekt
❌ Falsch-Positive/Negative
Lösungen:
- Aktualisieren Sie die Block-Schlüsselwörter
- Überprüfen Sie die Firewall-Konfiguration
- Passen Sie die JSON-Datei an Ihre Umgebung an
🏢 Empfohlene Anwendungsfälle
📅 Regelmäßige Nutzung
- Monatliches Audit der Firewall-Effektivität
- Validierung nach Regel-Updates
- Benchmarking zwischen Sicherheitslösungen
👥 Management-Berichterstattung
- Dashboards für IT-Management
- Messbare Sicherheits-KPIs
- Investitionsbegründung für Sicherheit
🔧 Konfigurationstests
- Validierung nach Netzwerkänderungen
- Regressionstests der Firewall-Regeln
- Sicherheits-Compliance-Audit
⚠️ Technische Einschränkungen
Beachtenswertes:
- Sequenzielle Tests: Keine Parallelisierung (kann langsam sein)
- Grundlegende Erkennung: Basiert auf vordefinierten Schlüsselwörtern
- Falsch-Positive: Legitime Websites zeitweise unzugänglich
- Sicherheit: Skript kontaktiert tatsächlich getestete URLs
Best Practices:
- 🕐 Führen Sie während schwacher Verkehrszeiten aus
- 📊 Analysieren Sie Ergebnisse im Kontext
- 🔄 Halten Sie JSON-Datei aktuell
- 📈 Verfolgen Sie die Entwicklung der Punktzahlen über Zeit
🤝 Mitwirken
Um beizutragen:
- Forken Sie das Projekt
- Erstellen Sie Ihren Feature-Branch
- Committen Sie Ihre Änderungen
- Pushen Sie zum Branch
- Öffnen Sie eine Pull Request
Verbesserungsideen:
- Test-Parallelisierung für bessere Performance
- Ausgeklügeltere Blockseiten-Erkennung
- Externe Reputationsdatenbank-Unterstützung
- Grafische Benutzeroberfläche für Konfiguration
- Threat Intelligence API-Integration
🎯 Roadmap
Version 1.4 (geplant)
- Parallele Tests für verbesserte Performance
- Benutzerdefinierte SSL-Zertifikat-Unterstützung
- E-Mail-Benachrichtigungen für Ergebnisse
Version 2.0 (zukünftig)
- Web-Interface für Konfiguration
- SIEM-Lösungsintegration
- REST API für Automatisierung
📞 Support
Für Hilfe oder um Probleme zu melden:
- 📧 Kontaktieren Sie den Autor: Hubert Cornet
- 🐛 Öffnen Sie ein Issue im Projekt-Repository
- 📚 Konsultieren Sie die technische Dokumentation
📄 Lizenz
Dieses Projekt steht unter MIT-Lizenz. Siehe die LICENSE
-Datei für weitere Details.
⭐ Wenn Ihnen dieses Skript nützlich war, geben Sie ihm gerne einen Stern!
Zuletzt aktualisiert: 3. September 2025