MikroTik-Script: Benachrichtigung über die Geräteanmeldung

Das Skript sendet eine Benachrichtigung über die erfolgreiche Anmeldung und das Ende der Benutzersitzung auf dem MikroTik-Gerät. Die Benachrichtigung wird per E-Mail oder Telegramm gesendet.

Es gibt viele Skripte im Internet, mit denen Sie das MikroTik-Geräteprotokoll analysieren können, aber alle sind riesig und schwer zu verstehen. Ich [Yun Sergey] habe ein einfaches Skript geschrieben, um dieses Problem zu lösen.

Das Skript sucht nach „account“-Ereignissen im MikroTik-Geräteprotokoll seit seiner letzten Ausführung. Erstellt eine Nachricht, in der alle Ereignisse aufgelistet sind, die seit dem letzten Start aufgetreten sind.

Das Skript erstellt und verwendet die globale Variable ParseLogAccountEndArrayID und speichert die ID des letzten Elements aus dem Array von Datensätzen mit dem Betreff „account„.

Die folgenden Funktionen werden zum Senden von Benachrichtigungen verwendet:

Beispiel Nachrichten:

  • user USER logged in from E4:6F:13:AA:58:2D via winbox – Der Benutzer ist mit WinBox am Gerät angemeldet;
  • user USER logged in via local – Benutzer hat sich mit der MAC-Adresse des Geräts am Gerät angemeldet;
  • user USER logged in from 192.168.1.9 via telnet – Benutzer hat das interne MikroTik-Terminal gestartet.

Beispiel für eine E-Mail-Nachricht:

E-Mail-Benachrichtigung, wenn sich der Benutzer erfolgreich beim MikroTik-Gerät anmeldet

Telegram message example:

Telegram Nachricht - Benachrichtigung über die Benutzeranmeldung am MikroTik-Gerät

Artikel in anderen Sprachen:
?? – MikroTik Script: Device Login Notification
?? – MikroTik Script: Notificación de inicio de sesión del dispositivo
?? – MikroTik Скрипт: Уведомление о входе на устройство
?? – Script MikroTik: Notification de connexion de l’appareil
?? – MikroTik-script: Melding apparaat aanmelding

Skript erstellen

Die folgenden Berechtigungen sind erforderlich, um das Skript ausführen: read, write, test, policy.

[System] -> [Scripts] -> [+] -> [Name: ParseLogAccountEvents] -> [Policy: read, write, test, policy]

Script code:

:local DeviceName [/system identity get name];
:local Time [/system clock get time];
:local Date [/system clock get date];
:local EmailMessageText;
:local TelegramMessageText;

:global ParseLogAccountEndArrayID;

:local IDsEventsAccount [/log find where  topics ~ "account"];

:local LenArrayIDs [:len $IDsEventsAccount];
:local StartArrayID [:find $IDsEventsAccount $ParseLogAccountEndArrayID];
:local EndArrayID ($IDsEventsAccount -> ($LenArrayIDs-1));

:if ($EndArrayID != $ParseLogAccountEndArrayID and [:tobool $ParseLogAccountEndArrayID] ) do={

    :for KeyArray from=($StartArrayID+1) to=($LenArrayIDs-1) do={
        :local IDMessage ($IDsEventsAccount ->$KeyArray );
        :set EmailMessageText "$EmailMessageText \n\r  $[/log get number=$IDMessage time] - $[/log get number=$IDMessage message];";
        :set TelegramMessageText "$TelegramMessageText %0D%0A  $[/log get number=$IDMessage time] - $[/log get number=$IDMessage message];";
        }

    # START SEND EMAIL
    :local SendTo "notify@mhelp.pro";
    :local Subject "\F0\9F\94\93 AUTH: $DeviceName [$Date $Time]";
    :local MessageText "$EmailMessageText";
    :local FileName "";
    :local SendEmail [:parse [/system script get SendEmailFunction source]];
    $SendEmail SendTo=$SendTo TextMail=$MessageText Subject=$Subject FileName=$FileName;
    # END SEND EMAIL

    # START SEND TELEGRAM
    :local MessageText "\F0\9F\94\93 <b>$DeviceName: AUTH</b> $TelegramMessageText";
    :local SendTelegramMessage [:parse [/system script  get MyTGBotSendMessage source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END SEND TELEGRAM
}

:set ParseLogAccountEndArrayID $EndArrayID;
# YunSergey [MHelp.pro]
MikroTik-Script: Benachrichtigung über die Geräteanmeldung

Add script to Scheduler

Die folgenden Berechtigungen sind erforderlich, um das Skript ausführen: read, write, test, policy.

[System] -> [Schedule] -> [+] -> [Name: ParseLogAccountEvents] —>  [Interval: 00:05:00] -> [Policy: read, write, policy, test]

Or run in terminal:

/system scheduler add name=ParseLogAccountEvents policy=read,write,policy,test on-event="/system script run ParseLogAccountEvents" interval=5m comment="Analyze the log account and send login / logout events"
Fügen Sie dem MikroTik-Scheduler das Skript "Benutzeranmeldung Benachrichtigung" hinzu

Sie können jetzt die Kontrolle über Ihre MikroTik-Geräte erhöhen, indem Sie die Anmelde- und Abmeldezeiten der Geräteadministratoren steuern. Konfigurieren Sie außerdem die Ausführung von Aktionen, wenn sich der Benutzer anmeldet. Erstellen Sie beispielsweise eine Sicherungskopie der Einstellungen oder eine Kopie der Gerätekonfiguration.


? So erstellen Sie ein Skript – In diesem Artikel wurde die Benachrichtigung über die Benutzeranmeldung am MikroTik-Gerät und das Senden einer Benachrichtigung per E-Mail oder Telegrammnachricht erläutert. Ich hoffe, dass Sie jetzt die Kontrolle über MikroTik-Geräte verbessern können, indem Sie die erfolgreichen Anmeldungen von Administratoren am Gerät verfolgen oder die Aktionen eines Eindringlings rechtzeitig erkennen. Wenn Sie jedoch beim Konfigurieren des Skripts auf Probleme stoßen, können Sie diese in die Kommentare eintragen. Ich werde versuchen zu helfen.

Das Skript wird überprüft: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.47.8 (stable).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert