Windowslogs (Account locked) mit Rsyslog
Hallo zusammen...
verzeiht mir, dass ich nicht sicher war/bin, was nun die richtige Kategorie ist, da es ein Mix aus allem eigentlich ist... und ja ich muss vermutlich etwas ausholen.
Ok... was haben wir (ich) vor...
- Windows Logs an Rsyslog schicken
- Beim Rsyslog eine Aktion generieren die mir bei Auftreten eines Strings mir eine Mail schickt.
Warum machen wir das?
Wir sind mit knapp 1400 Mann doch schon ein größeres Unternehmen... es gibt sicher andere Tools, ist mir klar, die mir schneller und besser helfen, aber ich bitte darum bei dem Thema hier zu bleiben, denn nicht immer bekommt man die Mittel gestellt und versuche somit auf kostenlosen oder kostengünstigen Weg das Thema schnell aus der Welt zu schaffen. Fakt ist... wie bei einigen von euch... ein User sperrt sich des öfteren... das Reversengineering kann manchmal echt nervig sein. Ich habe es daher bislang so gehandhabt, dass wenn ein Benutzer sich sperrt, dass ich noch "vor" Entsperrung das Tool "lockoutstatus.exe" bemühe, bei dem ich relativ schnell ersehen kann zu welcher Zeit und von welchem DC die Sperre ausgesprochen wurde um dort wiederum die Maschine zu erkennen, woher es kam um zur Not dort die Suche fortsetzen zu können.
Nach 5x falschem Passwort wird dicht gemacht und NICHT mehr automatisch geöffnet! (Vorgabe von oben)... also habe ich einen Testaccount, mit dem ich eben mal 5x das falsche PW eingegeben habe. Mit Lockoutstatus.exe sehe ich auf welchem DC... und dort wird aber bei "allen" 5 Versuchen das gleiche Event geloggt 4776 mit Errorcode C000006A (was soviel heißt wie:"Richtiger Name aber falsches PW") wo er im Grunde ja recht hat... ich habe aber KEIN einzige Event gefunden (auch die nachfolgenden Events) die sagen "nun ist der Benutzer gesperrt"... erst bei einem 6ten Versuch, NACHDEM er ja schon eindeutig gesperrt ist kommt der Errorcode C0000234 (der aber auch nur aussagt, dass der Benutzer gelockt ist.) Es wäre ja zuviel verlangt, wenn man dazu ein 100% eindeutiges Event hätte. Jetzt kommt es erschwerend hinzu, dass unsere Leute im 1st-Level die Leute entsperren und uns im Nachhinein dann die Info geben... du da sperrt sich dauernd jemand... kannst mal gucken...
Meine Idee... die "eigentlich" (oder zumindest halbt) funktioniert... ich habe mir eben schnell eine Linux (Debian 10) Maschine aufgesetzt, da ist default eh Rsyslog am Start... MariaDB drauf... und schicke die Windowslogs an die Syslogmaschine.
Auf der Syslogmaschine habe ich folgendes Script, auf was reagiert werden soll, gebastelt:
Jauw... soweit so gut... er schickt Mails... passt soweit... sogar in der Tat zu dem Errorcode, der im "if-Bereich" angegeben wurde ABER nicht zu allen Meldungen OBWOHL die definitiv vorhanden sind.
Ich habe das gegengeprüft mit dem ebenfalls installierten LogAnalyzer... d.h. 2x User werden gemeldet... 2 weitere nicht, obwohl die den gleichen ErrorCode drin haben... vor allem habe ich das Gefühl (kann ich aber nicht bestätigten) dass die User mehrmals gemeldet werden... da habe ich auch kein Plan, wie ich das bei einer einmaligen Meldung belassen kann, denn in dem Script kann ich ja nur sagen, melde bei "dem auftretetenden Event" alle 15 Minuten. Geht er dann echt alle 15 Minuten die gleichen Events durch? Das wäre auch etwas fail.
Daher meine zwei Fragen...:
a) Bin ich einfach nur zu doof oder gibt es wirklich KEIN 100%iges "Benutzer wurde jetzt gesperrt" - Event mit der ID xyz oder so. Ich meine.. woher weiß "lockoutstatus.exe" das denn... er weiß ja auch "wann und von wem" woher hat er diese Info?
b) Hat jemand eine Idee, warum er Mails schickt, aber nicht bei allen, obwohl die den gleichen Inhalt haben? Ich gehe mal davon aus, dass er den Messagebereich validiert?
Sorry für den vielen Text, aber ich denke die Infos waren wichtig.
Ich danke.
Gruß M!ke
verzeiht mir, dass ich nicht sicher war/bin, was nun die richtige Kategorie ist, da es ein Mix aus allem eigentlich ist... und ja ich muss vermutlich etwas ausholen.
Ok... was haben wir (ich) vor...
- Windows Logs an Rsyslog schicken
- Beim Rsyslog eine Aktion generieren die mir bei Auftreten eines Strings mir eine Mail schickt.
Warum machen wir das?
Wir sind mit knapp 1400 Mann doch schon ein größeres Unternehmen... es gibt sicher andere Tools, ist mir klar, die mir schneller und besser helfen, aber ich bitte darum bei dem Thema hier zu bleiben, denn nicht immer bekommt man die Mittel gestellt und versuche somit auf kostenlosen oder kostengünstigen Weg das Thema schnell aus der Welt zu schaffen. Fakt ist... wie bei einigen von euch... ein User sperrt sich des öfteren... das Reversengineering kann manchmal echt nervig sein. Ich habe es daher bislang so gehandhabt, dass wenn ein Benutzer sich sperrt, dass ich noch "vor" Entsperrung das Tool "lockoutstatus.exe" bemühe, bei dem ich relativ schnell ersehen kann zu welcher Zeit und von welchem DC die Sperre ausgesprochen wurde um dort wiederum die Maschine zu erkennen, woher es kam um zur Not dort die Suche fortsetzen zu können.
Nach 5x falschem Passwort wird dicht gemacht und NICHT mehr automatisch geöffnet! (Vorgabe von oben)... also habe ich einen Testaccount, mit dem ich eben mal 5x das falsche PW eingegeben habe. Mit Lockoutstatus.exe sehe ich auf welchem DC... und dort wird aber bei "allen" 5 Versuchen das gleiche Event geloggt 4776 mit Errorcode C000006A (was soviel heißt wie:"Richtiger Name aber falsches PW") wo er im Grunde ja recht hat... ich habe aber KEIN einzige Event gefunden (auch die nachfolgenden Events) die sagen "nun ist der Benutzer gesperrt"... erst bei einem 6ten Versuch, NACHDEM er ja schon eindeutig gesperrt ist kommt der Errorcode C0000234 (der aber auch nur aussagt, dass der Benutzer gelockt ist.) Es wäre ja zuviel verlangt, wenn man dazu ein 100% eindeutiges Event hätte. Jetzt kommt es erschwerend hinzu, dass unsere Leute im 1st-Level die Leute entsperren und uns im Nachhinein dann die Info geben... du da sperrt sich dauernd jemand... kannst mal gucken...
Meine Idee... die "eigentlich" (oder zumindest halbt) funktioniert... ich habe mir eben schnell eine Linux (Debian 10) Maschine aufgesetzt, da ist default eh Rsyslog am Start... MariaDB drauf... und schicke die Windowslogs an die Syslogmaschine.
Auf der Syslogmaschine habe ich folgendes Script, auf was reagiert werden soll, gebastelt:
# If a specific event ID is found, send an alert email
$ModLoad ommail
$ActionMailSMTPServer <IP-Adresse vom Exchange>
$ActionMailFrom <Sende-Mailadresse>
$ActionMailTo <Empfänger-Mailadresse>
$template mailSubject,"User locked on %hostname%"
$template mailBody,"Ein Benutzer wurde auf Maschine %hostname% gesperrt \r\n\r\n%msg%"
$ActionMailSubject mailSubject
# Only send an email every 15 minutes
$ActionExecOnlyOnceEveryInterval 900
# This if/then must all be on one line
if $msg contains '0xC0000234' then :ommail:;mailBody
Jauw... soweit so gut... er schickt Mails... passt soweit... sogar in der Tat zu dem Errorcode, der im "if-Bereich" angegeben wurde ABER nicht zu allen Meldungen OBWOHL die definitiv vorhanden sind.
Ich habe das gegengeprüft mit dem ebenfalls installierten LogAnalyzer... d.h. 2x User werden gemeldet... 2 weitere nicht, obwohl die den gleichen ErrorCode drin haben... vor allem habe ich das Gefühl (kann ich aber nicht bestätigten) dass die User mehrmals gemeldet werden... da habe ich auch kein Plan, wie ich das bei einer einmaligen Meldung belassen kann, denn in dem Script kann ich ja nur sagen, melde bei "dem auftretetenden Event" alle 15 Minuten. Geht er dann echt alle 15 Minuten die gleichen Events durch? Das wäre auch etwas fail.
Daher meine zwei Fragen...:
a) Bin ich einfach nur zu doof oder gibt es wirklich KEIN 100%iges "Benutzer wurde jetzt gesperrt" - Event mit der ID xyz oder so. Ich meine.. woher weiß "lockoutstatus.exe" das denn... er weiß ja auch "wann und von wem" woher hat er diese Info?
b) Hat jemand eine Idee, warum er Mails schickt, aber nicht bei allen, obwohl die den gleichen Inhalt haben? Ich gehe mal davon aus, dass er den Messagebereich validiert?
Sorry für den vielen Text, aber ich denke die Infos waren wichtig.
Ich danke.
Gruß M!ke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 666014
Url: https://administrator.de/contentid/666014
Ausgedruckt am: 25.11.2024 um 23:11 Uhr
2 Kommentare
Neuester Kommentar
ABER nicht zu allen Meldungen OBWOHL die definitiv vorhanden sind.
b) Hat jemand eine Idee, warum er Mails schickt, aber nicht bei allen, obwohl die den gleichen Inhalt haben? Ich gehe mal davon aus, dass er den Messagebereich validiert?
Einfach mal in die Doku schauen dann findet man dortb) Hat jemand eine Idee, warum er Mails schickt, aber nicht bei allen, obwohl die den gleichen Inhalt haben? Ich gehe mal davon aus, dass er den Messagebereich validiert?
so if you would like to receive mails at most once every two hours, include a
action.execonlyonceeveryinterval="7200"
in the action definition. Messages sent more frequently are simply discarded.
action.execonlyonceeveryinterval="7200"
in the action definition. Messages sent more frequently are simply discarded.
Willst du für "jede" Nachricht eine Mail darfst du den Parameter nicht definieren. Weil in dem definierten Intervall weitere eintreffende Meldungen verworfen werden.
a) Bin ich einfach nur zu doof oder gibt es wirklich KEIN 100%iges "Benutzer wurde jetzt gesperrt" - Event mit der ID xyz oder so. Ich meine.. woher weiß "lockoutstatus.exe" das denn... er weiß ja auch "wann und von wem" woher hat er diese Info?
Windows event ID 4740 - A user account was locked out.Gruß w.