Барагоз Posted November 8, 2008 Posted November 8, 2008 Пытаюсь писать отключалку юзеров. Создаю скрипт с командами вида /ip firewall address-list disable 10 - не работает. То же самое, запущенное из терминала (под тем же пользователем, естественно, то есть с правами всё хорошо) работает, а в скрипте - ноль эмоций. Пробовал писать другие команды в нём же (скажем, /user add ...) - работает. В мануале раздел Scripting Host зачитал до дыр - не могу найти, в чём проблема. Что может быть? Вставить ник Quote
sirmax Posted November 8, 2008 Posted November 8, 2008 (edited) У мня долго не получалось со скриптом, задча простая - удалить все привязки, потом поставить новые (неуправлямые сегменты) В конце концов плюнул, комманды выполеяю по 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 должен знать Edited November 8, 2008 by sirmax Вставить ник Quote
Барагоз Posted November 8, 2008 Author Posted November 8, 2008 Ну, у меня политика несколько другая: при отключении привязки arp, dhcp остаются, адрес только выпадает из allowed-листа для правила, которое разрешает tcp и udp. Вставить ник Quote
sirmax Posted November 8, 2008 Posted November 8, 2008 Ну, у меня политика несколько другая: при отключении привязки arp, dhcp остаются, адрес только выпадает из allowed-листа для правила, которое разрешает tcp и udp.Ну то старая схема )А новая схема совсем другая - аналогично Вашей, на свиче все режется кроме "ходи на биллинг, плати бабки", а dhcp-snooping не дает менять IP =) Классика ) Вставить ник Quote
Барагоз Posted November 8, 2008 Author Posted November 8, 2008 (edited) Накопал ответ на свой вопрос. Оказывается, disable/enable для адрес-листов работает только на основе 'динамического' списка, который формируется по предварительной команде /ip firewall address-list print. То есть скриптом это не будет работать в принципе) Обратил правило в файрволле, вместо разрешающего листа сделал запрещающий, записи в него скриптом добавляю. Вроде всё как надо, всем спасибо. Edited November 8, 2008 by Барагоз Вставить ник Quote
starchik Posted November 9, 2008 Posted November 9, 2008 (edited) Накопал ответ на свой вопрос. Оказывается, disable/enable для адрес-листов работает только на основе 'динамического' списка, который формируется по предварительной команде /ip firewall address-list print. То есть скриптом это не будет работать в принципе) это еще почему, если заходишь по ssh на него и выполняешь команду, все работает. а вот когда скриптом - нет. Обратил правило в файрволле, вместо разрешающего листа сделал запрещающий, записи в него скриптом добавляю. Вроде всё как надо, всем спасибо. а можно немного поподробнее? у мну такаяже проблема, я себе уже весь мосх сломал((( а скрипт на удаление так и не работает( писал в саппорт микротика, там сказали что на 2.9.51 все должно работать, вот теперь думаю ставить старую версию, или же продолжать ковырять 3.13 Edited November 9, 2008 by starchik Вставить ник Quote
martini Posted November 9, 2008 Posted November 9, 2008 а вы учитывали подкорректированный язык скриптов в 3-ей версии по сравнению со 2-ой ?? Кстати, в третей ветке есть баг маленький (еще с начала версий) - при коннекте по ссх и добавлении чегото, через 24 часа ссх отваливается напрочь )) (только в случае коннектов гдето 1-3 раза в секунду). В версиях второй ветки все в норме, работает месяцами. Поэтому советую перейти на API коннект. Адрес-лист включение, выключение работает без проблем, дай пример скриптов, я поправлю Вставить ник Quote
DWA Posted November 9, 2008 Posted November 9, 2008 Пытаюсь писать отключалку юзеров. Создаю скрипт с командами вида /ip firewall address-list disable 10 - не работает. В мануале раздел Scripting Host зачитал до дыр - не могу найти, в чём проблема. Что может быть? И не будет работать. Нужно использовать find.Посмотрите примеры в WiKi и все станет ясно: http://wiki.mikrotik.com/wiki/Scripts Вставить ник Quote
Барагоз Posted November 9, 2008 Author Posted November 9, 2008 а можно немного поподробнее? Можно. Правила такого типа: 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 } Вставить ник Quote
KD Posted November 10, 2008 Posted November 10, 2008 (edited) тоже парился когда-то, но уже забыл... :( машина с микротиком разобрана, не посмотреть... но особенность была в том, что микротик удаляет/добавляет правила файрвола по комментарию. правда у меня удаленный 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 Edited November 10, 2008 by KD Вставить ник Quote
starchik Posted November 10, 2008 Posted November 10, 2008 всем спасибо, решил я эту проблемму......просто поставил 2.9.51 там все работает на ура. а в 3.16 думаю будет работать скрипт, если после каждого добавления правила юзать print. но сам не пробовал, ибо некогда((( Вставить ник Quote
shoorickello Posted November 11, 2008 Posted November 11, 2008 а вы учитывали подкорректированный язык скриптов в 3-ей версии по сравнению со 2-ой ?? Кстати, в третей ветке есть баг маленький (еще с начала версий) - при коннекте по ссх и добавлении чегото, через 24 часа ссх отваливается напрочь )) (только в случае коннектов гдето 1-3 раза в секунду). В версиях второй ветки все в норме, работает месяцами. Поэтому советую перейти на API коннект. Адрес-лист включение, выключение работает без проблем, дай пример скриптов, я поправлю Сказки какие-то. У меня работает месяцами, при том, что несколько раз в минуту дёргается по ssh для изменения правил/очередей. Вставить ник Quote
starchik Posted November 11, 2008 Posted November 11, 2008 а вы учитывали подкорректированный язык скриптов в 3-ей версии по сравнению со 2-ой ?? Кстати, в третей ветке есть баг маленький (еще с начала версий) - при коннекте по ссх и добавлении чегото, через 24 часа ссх отваливается напрочь )) (только в случае коннектов гдето 1-3 раза в секунду). В версиях второй ветки все в норме, работает месяцами. Поэтому советую перейти на API коннект. Адрес-лист включение, выключение работает без проблем, дай пример скриптов, я поправлю Сказки какие-то. У меня работает месяцами, при том, что несколько раз в минуту дёргается по ssh для изменения правил/очередей. да это не сказки, а суровая реальность :( Вставить ник Quote
starchik Posted November 11, 2008 Posted November 11, 2008 (edited) Включение - /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 "$*" Edited November 11, 2008 by starchik Вставить ник Quote
save Posted February 17, 2009 Posted February 17, 2009 народ помогите с такой темой в 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 или из других мест Вставить ник Quote
save Posted February 17, 2009 Posted February 17, 2009 Спасибо если кто напрягался по моему вопросу но я уже нашол решение вот оно :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} Вставить ник Quote
4iter Posted February 13, 2011 Posted February 13, 2011 (edited) Спасибо если кто напрягался по моему вопросу но я уже нашол решение вот оно :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."). Лог пустой. В чем может быть прикол? Другие скрипты работают, например по передаче моего ай-пи на динДнс. Edited February 13, 2011 by 4iter Вставить ник Quote
ivan999 Posted February 14, 2011 Posted February 14, 2011 (edited) удалите это мое сообщение (сначала много написал - потом сам себе придумал ответ :) Edited February 15, 2011 by ivan999 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.