Zugrifffe auf das Webinterface einer CCU/RM loggen/überwachen
Moderator: Co-Administratoren
- Henke
- Beiträge: 1747
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 178 Mal
- Danksagung erhalten: 377 Mal
Re: Zugrifffe auf das Webinterfache einer CCU/RM loggen/überwachen
">> /tmp/access.txt" ersetzen durch ein tcl Script.
Da die Datei als Log beschreiben und gefiltert direkt die Systemvariable setzen.
Damit fällt der zyklischer Aufruf weg.
Da die Datei als Log beschreiben und gefiltert direkt die Systemvariable setzen.
Damit fällt der zyklischer Aufruf weg.
-
- Beiträge: 15461
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 698 Mal
- Danksagung erhalten: 1743 Mal
Re: Zugrifffe auf das Webinterfache einer CCU/RM loggen/überwachen
Gute Idee! Danke erst mal. Ich denke mal, das muss ich irgendwie pipen. Oder parallel mit tee in die Datei schreiben und ans Script senden. Ich hirne das mal.
EDIT: So habe die Ausgabe schon mal testweise mit tee gesplittet und habe jetzt eine parallele Ausgabe in die Datei und per less auf der Konsole. Das less möchte ich dann mit dem Script ersetzen. Im Moment sieht es als Konsolenbefehl so aus:
Code: Alles auswählen
tail -f /var/log/lighttpd-access.log | awk '!/^192.168.178.3/ && !/^192.168.178.252/ && !/^127.0.0.1/ { print $0 }' | tee -a /tmp/access.txt | less
EDIT2: Das war ein PEBCAK. Ich habe nun ein Script, welches erst mal das tut, was es soll. Es schreibt einen übergebenen Parameter in eine Systemvariable. Die Scriptidee stammt aus dem Forum und dies ist der aktuelle Bearbeitungsstand ohne jegliches Fehlerhandling. Da baue ich dann noch was ein.
Code: Alles auswählen
#!/usr/bin/env tclsh
load tclrega.so
# tclrega.so available. Get Metadata from ReGaHss
set isecmd ""
set state $argv
append isecmd "var x = dom.GetObject('Watchdog-Access');"
append isecmd "x.State('"
append isecmd $state
append isecmd "');"
rega_script $isecmd
puts $isecmd
Was ich letztendlich eigentlich möchte, orientiert sich an obigen Befehl. Tail übergibt die letzte Zeile an awk (funktioniert) und awk filtert die Zeilen mit bekannten Adressen raus (funktionert auch noch) diese Ausgabe schreibe ich derzeit nach access.txt. An dieser Stelle hätte ich eben gern das Script, welches die letzte Zeile in eine Sysvar schreibt (bzw. nur die IP). Also letztendich soll der vorgelagerte Filterweg das Script mit seiner Ausgabe triggern, so wie sonst der Schreibvorgang mit >> in eine Datei getriggert wird.
Andere Idee: Ich setze noch mal eine zweite tail/awk-Instanz auf den Output in der access.txt an. Aber auch dieser Output müsste ja wieder das Script triggern. Ich drehe mich im Kreis. Hmmm... EDIT: habe xargs gefunden. Mal schauen, ob das auf der CCU existiert. Sitze derzeit nicht davor. To be continued.
Gruß Xel66
Zuletzt geändert von Xel66 am 08.11.2023, 04:22, insgesamt 5-mal geändert.
-------------------------------------------------------------------------------------------
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
-
- Beiträge: 15461
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 698 Mal
- Danksagung erhalten: 1743 Mal
Re: Zugrifffe auf das Webinterfache einer CCU/RM loggen/überwachen
Zusatzfrage: Kennt sich jemand mit dem Logrotate aus? Wenn ich die /etc/logrotate.d/syslogd.conf richtig verstehe, werden alle *.log-Dateien bei einer Größe größer 2MB rotiert und eine neue .log angelegt. Heißt für mich, wenn ich meine "access.txt" als "access.log" in /var/log ablegen würde, würde der Job diese Datei auch mit behandeln. Somit hätte ich noch ein Langzeitarchiv (natürlich nur bis zum Löschen) für die unbekannten Zugriffe von außerhalb meines Netzwerkes. So viel fällt da ja nicht an (gelegentliche Fernzugriffe via VPN, cloudmatic und die Alexa-Steuerung). Das sollte also das System nicht zumüllen. Man kann ja zyklisch aufräumen. Kann meine Annahme jemand bestätigen?
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
- jmaus
- Beiträge: 10265
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 519 Mal
- Danksagung erhalten: 2181 Mal
- Kontaktdaten:
Re: Zugrifffe auf das Webinterfache einer CCU/RM loggen/überwachen
Ruf einfachXel66 hat geschrieben: ↑08.11.2023, 02:44Zusatzfrage: Kennt sich jemand mit dem Logrotate aus? Wenn ich die /etc/logrotate.d/syslogd.conf richtig verstehe, werden alle *.log-Dateien bei einer Größe größer 2MB rotiert und eine neue .log angelegt.
[...]
Das sollte also das System nicht zumüllen. Man kann ja zyklisch aufräumen. Kann meine Annahme jemand bestätigen?
Code: Alles auswählen
/usr/sbin/logrotate -v /etc/logrotate.conf
Also ja, es werden alle *.log Dateien unter /var/log und unterverzeichnissen darunter mit in das logrotate einbezogen. Im übrigen wird es in Zukunft bei RaspberryMatic auch möglich sein eigene logrotate config files unter /usr/local/etc/logrotate.d abzulegen, sodass man dann eigene regeln zusätzlich zu den in der syslogd.conf definieren kann die dann auch teil des Backups werden.
RaspberryMatic 3.81.5.20250326 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / 

