Взять статус маршрута\правила\итд

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Господа, что-то не понимаю я как взять "статус" того или иного правила в фаерволе или например маршрута. Под статусом я подразумеваю включено оно или выключено.
Для примера зачем оно:
Проверяем, например, маршрут, если включен, то ничего не делаем, если выключен, то включаем.
Вот как получить это состояние маршрута, включен он, или выключен?


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Смотря что вы имеете ввиду под включен. Если активен или нет, то:

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

[podarok66@MikroTik] > :put [/ip route get [find comment="For WiveRTNL"] active ]
true

Если выключен или нет совсем, то:

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

:put [/ip route get [find comment="For WiveRTNL"] disabled  ]   
false


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Шикарно, то что надо! Спасибо)


Chai
Сообщения: 63
Зарегистрирован: 25 авг 2017, 08:13

Спасибо, где только ни искал, здесь только нашел.


mrsam510
Сообщения: 2
Зарегистрирован: 22 мар 2020, 15:00

Приветствую.

Продолжу тему:

А если хочется управлять этим правилом по условию?
что-то типа:

Если пришёл запрос на address:port (как отследить этот запрос?)

/ip route get [find comment="For WiveRTNL"] = disabled


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

mrsam510 писал(а): 28 авг 2020, 23:25 Если пришёл запрос на address:port (как отследить этот запрос?)

/ip route get [find comment="For WiveRTNL"] = disabled
Ни фига не понял ваших желаний :du_ma_et: . Если можно, перефразируйте, я попробую разобраться.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Ааааа, кажись разобрался в ваших желаниях.
Вы хотите по обращению из вне к определённому адресу по определённому порту происходило определённое событие. Это достаточно кривое задание, я бы никогда не взялся за его реализацию. Но в целом описать порядок действий могу.
В том же Mangle есть такой вариант в action, как log. То есть событие просто логируется. Далее пишем скрипт, в котором парсим лог на предмет записи с заранее определённым перфиксом. При нахождении записи скрипт реагирует заданным образом. В конце работы скрипта обязательная очистка логов.
Придётся учитывать, что логи в memory у вас будут стираться. Это говорит, что вам останется для полноценного контроля только текстовый лог . Не всякий админ с таким согласится. Ну или можно сохранять логи на сервер, у меня часть железок именно так работает.
Ссылки по упоминаемым вопросам
https://forum.nag.ru/index.php?/topic/1 ... u-v-logah/
https://flammlin.com/blog/2020/04/05/cl ... -mikrotik/
Или изучаем более сложные варианты парсинга
https://wiki.mikrotik.com/wiki/Log_Pars ... ger_Script


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
mrsam510
Сообщения: 2
Зарегистрирован: 22 мар 2020, 15:00

Добрый день.

Перефразирую задачу:

При переходе в браузере на address:port, должно включаться определённое правило.

А если то же самое проделать через add-dst-to-address-list.
Добавляем адрес в адрес лист на короткое время. Скриптом проверяем наличие адреса в списке и включаем/выключаем правило.
Как получить адрес из адреслиста?


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Тема неоднократно обсуждалась.

Сделайте, как Вы и хотели правило, которое помещает в адрес-лист mylist адрес.
Скрипт приведенный ниже вставьте в планировщик с исполнением через нужный интервал времени.
Скрипт будет искать все адреса в адрес-листе, всем новым найденным записям в комментарий ставить отметку "executed" и если новые адрес/aдреса найдены в интервале времени исполнения, то выполняется действие в предпоследней строке (# /system script run muzic - замените, на нужное Вам.

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

:local listaddress [:toarray ""]
:local myaddresslist "mylist"

:foreach i in=[/ip firewall address-list find where list=$myaddresslist] do={:if ([:len [/ip firewall address-list get $i comment]]=0) do={
:set listaddress ($listaddress, [/ip firewall address-list get $i address])
/ip firewall address-list set $i comment="executed"}};


:if ([:len $listaddress]!=0) do={
:log warning "Sheduller <monitor_addresslist> follow steps ..."
# /system script run muzic
}
Последний раз редактировалось Sertik 02 сен 2020, 10:13, всего редактировалось 2 раза.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Оу! Отличный способ. Только нужно учитывать, что если соединение проходит с одного и того же адреса ( при add src-address-list), вторично в адрес лист этому адресу не попасть, нужно при отработке скрипта стирать запись. Septik, великолепная идея, как я о ней не вспомнил! Спасибо!


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить