Скрипт блокировки ip-адресов, с которых пытаются подобрать пользователей роутера

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
mex79
Сообщения: 26
Зарегистрирован: 22 мар 2017, 12:26

Тема интересная, подпишусь. Сейчас есть одиночные попытки подключения L2TP но пока вижу максимум две попытки, единственное что перед сервером стоит kerio и тоже неплохо режет в том числе по geoip по направлениям откуда мы точно не ждем гостей.


Аватара пользователя
drpioneer
Сообщения: 140
Зарегистрирован: 30 май 2013, 10:20

Снова приветствую всех!

Обратил внимание на серьезную загрузку процессора во время работы скрипта при обработке большого количества записей в log-файле после неудачных атак на роутер. По этой причине была пересмотрена логика работы скрипта. Очередной вариант скрипта стал еще суровей: теперь если была попытка несанкционированного доступа -> сразу отправляем в черный список и не тратим ресурсы роутера на бережный пересчёт количества попыток злоумышленника подключиться.

Код: Выделить всё


# Script for blocking dangerous addresses that tried to connect to the router
# https://forummikrotik.ru/viewtopic.php?t=4781&start=20
# tested on ROS 6.46.5
# updated 2020/05/28

# ----------- Stage 1 - search for a device login attempt ----------- 
foreach routerUser in=[ /user find disabled=no; ] do={
    do {
        foreach dangerString in=[ /log find message~"login failure for user"; ] do={
            do { 
                :local stringTemp ([ /log get $dangerString message ]);
                :local dangerUser ([ :pick $stringTemp ([ :find $stringTemp "user" ] + 5) ([ :find $stringTemp "from" ] - 1) ]);
                :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "from" ] + 5) ([ :find $stringTemp "via" ] - 1) ]);
                :local dangerVia ([ :pick $stringTemp ([ :find $stringTemp "via" ]) ([ :find $stringTemp "via" ] + 20)]);
                if ($routerUser != $dangerUser) do={
                    if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
                        /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
                        :log warning (">>> Added in black list IP ".$dangerIP." (wrong router user '".$dangerUser."' ".$dangerVia.")");
                    } 
                }
            } on-error={ :log warning ">>> Script error. Not found string 'login failure for user' in log."; } 
        }
    } on-error={ :log warning ">>> Script error. Not found active router user."; }
}

# ----------- Stage 2 - search for an attempt to enter through IPSec password ----------- 
foreach dangerString in=[ /log find message~"parsing packet failed, possible cause: wrong password"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp 0 ([ :find $stringTemp "parsing" ] - 1) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong IPSec password)");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'parsing packet failed, possible cause: wrong password' in log."; }
}

# ----------- Stage 3 - search for an attempt to enter through IPSec proposal ----------- 
foreach dangerString in=[ /log find message~"failed to get valid proposal"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp 0 ([ :find $stringTemp "failed" ] - 1) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong IPSec proposal)");
        } 
    } on-error={ :log warning ">>> Script error. Not found string 'failed to get valid proposal' in log."; }
}

# ----------- Stage 4 - search for an attempt to enter through L2TP ----------- 
foreach dangerString in=[ /log find message~"user" message~"authentication failed"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerUser ([ :pick $stringTemp ([ :find $stringTemp "user" ] + 5) ([ :find $stringTemp "authentication" ] - 1) ]);
        :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "<" ] + 1) ([ :find $stringTemp ">" ]) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong L2TP user '".$dangerUser."')");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'user' & 'authentication failed' in log."; }
}

Замечания и улучшения приветствуются.


evgeniy.demin
Сообщения: 4
Зарегистрирован: 27 июл 2020, 13:47

Надо еще добавить, чтобы в BlockDangerAddress добавлялись адреса с сообщений типа denied winbox/dude connect from 115.74.2.191


Аватара пользователя
drpioneer
Сообщения: 140
Зарегистрирован: 30 май 2013, 10:20

evgeniy.demin писал(а): 27 июл 2020, 13:49 Надо еще добавить, чтобы в BlockDangerAddress добавлялись адреса с сообщений типа denied winbox/dude connect from 115.74.2.191
У себя в журналах таких сообщений не встречал, но по вашей просьбе добавил дополнительную проверку:

Код: Выделить всё


# Script for blocking dangerous addresses that tried to connect to the router
# https://forummikrotik.ru/viewtopic.php?t=4781&start=20
# tested on ROS 6.47
# updated 2020/08/27

# ----------- Stage 1 - search for a device login attempt ----------- 
foreach routerUser in=[ /user find disabled=no; ] do={
    do {
        foreach dangerString in=[ /log find message~"login failure for user"; ] do={
            do { 
                :local stringTemp ([ /log get $dangerString message ]);
                :local dangerUser ([ :pick $stringTemp ([ :find $stringTemp "user" ] + 5) ([ :find $stringTemp "from" ] - 1) ]);
                :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "from" ] + 5) ([ :find $stringTemp "via" ] - 1) ]);
                :local dangerVia ([ :pick $stringTemp ([ :find $stringTemp "via" ]) ([ :find $stringTemp "via" ] + 20)]);
                if ($routerUser != $dangerUser) do={
                    if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
                        /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
                        :log warning (">>> Added in black list IP ".$dangerIP." (wrong router user '".$dangerUser."' ".$dangerVia.")");
                    } 
                }
            } on-error={ :log warning ">>> Script error. Not found string 'login failure for user' in log."; } 
        }
    } on-error={ :log warning ">>> Script error. Not found active router user."; }
}

# ----------- Stage 2 - search for an attempt to enter through IPSec password ----------- 
foreach dangerString in=[ /log find message~"parsing packet failed, possible cause: wrong password"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp 0 ([ :find $stringTemp "parsing" ] - 1) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong IPSec password)");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'parsing packet failed, possible cause: wrong password' in log."; }
}

# ----------- Stage 3 - search for an attempt to enter through IPSec proposal ----------- 
foreach dangerString in=[ /log find message~"failed to get valid proposal"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp 0 ([ :find $stringTemp "failed" ] - 1) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong IPSec proposal)");
        } 
    } on-error={ :log warning ">>> Script error. Not found string 'failed to get valid proposal' in log."; }
}

# ----------- Stage 4 - search for an attempt to enter through L2TP ----------- 
foreach dangerString in=[ /log find message~"user" message~"authentication failed"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerUser ([ :pick $stringTemp ([ :find $stringTemp "user" ] + 5) ([ :find $stringTemp "authentication" ] - 1) ]);
        :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "<" ] + 1) ([ :find $stringTemp ">" ]) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong L2TP user '".$dangerUser."')");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'user' & 'authentication failed' in log."; }
}    

# ----------- Stage 5 - search for login attempts via WinBox  ----------- 
foreach dangerString in=[ /log find message~"denied winbox/dude connect from"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "from" ] + 5) ([ :len $stringTemp ]) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (not allowed WinBox user IP-address)");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'denied winbox/dude connect from' in log."; }
}

Проверяйте. Отпишитесь о работе подправленного скрипта.
Спасибо.


evgeniy.demin
Сообщения: 4
Зарегистрирован: 27 июл 2020, 13:47

drpioneer писал(а): 27 авг 2020, 12:49
evgeniy.demin писал(а): 27 июл 2020, 13:49 Надо еще добавить, чтобы в BlockDangerAddress добавлялись адреса с сообщений типа denied winbox/dude connect from 115.74.2.191
У себя в журналах таких сообщений не встречал, но по вашей просьбе добавил дополнительную проверку:

Код: Выделить всё


# Script for blocking dangerous addresses that tried to connect to the router
# https://forummikrotik.ru/viewtopic.php?t=4781&start=20
# tested on ROS 6.47
# updated 2020/08/27

# ----------- Stage 1 - search for a device login attempt ----------- 
foreach routerUser in=[ /user find disabled=no; ] do={
    do {
        foreach dangerString in=[ /log find message~"login failure for user"; ] do={
            do { 
                :local stringTemp ([ /log get $dangerString message ]);
                :local dangerUser ([ :pick $stringTemp ([ :find $stringTemp "user" ] + 5) ([ :find $stringTemp "from" ] - 1) ]);
                :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "from" ] + 5) ([ :find $stringTemp "via" ] - 1) ]);
                :local dangerVia ([ :pick $stringTemp ([ :find $stringTemp "via" ]) ([ :find $stringTemp "via" ] + 20)]);
                if ($routerUser != $dangerUser) do={
                    if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
                        /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
                        :log warning (">>> Added in black list IP ".$dangerIP." (wrong router user '".$dangerUser."' ".$dangerVia.")");
                    } 
                }
            } on-error={ :log warning ">>> Script error. Not found string 'login failure for user' in log."; } 
        }
    } on-error={ :log warning ">>> Script error. Not found active router user."; }
}

# ----------- Stage 2 - search for an attempt to enter through IPSec password ----------- 
foreach dangerString in=[ /log find message~"parsing packet failed, possible cause: wrong password"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp 0 ([ :find $stringTemp "parsing" ] - 1) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong IPSec password)");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'parsing packet failed, possible cause: wrong password' in log."; }
}

# ----------- Stage 3 - search for an attempt to enter through IPSec proposal ----------- 
foreach dangerString in=[ /log find message~"failed to get valid proposal"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp 0 ([ :find $stringTemp "failed" ] - 1) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong IPSec proposal)");
        } 
    } on-error={ :log warning ">>> Script error. Not found string 'failed to get valid proposal' in log."; }
}

# ----------- Stage 4 - search for an attempt to enter through L2TP ----------- 
foreach dangerString in=[ /log find message~"user" message~"authentication failed"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerUser ([ :pick $stringTemp ([ :find $stringTemp "user" ] + 5) ([ :find $stringTemp "authentication" ] - 1) ]);
        :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "<" ] + 1) ([ :find $stringTemp ">" ]) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong L2TP user '".$dangerUser."')");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'user' & 'authentication failed' in log."; }
}    

# ----------- Stage 5 - search for login attempts via WinBox  ----------- 
foreach dangerString in=[ /log find message~"denied winbox/dude connect from"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "from" ] + 5) ([ :len $stringTemp ]) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (not allowed WinBox user IP-address)");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'denied winbox/dude connect from' in log."; }
}

Проверяйте. Отпишитесь о работе подправленного скрипта.
Спасибо.
Такие сообщения появляются когда указываешь конкретные сетки с которых можно ходить на winbox. Если кто-то пытается заломиться не из этих сеток сразу в журнале пишет denied
Отлично работает, спасибо огромное :co_ol:


evgeniy.demin
Сообщения: 4
Зарегистрирован: 27 июл 2020, 13:47

Вот так выглядит это
Вложения
2020-08-31_12-48-09.png
(67.68 КБ) 0 скачиваний


Vatman
Сообщения: 2
Зарегистрирован: 11 окт 2020, 00:15

drpioneer писал(а): 27 авг 2020, 12:49
evgeniy.demin писал(а): 27 июл 2020, 13:49 Надо еще добавить, чтобы в BlockDangerAddress добавлялись адреса с сообщений типа denied winbox/dude connect from 115.74.2.191
У себя в журналах таких сообщений не встречал, но по вашей просьбе добавил дополнительную проверку:

Код: Выделить всё


# Script for blocking dangerous addresses that tried to connect to the router
# https://forummikrotik.ru/viewtopic.php?t=4781&start=20
# tested on ROS 6.47
# updated 2020/08/27

# ----------- Stage 1 - search for a device login attempt ----------- 
foreach routerUser in=[ /user find disabled=no; ] do={
    do {
        foreach dangerString in=[ /log find message~"login failure for user"; ] do={
            do { 
                :local stringTemp ([ /log get $dangerString message ]);
                :local dangerUser ([ :pick $stringTemp ([ :find $stringTemp "user" ] + 5) ([ :find $stringTemp "from" ] - 1) ]);
                :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "from" ] + 5) ([ :find $stringTemp "via" ] - 1) ]);
                :local dangerVia ([ :pick $stringTemp ([ :find $stringTemp "via" ]) ([ :find $stringTemp "via" ] + 20)]);
                if ($routerUser != $dangerUser) do={
                    if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
                        /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
                        :log warning (">>> Added in black list IP ".$dangerIP." (wrong router user '".$dangerUser."' ".$dangerVia.")");
                    } 
                }
            } on-error={ :log warning ">>> Script error. Not found string 'login failure for user' in log."; } 
        }
    } on-error={ :log warning ">>> Script error. Not found active router user."; }
}

# ----------- Stage 2 - search for an attempt to enter through IPSec password ----------- 
foreach dangerString in=[ /log find message~"parsing packet failed, possible cause: wrong password"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp 0 ([ :find $stringTemp "parsing" ] - 1) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong IPSec password)");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'parsing packet failed, possible cause: wrong password' in log."; }
}

# ----------- Stage 3 - search for an attempt to enter through IPSec proposal ----------- 
foreach dangerString in=[ /log find message~"failed to get valid proposal"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp 0 ([ :find $stringTemp "failed" ] - 1) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong IPSec proposal)");
        } 
    } on-error={ :log warning ">>> Script error. Not found string 'failed to get valid proposal' in log."; }
}

# ----------- Stage 4 - search for an attempt to enter through L2TP ----------- 
foreach dangerString in=[ /log find message~"user" message~"authentication failed"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerUser ([ :pick $stringTemp ([ :find $stringTemp "user" ] + 5) ([ :find $stringTemp "authentication" ] - 1) ]);
        :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "<" ] + 1) ([ :find $stringTemp ">" ]) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (wrong L2TP user '".$dangerUser."')");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'user' & 'authentication failed' in log."; }
}    

# ----------- Stage 5 - search for login attempts via WinBox  ----------- 
foreach dangerString in=[ /log find message~"denied winbox/dude connect from"; ] do={
    do {
        :local stringTemp ([ /log get $dangerString message ]);
        :local dangerIP ([ :pick $stringTemp ([ :find $stringTemp "from" ] + 5) ([ :len $stringTemp ]) ]);
        if ([ /ip firewall address-list find list="BlockDangerAddress" address=$dangerIP ] = "" ) do={ 
            /ip firewall address-list add address=$dangerIP list="BlockDangerAddress" timeout=14d;
            :log warning (">>> Added in black list IP ".$dangerIP." (not allowed WinBox user IP-address)");
        }
    } on-error={ :log warning ">>> Script error. Not found string 'denied winbox/dude connect from' in log."; }
}

Проверяйте. Отпишитесь о работе подправленного скрипта.
Спасибо.
Вот так это выглядит :-(
# ----------- Stage 5 - search for login attempts via WinBox -----------
"denied winbox/dude connect from"
Изображение


Аватара пользователя
drpioneer
Сообщения: 140
Зарегистрирован: 30 май 2013, 10:20

Vatman писал(а): 11 окт 2020, 00:22 Вот так это выглядит :-(
# ----------- Stage 5 - search for login attempts via WinBox -----------
"denied winbox/dude connect from"
Изображение
Приветствую!
Глядя на приложенный Вами скриншот LOGа вижу, что ошибка выскакивает при каждом запуске скрипта. Судя по скриншоту скрипт запускается каждые 3-4 секунды(!!!). Могу предположить, что проблема заключается в коротком периоде запуска скрипта. Вероятно скрипт не успевает отработать и завершить свою работу, как в это же время у вас происходит запуск еще одной копии этого же скрипта...
Попробуйте увеличить интервал между запусками скрипта. У меня, например, интервал равен двум десяткам минут.
Не забудьте предварительно удалить все запущенные сеансы скрипта в system/scripts/jobs.
Отпишитесь о полученных результатах. Заранее спасибо.


Vatman
Сообщения: 2
Зарегистрирован: 11 окт 2020, 00:15

drpioneer писал(а): 11 окт 2020, 22:34
Vatman писал(а): 11 окт 2020, 00:22 Вот так это выглядит :-(
# ----------- Stage 5 - search for login attempts via WinBox -----------
"denied winbox/dude connect from"
Изображение
Приветствую!
Глядя на приложенный Вами скриншот LOGа вижу, что ошибка выскакивает при каждом запуске скрипта. Судя по скриншоту скрипт запускается каждые 3-4 секунды(!!!). Могу предположить, что проблема заключается в коротком периоде запуска скрипта. Вероятно скрипт не успевает отработать и завершить свою работу, как в это же время у вас происходит запуск еще одной копии этого же скрипта...
Попробуйте увеличить интервал между запусками скрипта. У меня, например, интервал равен двум десяткам минут.
Не забудьте предварительно удалить все запущенные сеансы скрипта в system/scripts/jobs.
Отпишитесь о полученных результатах. Заранее спасибо.
Приветствую!
Скрипт запускается каждые 30 минут.
Приложенный скриншот LOGа - это запуск и остановка скрипта вручную.
Раньше все было нормально.
Могу предположить, что скрипт не может завершить работу, т.к. не находит в логах
message~"denied winbox/dude connect from"

Какое-то время скрипт работал

Изображение


Аватара пользователя
drpioneer
Сообщения: 140
Зарегистрирован: 30 май 2013, 10:20

Vatman писал(а): 12 окт 2020, 01:22 Раньше все было нормально.
Могу предположить, что скрипт не может завершить работу, т.к. не находит в логах
message~"denied winbox/dude connect from"
Какое-то время скрипт работал
Изображение
Добрый день.
Логика работы по этой части кода подразумевает поиск в LOGе всех записей "denied winbox/dude connect from" с последующей обработкой каждой найденной записи.
Сообщение: ">>> Script error. Not found string 'denied winbox/dude connect from' in log" будет выведено только в том случае, если такая запись в LOGе изначально была обнаружена, но при попытке её обработать вдруг оказывается, что такой записи уже нет...
Это может произойти, когда в промежутке времени между обнаружением записи и её обработкой, с этой записью что-то случилось: она была изменена/удалена или LOG-файл по какой-то причине кардинально изменил свое содержимое или вовсе был удален...


Ответить