Script ausführen bei Ereignis im Protokoll-Center

Papi32

Benutzer
Mitglied seit
28. Aug 2015
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Hallo Zusammen,

ich rätsele seit geraumer Zeit an einer Lösung:

Kompletter Hintergrund, falls jemand das Rad schon erfunden hat:
Für den Fall, dass sich ein eher unbeliebter Internetnutzer einen Weg in mein NAS bahnen möchte, möchte ich bei einem im Protokoll-Center erfassten Ereignis wie "Host [...] was blocked via [DSM]" über meinen ioBroker oder RaspberryMatic meine Fritz!Box neu starten lassen, um eine neue IP-Adresse vom Provider zu erhalten. Erfahrungsgemäß hören nämlich danach die unerwünschten Einbruchsversuche auf.

Wenn ein bestimmtes Ereignis im Protokoll-Center der Synology erscheint, möchte ich also auf dem NAS selbst ein Script ausführen (lassen), mit dem ich dann etwas z.B. per http im Netzwerk triggere. Was dahinter kommt, ist erstmal egal, dafür finde ich schon eine Lösung über ein Gerät oder eine Variable, die ich dann schalte bzw. verändere.

Mir fehlt aber hier eine Idee, wie ich die Erkennung im SysLog umgesetzt bekomme. Wie komme ich an die Ereignisse heran, um zyklisch zu prüfen, ob ein bestimmter Inhalt innerhalb einer bestimmten Zeit darin vorkommt?

Danke und Gruß
Michael
 

CoffeeJunk

Benutzer
Contributor
Mitglied seit
06. Nov 2013
Beiträge
97
Punkte für Reaktionen
15
Punkte
8
Für den Fall, dass sich ein eher unbeliebter Internetnutzer einen Weg in mein NAS bahnen möchte, möchte ich bei einem im Protokoll-Center erfassten Ereignis wie "Host [...] was blocked via [DSM]" über meinen ioBroker oder RaspberryMatic meine Fritz!Box neu starten lassen, um eine neue IP-Adresse vom Provider zu erhalten.
Also, außer dass du da einen ca. 5 Minuten langen Ausfall produzierst, bringt das in Punkto Sicherheit meiner Meinung gar nichts....
Ist doch gut, wenn die IP geblockt ist, dann hörst du von dieser IP nichts mehr.

Wenn man sein NAS am Internet betreibt, muss man damit leben, dass öfters einer an der Tür klingelt. Der nächste PortScanner findet dich eh wieder...

Und bei hartnäckigen Fällen blocke ich über die Firewall generell.... wenn du nur Deutsche Anwender auf deine Syno lassen willst, was spricht dagegen über GeoBlocking diverse Länder zu sperren?

Seit ich dies gemacht habe, ist bis auf vereinzelte Versuche Ruhe.... und die, die da übrig bleiben kann man immer noch permanent sperren über die Firewall.

Mit einem Router Neustart oder dem beziehen einer neuen Adresse straft du nur dich selber ab....da sind gescheite Passwörter & 2FA die bessere Lösung.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.117
Punkte für Reaktionen
256
Punkte
129
Du könntest dir eine Aufgabe im Aufgabenplaner machen, und das versuchen via bash zu lösen. Für erste Versuche musst du mal per ssh aufs NAS und dort die Befehle ausführen.
Die Befehle kannst du dann in Skript packen und im Aufgabenplaner einfach das Skript aufrufen.

Du musst zunächst mal rausfinden, welche Log Datei deinen Eintrag enthält. Dafür mal

grep "was blocked" /var/log/* bzw. gibt es teilweise von syno noch Unterordner, dann evt. auch mit /var/log/*/* mal das richtige Log suchen.

Dann musst du dir überlegen, wie du dann rausfindest, ob ein Event neu dazu kam. Entweder den letzten Timestamp rausholen und speichern (in einer Datei), oder versuchen das Log entsprechend zu filtern.
Wenn du das dann mit grep/sed/awk gefiltert hast, und es kommt ein Event raus, dann per wget oder sonst was die nächste Aktion trigern
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.505
Punkte für Reaktionen
1.342
Punkte
234
Also, außer dass du da einen ca. 5 Minuten langen Ausfall produzierst, bringt das in Punkto Sicherheit meiner Meinung gar nichts....
Er möchte seinen DSL-Anschluss bestimmt nicht neu synchronisieren sondern lediglich neu verbinden. Das geht wesentlich schneller.
 

Papi32

Benutzer
Mitglied seit
28. Aug 2015
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Hallo Zusammen,
ja richtig, ich werde die Box vermutlich dann nur neu verbinden, um eine neue IP zu bekommen. Darum kümmere ich mich, wenn das Ei gelegt ist.
Beim letzten, manuellen Mal hat es nichts genutzt, erst nach einem Neustart der Box hat es geklappt. Ich hatte allerdings nicht auf die IP geachtet, vermutlich hatte ich beim Neuverbinden die selbe IP wiederbekommen.

Eine Ländersperre ist Sinn-frei, denn einerseits muss ich zusehen, dass ich von diversen Ländern aus selber auf meine Kiste komme (bin ein sprunghafter Typ) und andererseits kommen die Herrschaften, für deren negative Beschreibung mir hier vermutlich nicht genug Zeichen zur Verfügung stehen, in der Regel alle 3 Minuten mit einer anderen IP aus einem anderen Land, da sie VPN-Tools verwenden, die im 3-Minuten-Takt die Verbindung wechseln und damit eine andere Herkunft vortäuschen - im blödesten Fall Deutschland.
Dass ich nach dem Blocken also von dieser IP nichts mehr höre ist zwar korrekt, aber nur, weil der Herr:in dann eine andere IP hat.
Üblicherweise habe ich innerhalb von 3 Stunden 60 Einbruchsversuche zu verzeichnen und wenn ich dann meine IP wechsele, habe ich erstmal wieder für ein paar Tage Ruhe. Glücklicherweise kommen die Vögel wohl wirklich immer per Scanner über meine IP und nicht über meinen DNS, das wäre dann kaum noch abzufangen.
2FA habe ich aktuell versuchsweise aktiviert, aber für meine ansonsten noch aktiven Dienste (ich habe ziemlich viel "Strom" in der Bude) ist das verdammt schädlich, das bekomme ich den Dingern kaum beigebracht, ich teste noch. (Ja, stark eingeschränkte Zusatzkonten ohne 2FA teste ich auch).

In der Datei var\log\sysnotify.log habe ich nun einen brauchbaren Eintrag gefunden, der beim Blocken eines Eindringlings angelegt wird:

2021-09-22T07:32:55+02:00 Syno login.cgi: sysnotify_send_notification.c:641 SYSNOTIFY: [AutoBlockAdd] was sent to desktop,mail,mobilelogin.cgi: sysnotify_send_notification.c:641 SYSNOTIFY: [AutoBlockAdd] was sent to desktop,mail,mobile

Ist zwar nicht unbedingt der Eintrag, den ich gesucht habe, aber immerhin brauchbar, um als Trigger genutzt zu werden.

Kann mir jemand helfen, diesen nun auszufiltern und als Trigger zu nutzen?
grep/sed/awk und wget sind echt nix für einen eingefleischten Windows-User mit nur marginalen Linux-Kenntnissen. :)
Ich würde zunächst testen, einen Neustart der Fritz!Box nach 5 Vorkommnissen in 30 Minuten auszulösen, das sollte eine sinnvolle Grenze sein.

Danke und Gruß
Michael
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.505
Punkte für Reaktionen
1.342
Punkte
234
Kann es sein, das du noch die Standardports verwendest?
Wenn du die in einen hohen fünfstelligen änderst, lebst du zwar nicht sicherer, aber viel ruhiger.
 

Papi32

Benutzer
Mitglied seit
28. Aug 2015
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Die Meisten habe ich angehoben, aber ein paar habe unverändert gelassen, weil ich nicht weiß, welche Auswirkungen das z.B. in den Apps haben wird.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.505
Punkte für Reaktionen
1.342
Punkte
234
Du brauchst doch nur den Port auch in der App anzugeben. Einfach hinter der Adresse :Port

Die größte Auswirkung hat wohl der DSM-Port 5001.
 

Papi32

Benutzer
Mitglied seit
28. Aug 2015
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Wie gesagt, bei den Meisten habe ich das ja, aber diverse Dinge MyMedia4Alexa-Server, Siri/Homebridge, ioBroker-Syno-Adapter, Homematic, Kodi, verschiedene Backup-Systeme, Wettersysteme, Email, Anwesenheitserkennungen/Geofence-Server, Kamerasystem... finden das teilweise gar nicht mal so lustig. Also ich nutze das NAS wirklich auf Anschlag.
Ganz davon abgesehen muss ich mir diese ganzen Anpassungen auch merken, sonst stehe ich irgendwann auf meinem eigenen Schlauch, wenn ich rätsele, warum auf einmal irgendetwas nicht mehr geht.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.505
Punkte für Reaktionen
1.342
Punkte
234
Zum einen sollte man sich das natürlich dokumentieren (z.B. in einen Passwortmanager) und zum anderen musst du dir bewusst sein, dass die Blockierung, die du auswerten möchtest, nur dein Synologykonto betreffen, aber nicht die Drittanbieter Software.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.117
Punkte für Reaktionen
256
Punkte
129
Bevor du groß bastelst.
Schon mal an vpn gedacht? Und dann grundsätzlich alles vom NAS nur via internes Netz oder vpn.
 

Papi32

Benutzer
Mitglied seit
28. Aug 2015
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Na sicher, ich nutze sogar mehrere gleichzeitig. Damit kommt aber nicht jede Anwendung oder Umgebung klar.
Gerne würde ich wieder zu meiner Problematik zurückkehren, wenn mir da jemand helfen könnte.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.117
Punkte für Reaktionen
256
Punkte
129
Zur Problematik hab ich jetzt leider nur mehr wenig beizutragen. So Skript mäßig müsste ich mich genauso einlesen leider.

Aber nochmal, wozu benötigst du zB. Dsm:5001 im Internet? Das würde sich zB. via vpn einfach abschotten lassen. Aber ich habe keinen Überblick, welche Dienste da wo laufen und warum die extern verfügbar sein müssen.

Je weniger nach außen, desto weniger angreifbar und dann wird auch der ip Wechsel evt. obsolete? Ist doch eh @ topic. Aber beurteilen kann ich das ohne weitere Infos nicht. Iobroker, Homematic und co gehören für mich zB nicht nach außen.
 

Papi32

Benutzer
Mitglied seit
28. Aug 2015
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Glaub´ mir, es gibt Gründe. VPN geht z.B. nicht über den Proxy meines häufig genutzten Rechenzentrums.
VPN geht auch in vielen Gast-WLANs unterwegs nicht, weil die Betreiber oft der Meinung sind, dass sie mit Restriktionen wildester Art alles viel sicherer machen und LTE stattdessen ist z.B. in der Vulkan-Eifel ein Fremdwort, da gibt´s nur Ätsch (EDGE)! Wie es auf Norderney aussieht, kann ich in Kürze berichten. Saudi-Arabien ist da deutlich besser versorgt, aber da gibt´s auch keine Strahlenschützer, die Sendemasten mit mehr als 0,001mW unterbinden. Man muss halt mit dem zurechtkommen, was man vorfindet.
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.117
Punkte für Reaktionen
256
Punkte
129
Wie gesagt fehlen sämtliche Backgrounds. Redest du da eher von Firma/Gewerbe? Rechenzentrum nutzt auch nicht jeder.

