как скриптом засовывать необходимые ip в разные цепочки firewall?

Обсуждение оборудования и его настройки
Ответить
vnikolaev
Сообщения: 100
Зарегистрирован: 14 окт 2015, 17:30

К примеру есть у меня такое:
add action=accept chain=forward src-address-list=unblock
add action=accept chain=forward src-address-list=unblock_always
add action=accept chain=forward dst-address-list=unblock
add action=accept chain=forward dst-address-list=unblock_always
add action=drop chain=forward src-address-list=block
add action=drop chain=forward dst-address-list=block
add action=drop chain=forward

Рассмотрим щас два листа, это block и unblock.
В block находятся те ip, которым можно в инет ходить, в unblock незя.

На пример у меня есть ip 1.2.3.4, который нужно из block перетащить в unblock. как должен выглядеть скрипт в микротике?
Я знаю только немного кривой способ - это написать скрипт на линуксе, к примеру на bash:
./unblockip 1.2.3.4
#!/bin/bash
ip=$1
ssh admin@mikr_ip /ip firewall address-list remove numbers=15(номер я типа узнал =$ip)
ssh admin@mikr_ip /ip firewall address-list add address=$ip list=unblock
то есть подключаемся по беспарольному доступу и выполняем данные действа.

Мне же нужно чтобы переменную принимал скрипт, которые находится на самом микротике.
То есть я сначала подключаюсь по ssh к микротику и выполняю скрипт и подставляю переменную уже в самом микротике, а не посылаю с удаленной линукс машиной все то, что нужно сделать.

Надеюсь внятно написал суть задачи. Хелп


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Меняем для адреса 1.2.3.4 лист на unblock, не важно с какого, важно что при этом запись должна уже существовать.

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

ip firewall address-list set list=unblock [find address=1.2.3.4]
Тоже самое с переменной

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

:local ip 1.2.3.4
:ip firewall address-list set list=unblock [find address=$ip]


vnikolaev
Сообщения: 100
Зарегистрирован: 14 окт 2015, 17:30

KARaS'b писал(а): 22 мар 2019, 12:11 Меняем для адреса 1.2.3.4 лист на unblock, не важно с какого, важно что при этом запись должна уже существовать.

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

ip firewall address-list set list=unblock [find address=1.2.3.4]
Тоже самое с переменной

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

:local ip 1.2.3.4
:ip firewall address-list set list=unblock [find address=$ip]
Как мне подставлять переменную в скрипт? к примеру есть скрипт block, а его выполняю, но чтобы скрипт знал кого блочить мне нужно подставить 1.2.3.4, то есть как в линуксе ./block 1.2.3.4.. Я вот это имею ввиду. Умеет ли такое микрот?


vnikolaev
Сообщения: 100
Зарегистрирован: 14 окт 2015, 17:30

просто если мне нужно сразу двадцать ip засунуть в блок, то как быть?


Erik_U
Сообщения: 1753
Зарегистрирован: 09 июл 2014, 12:33

vnikolaev писал(а): 22 мар 2019, 13:03 просто если мне нужно сразу двадцать ip засунуть в блок, то как быть?
https://wiki.mikrotik.com/wiki/Using_Fe ... ress_Lists


vnikolaev
Сообщения: 100
Зарегистрирован: 14 окт 2015, 17:30

Есть другой момент:
/queue simple
add max-limit=50M/50M name="Ivanov Evgeniy Fedorovich" target=1.1.1.1/32,2.2.2.2/32

Как удалить/добавь ip в targed через консоль, желательно одной командой.
У меня получается вот таким образом:
queue simple set target=1.1.1.1 [ find name="Ivanov Evgeniy Fedorovich" ]
но таким образом я просто меняю ip в targed, а если их там будет 5 или 10, то не очень удобно получается. Получается нужно что-то вроде такого:
queue simple "remove" target=1.1.1.1 [ find name="Ivanov Evgeniy Fedorovich" ] - но такого сделать нельзя. Просьба помочь с идеей


KARaS'b
Сообщения: 1199
Зарегистрирован: 29 сен 2011, 09:16

Несколько адресов задаются через запятую, при этом значения которые там были ранее затираются.
queue simple set target=192.168.1.201,192.168.1.200 [ find name="Ivanov Evgeniy Fedorovich" ]


vnikolaev
Сообщения: 100
Зарегистрирован: 14 окт 2015, 17:30

KARaS'b писал(а): 26 мар 2019, 10:18 Несколько адресов задаются через запятую, при этом значения которые там были ранее затираются.
queue simple set target=192.168.1.201,192.168.1.200 [ find name="Ivanov Evgeniy Fedorovich" ]
Это я понял. К примеру мне нужно удалить 192.168.1.200, из вашего примера. Как быть?


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

А так нельзя ?

/queue simple remove target [ /queue simple find target name="Ivanov Evgeniy Fedorovich" ]

а потом заново добавить без 192.168.1.200 так:

/queue simple set target=192.168.1.201 name="Ivanov Evgeniy Fedorovich"

Синтаксис я не проверял, надо пробовать ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
vnikolaev
Сообщения: 100
Зарегистрирован: 14 окт 2015, 17:30

Sertik писал(а): 26 мар 2019, 10:26 А так нельзя ?

/queue simple remove target [ /queue simple find target name="Ivanov Evgeniy Fedorovich" ]

а потом заново добавить без 192.168.1.200 так:

/queue simple set target=192.168.1.201 name="Ivanov Evgeniy Fedorovich"

Синтаксис я не проверял, надо пробовать ...
нельзя так. Ладно в несколько этапа буду делать. Хотел одним действие удалять ip


Ответить