Перейти к содержимому
Калькуляторы

Mikrotik и его скрипты очередной ламерский вопрос...

Пытаюсь писать отключалку юзеров. Создаю скрипт с командами вида /ip firewall address-list disable 10 - не работает. То же самое, запущенное из терминала (под тем же пользователем, естественно, то есть с правами всё хорошо) работает, а в скрипте - ноль эмоций. Пробовал писать другие команды в нём же (скажем, /user add ...) - работает.

В мануале раздел Scripting Host зачитал до дыр - не могу найти, в чём проблема. Что может быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У мня долго не получалось со скриптом, задча простая - удалить все привязки, потом поставить новые (неуправлямые сегменты)

В конце концов плюнул, комманды выполеяю по ssh с авторизацией по ключам комманды /ip arp ... , а перед этим дергаю скрипт который удалит все привязки.

 

Более простого и красивого решениея не нашел, это около года уже работает.

А все началось с того, что надо было за ночь роутер собрать, при этом н было винта куда посавить линукс, только ide-flash )

 

[admin@odyssey] > /system script print
0 name="arp-rem3" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password last-started=nov/08/2008 18:31:28 run-count=6753
   source=/ip arp rem [/ip arp find dynamic=no]

 

Долго не мог разобраться с таким простым примером - уже правда не помню почему, но ощущение гимморойности осталось - возможно Вам поможет.

 

PS

Думаю, из местных nuclearcat должен знать

Изменено пользователем sirmax

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, у меня политика несколько другая: при отключении привязки arp, dhcp остаются, адрес только выпадает из allowed-листа для правила, которое разрешает tcp и udp.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, у меня политика несколько другая: при отключении привязки arp, dhcp остаются, адрес только выпадает из allowed-листа для правила, которое разрешает tcp и udp.
Ну то старая схема )

А новая схема совсем другая - аналогично Вашей, на свиче все режется кроме "ходи на биллинг, плати бабки", а dhcp-snooping не дает менять IP =)

Классика )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Накопал ответ на свой вопрос. Оказывается, disable/enable для адрес-листов работает только на основе 'динамического' списка, который формируется по предварительной команде /ip firewall address-list print. То есть скриптом это не будет работать в принципе)

 

Обратил правило в файрволле, вместо разрешающего листа сделал запрещающий, записи в него скриптом добавляю. Вроде всё как надо, всем спасибо.

Изменено пользователем Барагоз

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Накопал ответ на свой вопрос. Оказывается, disable/enable для адрес-листов работает только на основе 'динамического' списка, который формируется по предварительной команде /ip firewall address-list print. То есть скриптом это не будет работать в принципе)

это еще почему, если заходишь по ssh на него и выполняешь команду, все работает. а вот когда скриптом - нет.

 

Обратил правило в файрволле, вместо разрешающего листа сделал запрещающий, записи в него скриптом добавляю. Вроде всё как надо, всем спасибо.

 

а можно немного поподробнее?

 

у мну такаяже проблема, я себе уже весь мосх сломал((( а скрипт на удаление так и не работает( писал в саппорт микротика, там сказали что на 2.9.51 все должно работать, вот теперь думаю ставить старую версию, или же продолжать ковырять 3.13

Изменено пользователем starchik

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а вы учитывали подкорректированный язык скриптов в 3-ей версии по сравнению со 2-ой ??

 

Кстати, в третей ветке есть баг маленький (еще с начала версий) - при коннекте по ссх и добавлении чегото, через 24 часа ссх отваливается напрочь )) (только в случае коннектов гдето 1-3 раза в секунду). В версиях второй ветки все в норме, работает месяцами.

Поэтому советую перейти на API коннект.

 

Адрес-лист включение, выключение работает без проблем, дай пример скриптов, я поправлю

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пытаюсь писать отключалку юзеров. Создаю скрипт с командами вида /ip firewall address-list disable 10 - не работает.

В мануале раздел Scripting Host зачитал до дыр - не могу найти, в чём проблема. Что может быть?

И не будет работать. Нужно использовать find.

Посмотрите примеры в WiKi и все станет ясно:

http://wiki.mikrotik.com/wiki/Scripts

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а можно немного поподробнее?

Можно. Правила такого типа:

11  ;;; forward access - from list
     chain=forward src-address-list=!disabled action=accept

 

Скрипт такого типа:

/ip firewall address-list {
add list=disabled address=192.168.11.3
add list=disabled address=192.168.11.4
add list=disabled address=192.168.11.5
#add list=disabled address=192.168.11.12
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тоже парился когда-то, но уже забыл... :( машина с микротиком разобрана, не посмотреть...

но особенность была в том, что микротик удаляет/добавляет правила файрвола по комментарию.

правда у меня удаленный telnet был, а не скрипты

 

PS

вот, что-то нашел

"Включение - /ip firewall address-list add address=UIP list=allow_ip comment=UID

Выключение - /ip firewall address-list remove UID"

http://www.x-drivers.ru/articles/manuals/17/4.html

Изменено пользователем KD

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

всем спасибо, решил я эту проблемму......просто поставил 2.9.51 там все работает на ура. а в 3.16 думаю будет работать скрипт, если после каждого добавления правила юзать print. но сам не пробовал, ибо некогда(((

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а вы учитывали подкорректированный язык скриптов в 3-ей версии по сравнению со 2-ой ??

 

Кстати, в третей ветке есть баг маленький (еще с начала версий) - при коннекте по ссх и добавлении чегото, через 24 часа ссх отваливается напрочь )) (только в случае коннектов гдето 1-3 раза в секунду). В версиях второй ветки все в норме, работает месяцами.

Поэтому советую перейти на API коннект.

 

Адрес-лист включение, выключение работает без проблем, дай пример скриптов, я поправлю

Сказки какие-то. У меня работает месяцами, при том, что несколько раз в минуту дёргается по ssh для изменения правил/очередей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а вы учитывали подкорректированный язык скриптов в 3-ей версии по сравнению со 2-ой ??

 

Кстати, в третей ветке есть баг маленький (еще с начала версий) - при коннекте по ссх и добавлении чегото, через 24 часа ссх отваливается напрочь )) (только в случае коннектов гдето 1-3 раза в секунду). В версиях второй ветки все в норме, работает месяцами.

Поэтому советую перейти на API коннект.

 

Адрес-лист включение, выключение работает без проблем, дай пример скриптов, я поправлю

Сказки какие-то. У меня работает месяцами, при том, что несколько раз в минуту дёргается по ssh для изменения правил/очередей.

да это не сказки, а суровая реальность :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Включение - /ip firewall address-list add address=UIP list=allow_ip comment=UID

добавление выполняется на любой версии.

 

 

Выключение - /ip firewall address-list remove UID

а вот удаление из листа, на версии 3.хх не выполнялся.

 

 

вот пример скрипта, которым все это дело управлялось.

 

#!/bin/sh
ssh user_name@ip_address_nas "$*"

Изменено пользователем starchik

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

народ помогите с такой темой в Mikrotik os 2.927. Как в скрипте прописать изменения IP адреса в pptp-aut конекте для динамичного днс.

команда которая ето делает /interface pptp-client set pptp-out1 connect-to 10.0.0.1 (только вместо 10.0.0.1 скрипт должен подставлять новий IP моево доменого имени) как достать етот адрес с /ip dns cache или из других мест

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо если кто напрягался по моему вопросу но я уже нашол решение вот оно

 

:global pptp-interface "pptp-out1"

:global pptp-connect-host "r0.ru"

:global pptp-host-ip [:resolve $pptp-connect-host]

:global pptp-connect-to [/interface pptp-client get $pptp-interface connect-to]

:if ($pptp-host-ip != $pptp-connect-to) do={

:log info "Updating VPN server ip"

/interface pptp-client set $pptp-interface connect-to=$pptp-host-ip}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо если кто напрягался по моему вопросу но я уже нашол решение вот оно

 

:global pptp-interface "pptp-out1"

:global pptp-connect-host "r0.ru"

:global pptp-host-ip [:resolve $pptp-connect-host]

:global pptp-connect-to [/interface pptp-client get $pptp-interface connect-to]

:if ($pptp-host-ip != $pptp-connect-to) do={

:log info "Updating VPN server ip"

/interface pptp-client set $pptp-interface connect-to=$pptp-host-ip}

у меня почему-то не работает. просто ничего не происходит, когда я запускаю скрипт. версия 3.30.

 

П.С. пробовал выполнять просто команду :log info ("Test."). Лог пустой. В чем может быть прикол?

Другие скрипты работают, например по передаче моего ай-пи на динДнс.

Изменено пользователем 4iter

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

удалите это мое сообщение

 

(сначала много написал - потом сам себе придумал ответ :)

Изменено пользователем ivan999

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.