Im Privatbereich hab ich mit meinem openvpn noch in keinem Land Probleme gehabt, da ich es über 443 (https port) betreibe.
 

Papi32

Benutzer
Mitglied seit
28. Aug 2015
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Du lässt nichts unversucht, was? :)
Die iOS-App "PocketControl" z.B. kann kein OVPN.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.505
Punkte für Reaktionen
1.342
Punkte
234
Sorry, aber ich sehe hier auch keinen Vorteil. Wenn die VPN-Ports gesperrt sind, sind es meist auch die exotischen Ports für irgendwelche Anwendungen (meiner Wahrnehmung nach). Also ein Verzicht auf VPN hilft dir dann auch nicht.

Aber was viel entscheidender für dein Vorhaben ist: Du wirst keine fehlgeschlagenen Loginversuche in deinen reichlich verwendeten Drittanbieterapps im obigen Log auswerten können. Du musst dir irgendeine andere Absicherung überlegen.
 

Papi32

Benutzer
Mitglied seit
28. Aug 2015
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Hallo Stephan,
nimm es mir nicht übel, wenn ich die wohl gut gemeinte Diskussion nicht fortsetze, ich benötige eine Lösung für meine eingangs erwähnte Herausforderung.
Meine Kompetenz ist weitreichend genug, um Alternativen bereits umfangreich beleuchtet haben zu können, reicht nur nicht für die Linux-Geschichte aus.
Danke und Gruß
Michael
 

tproko

Benutzer
Sehr erfahren
Mitglied seit
11. Jun 2017
Beiträge
2.117
Punkte für Reaktionen
256
Punkte
129
PocketControl" z.B. kann kein OVPN.

ich werd mich dann ausklinken. Aber irgendwo haben wir hier dann trotzdem ein Verständnis Problem. Ob du oder ich versuche ich grad zu verstehen ;)

Homematic/Pocketcontrol app benötigt mMn kein openvpn. Dein iphone verbindet sich mit openvpn und dann bist du im Heimnetz.

Dann kannst du mit Safari, Pocketcontrol, ds video usw. einfach die internen IPs verwenden und nichts muss da nach außen.

Vielleicht verstehe ich dich da aber auch falsch.

Den Skript-Teil lasse ich lieber jemanden der da mehr Ahnung hat. Sed und grep geht grad noch die Basics, aber awk und die Filterung der letzten 30 Minuten aus dem Log ist nicht mehr meine Welt ?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.505
Punkte für Reaktionen
1.342
Punkte
234
So sollte es gehen. Über die zwei Variablen kannst du dein Intervall steuern. Was ich jetzt noch nicht genau getestet habe, ist, ob die Zeitzonenkorrektur im Log korrekt eingerechnet wird.

Bash:
#!/bin/bash

BlockCount=5    # Anzahl der Blockierungen im Zeitraum
TimeArea=30     # überwachter Zeitraum in Minuten

if [ $(date -d $(cat /var/log/sysnotify.log | grep AutoBlockAdd | tail -n$BlockCount | head -n1 | awk '{print $1}') +%s ) -gt  $(date -d "-$TimeArea minutes" +%s) ]; then
    echo "Ereignis trifft zu - triggere Aufgabe …"
    # mache, was du möchtest, z.B.:
    php fb_tools.php fritz.box reconnect
else
    echo "kein Trigger"
fi


Was tut das Skript?
  • es werden alle Einträge in sysnotify.log gefiltet, in denen AutoBlockAdd vorkommt.
  • nur die letzten (neusten) Einträge werden verwendet - die Anzahl wird durch BlockCount definiert
  • vom ältesten Eintrag davon wird die Uhrzeit in Sekunden ausgelesen und mit der aktuellen Zeit minus den Minuten aus TimeArea verglichen
  • ist die erste Zeit / Sekunden größer, so ist die Bedingung erfüllt

PS:
Die Internetneuverbindung lässt sich dann leicht mit den Fritz!Box Tools erledigen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: plang.pl und tproko


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat