Anpassung an Readme
This commit is contained in:
@@ -40,23 +40,23 @@ Sicherung des aktuellen Standorts inkl. aller Hashes:
|
|||||||
|
|
||||||
## Dieses System überwacht eine FRITZ!Box (getestet mit FRITZ!OS 7.52+) auf System-Ereignisse und VPN-Statusänderungen. Da die Standard-Schnittstelle (TR-064) von AVM oft auf 5 Log-Einträge limitiert ist, nutzt dieses Skript die Lua-Schnittstelle (Web-UI API), um das vollständige System-Log und detaillierte VPN-Statusinformationen abzugreifen.
|
## Dieses System überwacht eine FRITZ!Box (getestet mit FRITZ!OS 7.52+) auf System-Ereignisse und VPN-Statusänderungen. Da die Standard-Schnittstelle (TR-064) von AVM oft auf 5 Log-Einträge limitiert ist, nutzt dieses Skript die Lua-Schnittstelle (Web-UI API), um das vollständige System-Log und detaillierte VPN-Statusinformationen abzugreifen.
|
||||||
|
|
||||||
## Funktionsweise
|
### Funktionsweise
|
||||||
|
|
||||||
Authentifizierung: Das Skript meldet sich via Challenge-Response-Verfahren an der FRITZ!Box an und erhält eine Session-ID (SID).
|
Authentifizierung: Das Skript meldet sich via Challenge-Response-Verfahren an der FRITZ!Box an und erhält eine Session-ID (SID).
|
||||||
Log-Streaming: Das System-Log wird regelmäßig ausgelesen. Neue Einträge werden identifiziert (SHA1-Hash-Vergleich) und chronologisch an einen zentralen Syslog-Server weitergeleitet.
|
Log-Streaming: Das System-Log wird regelmäßig ausgelesen. Neue Einträge werden identifiziert (SHA1-Hash-Vergleich) und chronologisch an einen zentralen Syslog-Server weitergeleitet.
|
||||||
VPN-Monitoring: Der Status aller VPN-Verbindungen (IPSec Site-to-Site & WireGuard) wird überwacht. Änderungen (UP/DOWN) generieren sofort eine Syslog-Meldung mit entsprechendem Severity-Level (INFO/CRITICAL).
|
VPN-Monitoring: Der Status aller VPN-Verbindungen (IPSec Site-to-Site & WireGuard) wird überwacht. Änderungen (UP/DOWN) generieren sofort eine Syslog-Meldung mit entsprechendem Severity-Level (INFO/CRITICAL).
|
||||||
Deduplizierung: Um Log-Fluten zu vermeiden, werden bereits gesendete Zeilen im Speicher zwischengespeichert.
|
Deduplizierung: Um Log-Fluten zu vermeiden, werden bereits gesendete Zeilen im Speicher zwischengespeichert.
|
||||||
|
|
||||||
## Voraussetzungen
|
### Voraussetzungen
|
||||||
|
|
||||||
FRITZ!Box-Benutzer: Ein dedizierter Benutzer mit Berechtigung für "FRITZ!Box Einstellungen" (notwendig für den Zugriff auf VPN-Daten).
|
FRITZ!Box-Benutzer: Ein dedizierter Benutzer mit Berechtigung für "FRITZ!Box Einstellungen" (notwendig für den Zugriff auf VPN-Daten).
|
||||||
Zentraler Syslog-Server: (z. B. Graylog, rsyslog oder Logstash), der UDP-Pakete auf Port 514 empfängt.
|
Zentraler Syslog-Server: (z. B. Graylog, rsyslog oder Logstash), der UDP-Pakete auf Port 514 empfängt.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Installation & Deployment
|
### Installation & Deployment
|
||||||
|
|
||||||
# 1. Umgebungsvariablen (.env)
|
#### 1. Umgebungsvariablen (.env)
|
||||||
Erstelle eine .env Datei mit folgendem Inhalt:
|
Erstelle eine .env Datei mit folgendem Inhalt:
|
||||||
env
|
env
|
||||||
|
|
||||||
@@ -73,21 +73,21 @@ SEND_INITIAL_LOG=True
|
|||||||
DEBUG_MODE=False
|
DEBUG_MODE=False
|
||||||
|
|
||||||
|
|
||||||
## 2. Docker Compose
|
#### 2. Docker Compose
|
||||||
Starten des Containers mit:
|
Starten des Containers mit:
|
||||||
bash
|
bash
|
||||||
|
|
||||||
docker compose up -d --build
|
docker compose up -d --build
|
||||||
|
|
||||||
## Troubleshooting ("Notfall-Guide")
|
#### Troubleshooting ("Notfall-Guide")
|
||||||
# Falls keine Logs mehr im Syslog-Server ankommen:
|
##### Falls keine Logs mehr im Syslog-Server ankommen:
|
||||||
|
|
||||||
Container-Logs prüfen: docker logs -f fritz-syslog-forwarder.
|
Container-Logs prüfen: docker logs -f fritz-syslog-forwarder.
|
||||||
SID-Fehler: Erscheint ein "Login-Fehler", prüfen ob das Passwort abgelaufen ist oder ob die FRITZ!Box eine 2FA-Bestätigung (Taste drücken) für den API-Zugriff verlangt.
|
SID-Fehler: Erscheint ein "Login-Fehler", prüfen ob das Passwort abgelaufen ist oder ob die FRITZ!Box eine 2FA-Bestätigung (Taste drücken) für den API-Zugriff verlangt.
|
||||||
Netzwerk: Testen, ob der Container den Syslog-Server pingen kann.
|
Netzwerk: Testen, ob der Container den Syslog-Server pingen kann.
|
||||||
FRITZ!OS Update: Nach einem Firmware-Update könnte AVM die data.lua Pfade ändern. In diesem Fall muss die fetch_data Funktion im Skript geprüft werden.
|
FRITZ!OS Update: Nach einem Firmware-Update könnte AVM die data.lua Pfade ändern. In diesem Fall muss die fetch_data Funktion im Skript geprüft werden.
|
||||||
|
|
||||||
## Technische Details
|
#### Technische Details
|
||||||
|
|
||||||
Sprache: Python 3.11-slim
|
Sprache: Python 3.11-slim
|
||||||
Bibliotheken: requests, python-dotenv
|
Bibliotheken: requests, python-dotenv
|
||||||
@@ -95,7 +95,7 @@ bash
|
|||||||
Datenquelle: data.lua?page=log und data.lua?page=vpn
|
Datenquelle: data.lua?page=log und data.lua?page=vpn
|
||||||
|
|
||||||
|
|
||||||
## 3. Hinweis zur Häufungserkennung
|
#### 3. Hinweis zur Häufungserkennung
|
||||||
Die FRITZ!Box fasst identische Meldungen zusammen (z.B. Login-Versuche), um das Log nicht zu fluten. Durch das elif oben wird eine Zeile wie:
|
Die FRITZ!Box fasst identische Meldungen zusammen (z.B. Login-Versuche), um das Log nicht zu fluten. Durch das elif oben wird eine Zeile wie:
|
||||||
Anmeldung des Benutzers syslog... [145 Meldungen seit 04.02.26 02:00:39]
|
Anmeldung des Benutzers syslog... [145 Meldungen seit 04.02.26 02:00:39]
|
||||||
automatisch als Warning markiert. Das ist ideal für Graylog-Alerts, da du so sofort siehst, wenn ein Dienst (oder ein Angreifer) "Amok läuft".
|
automatisch als Warning markiert. Das ist ideal für Graylog-Alerts, da du so sofort siehst, wenn ein Dienst (oder ein Angreifer) "Amok läuft".
|
||||||
@@ -108,7 +108,7 @@ Zusammenfassung der Änderungen für deine Meta-Doku:
|
|||||||
Sobald du die 7.62 installierst, schau im DEBUG_MODE besonders auf die VPN-Meldungen – AVM führt dort oft neue Verschlüsselungs-Bezeichnungen ein.
|
Sobald du die 7.62 installierst, schau im DEBUG_MODE besonders auf die VPN-Meldungen – AVM führt dort oft neue Verschlüsselungs-Bezeichnungen ein.
|
||||||
|
|
||||||
|
|
||||||
## 4. Erklärung der erweiterten Umgebungsvariablen (.env)
|
#### 4. Erklärung der erweiterten Umgebungsvariablen (.env)
|
||||||
Parameter Wert (Beispiel) Beschreibung
|
Parameter Wert (Beispiel) Beschreibung
|
||||||
SEND_INITIAL_LOG True/False Wenn True, wird beim Containerstart das gesamte vorhandene Log der FRITZ!Box gesendet. Bei False werden nur Ereignisse ab Startmoment übertragen.
|
SEND_INITIAL_LOG True/False Wenn True, wird beim Containerstart das gesamte vorhandene Log der FRITZ!Box gesendet. Bei False werden nur Ereignisse ab Startmoment übertragen.
|
||||||
SYSLOG_EXTRACT_TIME True/False Extrahiert den Zeitstempel direkt aus der FRITZ!Box-Meldung (04.02.26 03:02). Garantiert sekundengenaue Logs, unabhängig von der Container-Zeit.
|
SYSLOG_EXTRACT_TIME True/False Extrahiert den Zeitstempel direkt aus der FRITZ!Box-Meldung (04.02.26 03:02). Garantiert sekundengenaue Logs, unabhängig von der Container-Zeit.
|
||||||
@@ -119,7 +119,7 @@ TZ Europe/Berlin Zeitzone für den Fall, dass die Zeitextraktion fehlschlägt od
|
|||||||
DEBUG_MODE True/False Schaltet ausführliche Ausgaben im Container-Log (docker logs) frei (Login-Status, gesendete Payloads, Hash-Checks).
|
DEBUG_MODE True/False Schaltet ausführliche Ausgaben im Container-Log (docker logs) frei (Login-Status, gesendete Payloads, Hash-Checks).
|
||||||
DEBUG2_IGNORE_CACHE True/False Vorsicht: Deaktiviert den Dubletten-Schutz. Sendet bei jedem Intervall das komplette Log erneut. Nur für kurzzeitige Fehlersuche nutzen!
|
DEBUG2_IGNORE_CACHE True/False Vorsicht: Deaktiviert den Dubletten-Schutz. Sendet bei jedem Intervall das komplette Log erneut. Nur für kurzzeitige Fehlersuche nutzen!
|
||||||
|
|
||||||
## 5. Syslog-Prioritäten & Level-Mapping
|
#### 5. Syslog-Prioritäten & Level-Mapping
|
||||||
Das Skript übersetzt FRITZ!Box-Ereignisse automatisch in standardisierte Syslog-Severities (RFC 5424). Dies ermöglicht in Graylog/Zabbix eine sofortige Alarmierung basierend auf dem Feld level oder der Priority-ID.
|
Das Skript übersetzt FRITZ!Box-Ereignisse automatisch in standardisierte Syslog-Severities (RFC 5424). Dies ermöglicht in Graylog/Zabbix eine sofortige Alarmierung basierend auf dem Feld level oder der Priority-ID.
|
||||||
Severity ID Level Name Trigger im Skript (Keywords) Bedeutung
|
Severity ID Level Name Trigger im Skript (Keywords) Bedeutung
|
||||||
2 CRITICAL 0x203e, 0x2027, ike-error Kritische VPN-Handshake-Fehler. Handlungsbedarf bei Site-to-Site.
|
2 CRITICAL 0x203e, 0x2027, ike-error Kritische VPN-Handshake-Fehler. Handlungsbedarf bei Site-to-Site.
|
||||||
@@ -128,7 +128,7 @@ Severity ID Level Name Trigger im Skript (Keywords) Bedeutung
|
|||||||
6 INFO Alle anderen Meldungen WLAN-Anmeldungen, reguläre Reconnects, Systemstarts.
|
6 INFO Alle anderen Meldungen WLAN-Anmeldungen, reguläre Reconnects, Systemstarts.
|
||||||
|
|
||||||
|
|
||||||
## Pro-Tipp für die Wartung:
|
#### Pro-Tipp für die Wartung:
|
||||||
Sollte die FRITZ!Box nach einem Update auf 7.62 oder 8.0 keine Logs mehr senden, prüfen Sie im DEBUG_MODE, ob die fetch_data Funktion noch ein gültiges JSON-Objekt von der data.lua zurückerhält.
|
Sollte die FRITZ!Box nach einem Update auf 7.62 oder 8.0 keine Logs mehr senden, prüfen Sie im DEBUG_MODE, ob die fetch_data Funktion noch ein gültiges JSON-Objekt von der data.lua zurückerhält.
|
||||||
AVM neigt dazu, die Feldnamen (z.B. von vpnList zu vpn_list) bei Major-Updates leicht zu ändern.
|
AVM neigt dazu, die Feldnamen (z.B. von vpnList zu vpn_list) bei Major-Updates leicht zu ändern.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user