-
- Beiträge: 15461
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 698 Mal
- Danksagung erhalten: 1743 Mal
Re: Zugrifffe auf das Webinterface einer CCU/RM loggen/überwachen
Getan: Für mich sieht das funktional aus. Eine neue Logdatei wurde erkannt und ein "new state" angelegt. Sollte dann demnächst mit dabei sein. Die relevante Ausgabe:jmaus hat geschrieben: ↑08.11.2023, 08:04Ruf einfach
Auf der Kommandozeile auf um zu sehen was passiert.Code: Alles auswählen
/usr/sbin/logrotate -v /etc/logrotate.conf
Code: Alles auswählen
considering log /var/log/alien-access.log
Creating new state
Now: 2023-11-09 16:46
Last rotated at 2023-11-09 16:00
log does not need rotating (log size is below the 'size' threshold)
Gruß Xel66
-------------------------------------------------------------------------------------------
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
- MichaelN
- Beiträge: 11297
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 789 Mal
- Danksagung erhalten: 1946 Mal
Re: Zugrifffe auf das Webinterface einer CCU/RM loggen/überwachen
In der RaspberryMatic wird ja jetzt schon vor offenen Ports gewarnt und trotzdem wird das regelmäßig ignoriert. Das ist dann eben nur eine weitere Meldung die ignoriert wird.
Logs zur Beweissicherung wären im Nachhinein zwar auch hilfreich, aber wenn die CCU die schreiben kann, dann kann man sie von dort auch löschen.
Logs zur Beweissicherung wären im Nachhinein zwar auch hilfreich, aber wenn die CCU die schreiben kann, dann kann man sie von dort auch löschen.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 15461
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 698 Mal
- Danksagung erhalten: 1743 Mal
Re: Zugrifffe auf das Webinterface einer CCU/RM loggen/überwachen
Soweit richtig. Ein Neustart und sie wären ja auch weg. Darum habe ich mir auch Gedanken gemacht. Ziel ist es, dass bei einem Zugriff (schon beim ersten!) eine Warnung (Telegram mit IP) rausgeht und relevante Logs per Mail an einen separaten Account (nicht der Versand-Account auf der CCU) geschickt wird. Soweit funktioniert das auch alles. Dieses Verfahren (Log-Versand) praktiziere ich auch schon eine Weile z.B. bei staken Anstiegen des Duty Cycles.
Auf der Startseite steht derzeit immer die letzte "Alien"-IP und der Status der Überwachung (zyklisch per pgrep -x ausgelesen) in zwei Systemvariablen. Bei Änderung der Watchdog-Systemvariable wird sofort ein Programm getriggert, welches die IP umgehend versehen mit einer Warnung per Telegram versendet. Zeitverzögert geht das alien-access.log per Mail raus, in dem ich hoffentlich das Angriffsmuster sehe. Ich filtere derzeit ein paar lokale IPs sowie meinen Zugriff per meine-homematic raus. Der Rest wären eben unautorisierte Zugriffe (zumindest auf die WebUI).
Gruß Xel66
-------------------------------------------------------------------------------------------
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen
-
- Beiträge: 47
- Registriert: 09.02.2015, 13:20
- Hat sich bedankt: 83 Mal
- Danksagung erhalten: 2 Mal
Re: Zugrifffe auf das Webinterface einer CCU/RM loggen/überwachen
Ausser man macht remote logging (Einstellungen ->Sstemsteuerung ->ZentralenWartung "Fehlerprotokoll: Syslog-Server Adresse")

jOERG
- Baxxy
- Beiträge: 13219
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Berlin
- Hat sich bedankt: 806 Mal
- Danksagung erhalten: 2897 Mal
Re: Zugrifffe auf das Webinterface einer CCU/RM loggen/überwachen
Werden die lighttpd-Logs überhaupt an den Syslogserver weitergeleitet?
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen