Страница 1 из 1
Mikrotik - Динамический address-list
Добавлено: 30 окт 2018, 10:33
nikita.dyachkov
Всем добрый день, имеется 10 mikrotik hap lite, 1 mikrotik rb2011
Идея: блокировать весь инет, кроме определенных ресурсов на определенном устройстве.
блокировка через:
chain=forward action=reject reject-with=tcp-reset protocol=tcp src-address=192.168.88.139 dst-address-list=da
chain=forward action=drop protocol=udp src-address=192.168.88.139 dst-address-list=da
192.168.88.139 - определенное устройство
как сделать address-list динамически обновляющимся с rb2011 в теории понимаю, но в скриптах слаб
зачем обновлять, могут поменяться адреса ресурсов либо необходимо добавить/удалить
Re: Mikrotik - Динамический address-list
Добавлено: 30 окт 2018, 11:02
podarok66
Создаём адрес-лист, перечисляя разрешённые ресурсы (заносим именно доменные имена, резолвится они будут автоматом) :
Код: Выделить всё
/ip firewall address-list
add address=konst.eljur.ru list=eljur
add address=translate.google.ru list=eljur
Привязываем в arp-таблице ip-адреса клиентских машин к их же МАС-адресам, чтобы не сменяли айпишники самые "умные".
Создаём адрес-лист, перечисляя адреса клиентских машин, к которым ограничиваем доступ:
Код: Выделить всё
/ip firewall address-list
add address=192.168.88.248 list="My user stop"
add address=192.168.88.184 list="My user stop"
add address=192.168.88.188 list="My user stop"
add address=192.168.88.207 list="My user stop"
add address=192.168.88.245 list="My user stop"
add address=192.168.88.203 list="My user stop"
add address=192.168.88.210 list="My user stop"
add address=192.168.88.230 list="My user stop"
add address=192.168.88.180 list="My user stop"
add address=192.168.88.204 list="My user stop"
add address=192.168.88.240 list="My user stop"
add address=192.168.88.250 list="My user stop"
Создаём два правила запрета:
Код: Выделить всё
/ip firewall filter
add action=reject chain=forward dst-address-list=!eljur protocol=tcp reject-with=tcp-reset src-address-list="My user stop"
add action=drop chain=forward dst-address-list=!eljur protocol=udp src-address-list="My user stop"
Всё снято с действующей сети. Количество жалоб от пользователей (дети, которым кроме переводчика и электронного дневника всё порезано) зашкаливает, что говорит о крайней эффективности метода.
Re: Mikrotik - Динамический address-list
Добавлено: 30 окт 2018, 12:59
nikita.dyachkov
Это я понял, но я хочу заполнять address-list на одном устройстве, и чтобы он обновлялся сразу на остальных 10ти
Re: Mikrotik - Динамический address-list
Добавлено: 30 окт 2018, 13:39
vqd
только через костыль
Например на головном микротике пишите скрит который генерирует скрипт генерации ваших листов, пишите это все в файл не более 4Кб и выкладываете Второй микротик через некоторое количество времени грузит по ФТП файлик и импортирует ваш скрипт себе
Re: Mikrotik - Динамический address-list
Добавлено: 30 окт 2018, 17:41
podarok66
Да в любом случае это лютейший костыль. И уж по такому мелкому поводу этот костыль писать.... Это надо быть просто невероятным лентяем. Что-то мне не верится, что там адрес-листы каждый день меняются по прихоти администрации. А просто свистелку писать - это к фрилансерам. Те что угодно изобразят за небольшое вознаграждение.
Re: Mikrotik - Динамический address-list
Добавлено: 01 ноя 2018, 18:31
anad
городил что-то подобное через DNS:
записи лист заносились/удалялись проходом по DNS вида
1.allow.site.com in A 1.1.1.1
2.allow.site.com in A 1.2.3.4
и так далее, до пустой . писано криво было , но на 40 адресов хватало.
Искать ?
Re: Mikrotik - Динамический address-list
Добавлено: 02 ноя 2018, 10:20
anad
выкопал вот такое ( чистая коленка и скрипты под микротики я не знаю почти).
Код: Выделить всё
{
:global name=tmplist value=tmplist;
:global name=curip;
:global name=errstat value=0
:global name=listname value=access
:global name=dnshost value=site.com
:global name=dnspref value=allow
:global name=cont value=1
:global name=errstat value=0
#
foreach i in [/ip firewall address-list find where list=tmplist] do { /ip firewall address-list remove numbers=$i}
#
set cont 1 ;set errstat 0 ; while ($errstat =0) do {set errstat 0; do {resolve "allow$count.site.ru"} on-error={set errstat 1}; if (errstat = 0 ) do={set curip [resolve "allow$cont.site.ru"]; /ip firewall address-list add list=$tmplist address=$curip }; set cont ($cont+1) }
#
foreach i in [/ip firewall address-list find where list=$listname] do {set curip [/ip firewall address-list get number=$i address]; local ttmp [/ip firewall address-list find where list=$tmplist address=$curip]; put $ttmp ; if ($ttmp="") do { /ip firewall address-list remove numbers=$i} }
#
foreach i in [/ip firewall address-list find where list=$tmplist] do {set curip [/ip firewall address-list get number=$i address] ; do {/ip firewall address-list add list=$listname address=$curip} on-error={} }
#
foreach i in [/ip firewall address-list find where list=tmplist] do { /ip firewall address-list remove numbers=$i}
}
то есть берет записи вида
allow1.site.ru
allow2.site.ru
и так далее подряд , будет дырка в нумерации - дальше не пойдет. и заносит их в лист access, почему не доделал с переменными - не помню, но сайт надо вбивать в текст скрипта.
P.S. буду благодарен за комменты - опыта с миротиком очень мало.
Re: Mikrotik - Динамический address-list
Добавлено: 13 фев 2022, 08:09
dima.dmitriev
podarok66 писал(а): ↑30 окт 2018, 11:02
Создаём два правила запрета:
Код: Выделить всё
/ip firewall filter
add action=reject chain=forward dst-address-list=!eljur protocol=tcp reject-with=tcp-reset src-address-list="My user stop"
add action=drop chain=forward dst-address-list=!eljur protocol=udp src-address-list="My user stop"
Всё снято с действующей сети. Количество жалоб от пользователей (дети, которым кроме переводчика и электронного дневника всё порезано) зашкаливает, что говорит о крайней эффективности метода.
не пойму как работает этот скрипт, там указано, что дропать нужно лист eljur, восклицательный знак какое действие выполняет?
мне чтобы разрешить доступ только телеграмму нужно в первом скрипте поменять название листа (для себя) и сайты на telegram.org?
в телефонах нет чего нибудь типа svchost?
которому порежешь доступ и инет не будет работать? или там отдельный канал связи?
Re: Mikrotik - Динамический address-list
Добавлено: 13 фев 2022, 16:18
podarok66
dima.dmitriev писал(а): ↑13 фев 2022, 08:09
восклицательный знак какое действие выполняет?
Да Ё!!! Ну сходите вы почитайте
https://wiki.mikrotik.com/wiki/Manual:Scripting Вопросы сразу станут более точечными. А то у вас выходит что-то типа "В паре фраз опишите семантику испанского, мне его учить неохота, но стихи на нём я писать буду"