MikroTik-Script: Benachrichtigung über Anmeldefehler

Das nützliche MikroTik-Skript dient zum Empfangen einer E-Mail-Benachrichtigung oder einer Telegram nachricht, wenn im MikroTik-Geräteprotokoll ein Anmeldefehler für eine Benutzermeldung angezeigt wird („login failure for user …„). Ermöglicht es Ihnen, sich über Versuche zu informieren, ein Kennwort brutal zu erzwingen, und gibt die IP- oder MAC-Adresse des Geräts an, das versucht, sich anzumelden, sowie die Anmeldung, mit der versucht wird, sich beim Gerät anzumelden.

Beispiel-E-Mail - Benachrichtigung über Anmeldefehler am MikroTik-Gerät

Inhalt

  1. Skript Beschreibung
  2. Skript erstellen
  3. Script Code
  4. Skript zum Scheduler hinzufügen

Artikel in anderen Sprachen:
?? – MikroTik Script: Failed login attempt notification
?? – MikroTik Script: Notificación de intento de iniciar sesión fallido
?? – MikroTik Скрипт: Уведомление о ошибке входа в систему
?? – Script MikroTik: Notification de tentative de connexion échouée
?? – MikroTik-script: Melding van mislukte inlogpoging

Skript Beschreibung

Das Skript analysiert das Geräteprotokoll, um nach Ereignissen „login failure for user“ zu suchen, sendet eine E-Mail oder eine Telegram nachricht, wenn Ereignisse gefunden werden.

Analysiert Ereignisse seit der letzten Startzeit (ParseLogLoginEndArrayID-Variable).

Die folgenden Funktionen werden zum Senden von Benachrichtigungen verwendet:

Das Skript ruft Funktionen mit den Namen EMailSendMessageFunction, TGBotSendMessageFunction auf. Wenn Ihre Funktionen einen anderen Namen haben, ändern Sie diesen im Skript.

Beispiel Telegram Meldung - Benachrichtigung über Anmeldefehler am MikroTik-Gerät

✏️ Wenn Sie mit Ihrem aktuellen Login häufige Anmeldeversuche feststellen, ist das Login möglicherweise Angreifern bekannt geworden. Am besten ändern Sie das Login.

Skript erstellen

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

[System] -> [Scripts] -> [+] -> [Name: ParseLogLoginFailure] -> [Policy: read, write, test, policy]
MikroTik-Script - Fehlgeschlagener Anmeldeversuch Benachrichtigung beim MikroTik-Router

Script Code

# Name: ParseLogLoginFailure v1.1
# Description: Device login failed notification
# Author: Yun Sergey [MHelp.pro] © 2021
# License: GPL-3.0 License
# Description, purpose and questions: https://mhelp.pro/mikrotik-script-failed-login-attempt-notification/
# More scripts Mikrotik: https://mhelp.pro/tag/mikrotik-scripts/
# Verified: RouterBOARD 952Ui-5ac2nD, RouterOS 6.48 (stable).

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

:global ParseLogLoginEndArrayID;

:local IDsEvents [/log find where topics~"critical" message~"login failure"];

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

#:log info "Script ParseLogLoginFailure: running.";

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

    #:log info "Script ParseLogLoginFailure: new events found.";

    :for KeyArray from=($StartArrayID+1) to=($LenArrayIDs-1) do={
        :local IDMessage ($IDsEvents ->$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];";
        }

    :set ParseLogLoginEndArrayID $EndArrayID;

    #:log info "Script ParseLogLoginFailure: events processed. Sending notifications.";

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

    # START SEND TELEGRAM
    :local MessageText "\E2\9B\94 <b>$DeviceName: AUTH</b> $TelegramMessageText";
    :local SendTelegramMessage [:parse [/system script get TGBotSendMessageFunction source]];
    $SendTelegramMessage MessageText=$MessageText;
    # END SEND TELEGRAM
} else={
#:log info "Script ParseLogLoginFailure: no new messages found.";
};

#:log info "Script ParseLogLoginFailure: script completed successfully.";
:set ParseLogLoginEndArrayID $EndArrayID;

Skript zum Scheduler hinzufügen

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

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

Oder im Terminal ausführen:

/system scheduler add name=ParseLogLoginFailure policy=read,write,policy,test on-event="/system script run ParseLogLoginFailure" interval=5m comment="Parse device log and sending failed login events"
MHelp.pro: Hinzufügen eines Skripts zum MikroTik Task Scheduler

? Sie können Firewall-Regeln so konfigurieren, dass Brute-Force-Angriffe blockiert werden – MikroTik-Schutz (grundlegende Geräte Sicherheitseinstellung).

? In diesem Artikel wurde erläutert, wie ein Skript erstellt wird – Benachrichtigung über fehlgeschlagene Anmeldeversuche im MikroTik-Router. Ich hoffe, dass Sie jetzt die Kontrolle über MikroTik-Geräte verbessern können, indem Sie Nachrichten über fehlgeschlagene Anmeldeversuche empfangen, IP-Adressen von Geräten und verwendete Anmeldungen verfolgen und 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: RouterBOARD 952Ui-5ac2nD, RouterOS 6.48 (stable).

Schreibe einen Kommentar

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