Когда настраивается маршрутизатор, который отвечает за доступ к сети для нескольких человек, то достаточно прописать правила для конкретных адресов в firewall filter rules и на этом успокоится, но когда ip, которым нужно прописать доступ, не один десяток?
Для решения проблемы управления большим количеством ip адресов в MiktoTik Router OS есть механизм сознания списков адресов и объединения их в группы. Дальше составления правил для firewall-а идет на основании этих групп. Адреса можно добавлять как в ручную, так и динамически с помощью правил.
Рассмотрим ручное добавление адресов:
Перейдем в раздел address-list.
/ip firewall address-list
Для дальнейших примеров будем использовать описанную ранее конфигурацию сети:
- Mikrotik – 192.168.0.1
- PC 5 – 192.168.0.2, web, ftp, mail сервер
- PC 4 – 192.168.0.10, Администратор, полный доступ
- PC 1 – 192.168.0.20, Простой доступ: http, https, icq, jabber, ftp
- PC 2 – 192.168.0.21, Простой доступ: http, https, icq, jabber, ftp
- PC 3 – 192.168.0.22, Простой доступ: http, https, icq, jabber, ftp
Сразу видно, что адреса можно разделить на три группы доступа:
- SERVER (192.168.0.2)
- FULL (192.168.0.10)
- USER (192.168.0.20, 192.168.0.21, 192.168.0.22)
Группа создается простым упоминанием о ней. Добавим адрес 192.168.0.2 в группу SERVER:
[mkt@MikroTik] /ip firewall address-list> add address="192.168.0.2/32"
list="SERVER" comment="web, ftp, mail server"
Адрес 192.168.0.10 в группу FULL:
[mkt@MikroTik] /ip firewall address-list> add address="192.168.0.10/32"
list="FULL" comment="Administrator"
Адресa 192.168.0.20, 192.168.0.21, 192.168.0.22 в группу USER:
[mkt@MikroTik] /ip firewall address-list> add address="192.168.0.20/32"
list="USER" comment="User #1"
[mkt@MikroTik] /ip firewall address-list> add address="192.168.0.21/32"
list="USER" comment="User #2"
[mkt@MikroTik] /ip firewall address-list> add address="192.168.0.22/32"
list="USER" comment="User #3"
Посмотрим, что у нас получилось:
[mkt@MikroTik] /ip firewall address-list> print
Flags: X - disabled, D - dynamic
# LIST ADDRESS
0 ;;; web, ftp, mail server
SERVER 192.168.0.2
1 ;;; Administrator
FULL 192.168.0.10
2 ;;; User #1
USER 192.168.0.20
3 ;;; User #2
USER 192.168.0.21
4 ;;; User #3
USER 192.168.0.22
Теперь можно пересмотреть наши правила, созданные раннее.
Правила для администратора, написанные ранее:
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.10/32
action=accept comment="Allow all for admin"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.10/32
action=accept comment="Allow all for admin"
Можно переписать так:
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="FULL
action=accept comment="Allow all for group FULL"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="FULL
action=accept comment="Allow all for group FULL"
Изменим правила сервера, созданные ранне:
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=80 action=accept comment="Allow http for server (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32
protocol=tcp dst-port=80 action=accept comment="Allow http for server (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=25 action=accept comment="Allow smtp for server (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32
protocol=tcp dst-port=25 action=accept comment="Allow smtp for server (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.2/32
protocol=tcp src-port=110 action=accept comment="Allow pop for server (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.2/32
protocol=tcp dst-port=110 action=accept comment="Allow pop for server (out)"
На эти:
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="SERVER"
protocol=tcp src-port=80 action=accept comment="Allow http for group SERVER (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="SERVER"
protocol=tcp dst-port=80 action=accept comment="Allow http for group SERVER (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="SERVER"
protocol=tcp src-port=25 action=accept comment="Allow smtp for group SERVER (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="SERVER"
protocol=tcp dst-port=25 action=accept comment="Allow smtp for group SERVER (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="SERVER"
protocol=tcp src-port=110 action=accept comment="Allow pop for group SERVER (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="SERVER"
protocol=tcp dst-port=110 action=accept comment="Allow pop for group SERVER (out)"
Пока что оптимизация не большая, но сейчас займемся правилами для доступа простых пользователей и вместо блока, повторяющегося 3-и раза для каждой машины:
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=80 action=accept comment="Allow http for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=80 action=accept comment="Allow http for pc1 (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=443 action=accept comment="Allow https for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=443 action=accept comment="Allow https for pc1 (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=21 action=accept comment="Allow ftp for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=21 action=accept comment="Allow ftp for pc1 (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=5190 action=accept comment="Allow icq for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=5190 action=accept comment="Allow icq for pc1 (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address=192.168.0.20/32
protocol=tcp src-port=5222 action=accept comment="Allow jabber for pc1 (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address=192.168.0.20/32
protocol=tcp dst-port=5222 action=accept comment="Allow jabber for pc1 (out)"
Создадим блок правил для группы USER:
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="USER"
protocol=tcp src-port=80 action=accept comment="Allow http for group USER (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="USER"
protocol=tcp dst-port=80 action=accept comment="Allow http for group USER (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="USER"
protocol=tcp src-port=443 action=accept comment="Allow https for group USER (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="USER"
protocol=tcp dst-port=443 action=accept comment="Allow https for group USER (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="USER"
protocol=tcp src-port=21 action=accept comment="Allow ftp for group USER (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="USER"
protocol=tcp dst-port=21 action=accept comment="Allow ftp for group USER (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="USER"
protocol=tcp src-port=5190 action=accept comment="Allow icq for group USER (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="USER"
protocol=tcp dst-port=5190 action=accept comment="Allow icq for group USER (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="USER"
protocol=tcp src-port=5222 action=accept comment="Allow jabber for group USER (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="USER"
protocol=tcp dst-port=5222 action=accept comment="Allow jabber for group USER (out)"
Теперь, когда в сети появляется новая машина, которой нужно дать права для доступ в сеть, то достаточно добавить ее в соответствующую группу адресов. На пример у нас появляется новая машина с адресом 192.168.0.23, которой нужен доступ как и остальных пользователей группы USER, но за исключением доступа к ICQ и JABBER, ну уж очень болтливый пользователь 🙂
Добавим его в группу USER, а так же в новую группу BLOCK_IM
[mkt@MikroTik] > ip firewall address-list add address="192.168.0.23/32"
list="USER" comment="User #4"
[mkt@MikroTik] > ip firewall address-list add address="192.168.0.23/32"
list="BLOCK_IM" comment="User #4"
Получим:
[mkt@MikroTik] > ip firewall address-list print
Flags: X - disabled, D - dynamic
# LIST ADDRESS
0 ;;; web, ftp, mail server
SERVER 192.168.0.2
1 ;;; Administrator
FULL 192.168.0.10
2 ;;; User #1
USER 192.168.0.20
3 ;;; User #2
USER 192.168.0.21
4 ;;; User #3
USER 192.168.0.22
5 ;;; User #4
USER 192.168.0.23
6 ;;; User #4
BLOCK_IM 192.168.0.23
Теперь машина с ip адресом 192.168.0.23 уже имеет доступ, оговоренный для группы USER, но не блокируется траффик ICQ и JABBER.
Создадим дополнительные правила для группы BLOCK_IM.
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="BLOCK_IM"
protocol=tcp dst-port=5190 action=drop comment="Drop icq for group BLOCK_IM (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="BLOCK_IM"
protocol=tcp src-port=5190 action=drop comment="Drop icq for group BLOCK_IM (in)"
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list="BLOCK_IM"
protocol=tcp dst-port=5222 action=drop comment="Drop jabber for group BLOCK_IM (out)"
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list="BLOCK_IM"
protocol=tcp src-port=5222 action=drop comment="Drop jabber for group BLOCK_IM (in)"
Посмотрим, что получилось:
[mkt@MikroTik] > ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic
0 ;;; Drop invalid connection
chain=forward action=drop connection-state=invalid
1 ;;; Allow established connections
chain=forward action=accept connection-state=established
2 ;;; Allow related connections
chain=forward action=accept connection-state=related
3 ;;; Allow UDP
chain=forward action=accept protocol=udp
4 ;;; Allow ICM Ping
chain=forward action=accept protocol=icmp
5 ;;; Allow all for group FULL
chain=forward action=accept dst-address-list=FULL
6 ;;; Allow all for group FULL
chain=forward action=accept src-address-list=FULL
7 ;;; Allow http for group SERVER (in)
chain=forward action=accept protocol=tcp dst-address-list=SERVER src-port=80
8 ;;; Allow http for group SERVER (out)
chain=forward action=accept protocol=tcp src-address-list=SERVER dst-port=80
9 ;;; Allow smtp for group SERVER (in)
chain=forward action=accept protocol=tcp dst-address-list=SERVER src-port=25
10 ;;; Allow smtp for group SERVER (out)
chain=forward action=accept protocol=tcp src-address-list=SERVER dst-port=25
11 ;;; Allow pop for group SERVER (in)
chain=forward action=accept protocol=tcp dst-address-list=SERVER src-port=110
12 ;;; Allow pop for group SERVER (out)
chain=forward action=accept protocol=tcp src-address-list=SERVER dst-port=110
13 ;;; Allow http for group USER (in)
chain=forward action=accept protocol=tcp dst-address-list=USER src-port=80
14 ;;; Allow http for group USER (out)
chain=forward action=accept protocol=tcp src-address-list=USER dst-port=80
15 ;;; Allow https for group USER (in)
chain=forward action=accept protocol=tcp dst-address-list=USER src-port=443
16 ;;; Allow https for group USER (out)
chain=forward action=accept protocol=tcp src-address-list=USER dst-port=443
17 ;;; Allow ftp for group USER (in)
chain=forward action=accept protocol=tcp dst-address-list=USER src-port=21
18 ;;; Allow ftp for group USER (out)
chain=forward action=accept protocol=tcp src-address-list=USER dst-port=21
19 ;;; Allow icq for group USER (in)
chain=forward action=accept protocol=tcp dst-address-list=USER src-port=5190
20 ;;; Allow icq for group USER (out)
chain=forward action=accept protocol=tcp src-address-list=USER dst-port=5190
21 ;;; Allow jabber for group USER (in)
chain=forward action=accept protocol=tcp dst-address-list=USER src-port=5222
22 ;;; Allow jabber for group USER (out)
chain=forward action=accept protocol=tcp src-address-list=USER dst-port=5222
23 ;;; Drop all
chain=forward action=drop
24 ;;; Drop icq for group BLOCK_IM (out)
chain=forward action=drop protocol=tcp src-address-list=BLOCK_IM dst-port=5190
25 ;;; Drop icq for group BLOCK_IM (in)
chain=forward action=drop protocol=tcp dst-address-list=BLOCK_IM src-port=5190
26 ;;; Drop jabber for group BLOCK_IM (out)
chain=forward action=drop protocol=tcp src-address-list=BLOCK_IM dst-port=5222
27 ;;; Drop jabber for group BLOCK_IM (in)
chain=forward action=drop protocol=tcp dst-address-list=BLOCK_IM src-port=5222
В таком варианте блокирование траффика IM не будет т.к. правила разрешающие его 19, 20, 21, 22 стоят выше, чем блокирующие 24, 25, 26, 27. Поднимем их повыше.
[mkt@MikroTik] > ip firewall filter move 24 5
[mkt@MikroTik] > ip firewall filter move 25 5
[mkt@MikroTik] > ip firewall filter move 26 5
[mkt@MikroTik] > ip firewall filter move 27 5
Теперь все работает, что надо пропустить – пропускается, что надо заблокирова – блокируется.
Но адреса можно добавлять не только в ручную, но и динамически, для этого используется таблица Mengle.
Рассмотрим динамическое добавление адресов.
К примеру, нам необходимо заблокировать пользователей, подключающихся из вне к маршрутизатору по протоколу Telnet.
Создаем правило в таблице Mangle, которое добавляет ip адрес источника при попытке подключиться по протоколу tcp на 23 порт через интерфейс ether1, который подключен к провайдеру в группу BLOCK.
[mkt@MikroTik] > ip firewall mangle add chain=prerouting protocol=tcp dst-port=23
in-interface=ether1 action=add-src-to-address-list address-list="BLOCK"
Теперь создадим правило, которое будет блокировать ip адреса, внесенные в группу BLOCK, а заодно поднимем правило на самый верх таблицы.
[mkt@MikroTik] > ip firewall filter add chain=forward src-address-list=BLOCK
action=drop comment="Block incomming from group BLOCK"
[mkt@MikroTik] > ip firewall filter move 28 0
После того, как кто то попробует подключиться к маршрутизатору из вне, то, он автоматически будет включен в группу BLOCK, как это получилось с адресом 192.168.1.217.
[mkt@MikroTik] > ip firewall address-list print
Flags: X - disabled, D - dynamic
# LIST ADDRESS
0 ;;; web, ftp, mail server
SERVER 192.168.0.2
1 ;;; Administrator
FULL 192.168.0.10
2 ;;; User #1
USER 192.168.0.20
3 ;;; User #2
USER 192.168.0.21
4 ;;; User #3
USER 192.168.0.22
5 ;;; User #4
USER 192.168.0.23
6 ;;; User #4
BLOCK_IM 192.168.0.23
7 D BLOCK 192.168.1.217
Это ни в коем случае не “рабочее” решение по защите маршрутизатора, а просто демонстрация работы таблицы Mangle и автоматического добавления адресов в группу.
Продолжение следует…
93 Responses
Сергей, а как можно с микротика получить текущую загрузку канала отдельно каждого пользователя? Я нашел только общий график загрузки канала (в winbox или через веб-интерфейс).
Можно создать индивидуальные правла для клиентских IP и определенных интерфейсов в /queue simple и считывать показания Upload Rate и Download Rate.
Сергей,может подскажите как можно делать такую вот штуку.
Есть микротик. На локальном интерефейсе адрес 192.168.0.2/24 , на внешнем ( имеет выход в интернет ) адрес 193.23.х.70. Также имеется VLAN, который висит на локальном интерефейсе. Для интерфейса с vlan прицеплен адрес 10.9.0.2.
Есть еще сеть с локальным ресурсом 172.30.0.0/16.
В Simple queue заведены пользователи и там им режется скорость.
Так вот… Нужно что бы доступ к локальному ресурсу в сети 172.30.0.0/16 происходил без обрезания скорости. А то, когда пользователь идет в инет – скорость режется, когда на локальный ресурс – тоже режется.
Почему для доступа к лок. ресурсу используется 10.9.0.2? Т.к. через 10.9.0.2 попадаем на маршрутизатор сети в которой есть лок. ресурс. адрес этого маршрутизатора 10.9.0.1, а он уже пропускает нас к 172.30.0.0/16. В route list имеется маршрут: dest 172.30.0.0/16 gateway 10.9.0.1.
Вот такая вот проблема.. Помогите пожалуйста, если сможете.
С Vlan-ами действидельно существует какая то магия, которую я до конца еще не разобрал (на одном внешнем интерфейсе 5-ть адресов, а отвечает только первый не зависимо на какой приходит запрос), но это мелочи, которые сильно не мешают.
У меня похожая ситуация с локальной сетью в подсети провайдера, которая объединяет филиалы, там так же требовалось снять ограничение по скорости.
Решение простое в simple queue правила выполняются по порядку, так же как и в firewall rules, так что достаточно в самом начале таблицы (вверху) завести правило, что все соединения, направляющиеся в подсеть 172.30.0.0/16 идут либо без ограничения, либо с ограничением в 100Мб, причем тут можно задать ограничения на конкретных пользователей, которые будут иметь большую скорость (на пример те, которые работают с файлами по сети) и пользователи, которым большая скорость не нужна (терминальные клиенты), что бы случайно кто то не нагрузил канал, когда он действительно понадобится.
Можно еще для подстраховки сделать несколько правил для доступа в бесплатную сеть, но которая скрывается за внешним ip, одно без ограничения, другое с большим ограничением (буквально в 3кб/с), в первом надо указать интерфейс, который действительно смотрит в ту сеть, а во втором будет другой внешний интерфейс. Надо это для того, что бы если станет проблема с маршрутизацией (по причине отказа интерфейса для доступа без ограничений), что бы трафик не пошел по каналу, который выставить счет за такие глупости.
Сергей, пробовал сделать правило в simple queue. Только может не то делал. Создавал правило, на вкладке Advanced выбирал Dst Address 172.30.0.0/16 , выбирал интерфейс по которому ходит в эту сеть. Target upload и Target Download стаил unlim. На вкладке General пробовал и с Target Address 192.168.2.0/24 и без него. Target up и down ставил на 2 МБ.
Подскажите как по конкретней сделать такое правило….
Очередь применяется к реальным интерфейсам, попробуй выбрать в качестве исходящего интерфейса физический интерфейс на котором создан vlan.
Категорически полезный tutorial.
Кто умеет работать с Cisco и осознает насколько дорогие у них решения, не должен пропустить знакомство с Микротиком. Здесь могут быть решены нетривиальные сетевые задачи так же легко и надежно.
Здр. Сергей.
Знаю что в Mikrotik есть возможность, блокировать контент в котором встречается определенная последовать (цепочка) байт. Подскажите ошибаюсь ли я , и если нет то к примеру как осуществиить блокирование html странички передаваемой с одного интефейса на второй , HTTP > TCP/IP, к примеру содержащей слово "test " или любую другую последовательность байт, если влом обьяснять – намекните куда копать.
Заявленно –
Функции для работы с протоколом TCP/IP :
Firewall и NAT – мощные настройки фильтрации пакетов (применимо к P2P соединениям), прекрасная реализация SNAT и DNAT, возможность классификации пакетов по:
MAC-адресу источника;
IP адресам (возможность задания сетей);
диапазонам портов;
IP протоколам;
опциям протоколов (ICMP типам, TCP флагам и MSS);
интерфейсам;
внутренним цепочкам маркированных пакетов;
ToS (DSCP);
по содержимому пакетов;
по размеру пакетов и др;
К моему вопросу применимы последнии 4 пункта
Вообще по моему это работа для proxy.
Вариант номе два firewall filter можно создать правило, с параметром content= "blablabla ", правда сильно много я с этим не игрался и получилось это только если это "blablabla " содержится в адресе.
На пример способ блокировать одноклассников для группы манагеров.
/ip firewall filter add out-interface=ISP1
dst-address-list=managers content= "odnoklasniki.ru "
action=drop
Добырй День! Подскажите пожалуйста, можно ли в Queues List добавить сразу груупа адресов?то есть у меян етьс дареса 192.168.0.1-255 могу ли я их все сразу, а не по одному добавить в список?
Да, можно, объединяешь адреса в группу, маркируешь пакеты этой группы и потом строишь ограничения для этих пакетов.
Доброго времени суток !
С Новым Годом !
Подскажите , как заблокировать весь p2p – трафик проходящий через Микротик ?
Причем на все адреса .
Будет ли при этом блокироваться mTorrent ?
Попробуйте такое.
/ip firewall filter add p2p=all-p2p action=drop
спасибо большое!
Написано все грамотно и правильно, а главное – доступно.
Премного благодарен автору!
Сергей, скажите, тут нет ошибки? в листе указываем list=FULL а в firewall filter: -address-list= "ADMIN "
Это просто опечатка? или так должно быть?
Я собираю для себя сервер по вашим инструкциям
[mkt@MikroTik] /ip firewall address-list> add address= "192.168.0.10/32 "
list=***** "FULL "****** comment= "Administrator "
Можно переписать так:
[mkt@MikroTik] > ip firewall filter add chain=forward dst-address-list=***** "ADMIN "*****
action=accept comment= "Allow all for group ADMIN "
Да, есть. Большое спасибо, что указали на нее, правила подправил.
Сергей скажите, можно за подсказкой обратиться по майл. А то как то неудобно задавать ламерские вопросы на форуме…
типа такого : при блокировке отдельных портов для отдельных групп
надо поднимать выше прав админа? (указана строка 5)
или только над правилами разрешающими эти порты?
в вашем примере над (19) то есть на пять строк
ip firewall mangle add chain=prerouting protocol=tcp dst-port=23 in-interface=ether1 action=add-src-to-address-list address-list= "BLOCK "
ip firewall filter add chain=forward src-address-list= "BLOCK " action=drop comment= "Block incomming from group BLOCK "
обалденная штука! Не успел поставить, через пару минут выдал IP 87.21.*.* – в ip2.ru посмотрел – Италия! кризисс, хакеры злые и голодные 🙂
Сергей скажите, можно как нибудь настроить микротик, чтобы он собирал самые посещаемые сайты? и потом добавить на них приоритет? или лучше просто прокси запустить?
Ну если сильно захотеть, то все можно, только будет ли от этого польза.
На пример вариант 1 – поставить какой нибудь netflow коллектор, в нем собрать статистику, выделить ip и на основании полученных данных сделать вывод, стоит делать или нет.
Вариант 2 (утрешний/бредовый) – через упоминаемый выше action=add-src-to-address-list сделать правило, которое будет в адрес лист добавлять ip адреса сайтов на которые заходим на 80-й порт, причем, один заход – одно добавление, выделить под это какую нибудь не нужную группу. Как результат получим "мусор " в адрес листе. Далее пишем скрипт на языке сценариев микротика, который будет проходиться по адрес листу и выбирать это "мусорную группу ", считать количество упоминаний конкретного ip и после подсчета он должен создать строчку в адрес листе (или обновить если строка уже есть) с этим ip, но уже внеся его в другую группу и в комментарии к этой строчке поставить (добавить) количество, посчитанное в первой группе, потом удалить упоминание этого ip из "мусорной " группы 🙂 уже весело, так мы постепенно агрегируем данные. Следующим шагом второй скрипт проходит по агрегированным данным, выделяет (допустим) 15 адресов с максимальным числом упоминаний (в комментарии) и дублирует это строчки в третью группу (которую надо предварительно очистить), дальше уже должны быть созданы правила, что обращения к адресам из третьей группы (там где 15 адресов) повышаются в приоритете. Скрипты запускать по планировщику. Вариант действительно бредовый, нагрузку при переборе всех этих адресов определенно создавать будет, но, я думаю, и работать такая идея тоже будет.
Вариант 3 – это модификация 2-ой идеи, но делать все через стороннюю программу, которая будет обращаться к микротику через API интерфейс (в 3-й версии это возможно), забирать "мусорную " группу и выдавать готовый результат.
Вариант 4 – Предоставить работу над всем прокси серверу.
Доброе время суток Сергей! Во-первых хочу поблагодарить тебя за отличные статьи по Микротику. Все описано ясно и понятно даже не сильно посвященному.
Возникла проблема которую долго не могу решить:
есть сервер через интернет к нему конектятся, интернет раздает РС с микротик, конектятся постоянно одни и тежи, но статического ip у них нет. Требуется сделать доступ по МАК адресу, чтобы левые пользователи не могли попасть на сервер. Как привязаться к только МАКу в Микротике так и не понял. Если можешь то подскажи как сделать или хотябы в какую сторону рыть. Может есть иные способы решения не через привзку к Маку. Микротик 2.9. Заранее благодарен за помощь! С Ув.Вадим.
Привязка в маку обычно предполагает связку mac-ip, для этого есть таблица ARP в разделе ip, но коль адрес не постоянный, то смею предположить, что у Вас еще dhcp, то тут я бы сделал сперва привязку в dhcp, что бы конкретному маку выдавался конкретный ip, а потом бы сделал привязку в arp, что если бы кто то другой получил этот ip, то из за не соотвествия mac-у у ниго бы ничего не работало.
Сергей наверно я плохо описал ограничить доступ (фильтрация) нужно людям входящим не из локальной сети, Dhcp на локалку настроен, а тем кто коннектится к серверу из интернета.
PS или я не до конца разобрался? и dhcp можно сделать и для входящих из интернета (только не совсем понятно как это реализовать?) С Ув.Вадим
Скорее на этом моменте надо как то по подробнее рассказать, как они к вам заходят (vpn или на порты, выведенные через nat…)
Здравствуйте Сергей
Прошу помочь советом в такой ситуации. Вот есть такая схема сети: на управляемый коммутатор L2 "приходят " пользователи со своими VLANами, порты untagged, а один порт tagged смотрит на микротик. У всех пользователей белые IP, т.е. кол-во ограничено. Микротик – роутер выпускающий пользователей в интернет, имеет 1 IP адрес на локальном интерфейсе, он же адрес шлюза по умолчанию для пользователей. Скажите, как правильно настроить VLANы на микротике чтобы эта схема работала? Я пробовал создавать на микротике такие же VLANы, привязывал их к локальному интерфейсу, но пока не задам ИП адрес на каждом VLANe, не работает. Как бы "сказать " микротику, что все что приходит на VLAN 1(2,3,4) отправлять на интерфейс ether1? Может немного сбивчиво объяснил, но примерно так.
Здравствуйте, с большим интересом читаю ваши статьи по Микротику. Я начал разбиратьсться с ним не так давно, ваши статьи здорово помогли, спасибо. Если можно, хотелось бы задать вам пару вопросов. Худо-бедно я настроил роутер для раздачи интернета пользователям с помощью PPTP . Провайдер даёт диапазон IP адресов **.**.**.1 – **.**.**.7, при необходимости обещал его расширить, **.**.**.1 – их шлюз, **.**.**.2 я присвоил WAN интерфейсу Микротика и сделал через него маскарад. сейчас пытаюсь разобраться с выдачей реальных IP адресов, вроде всё работает, интересует корректность некоторых моментов:
1. Для выдачи адреса пользователю, подключённому через PPTP, здесь http://forum.nag.ru/forum/index.php?showtopic=50239 советуют включать proxy-arp на WAN интерфейсе, насколько я понимаю, чтоб к полученному IP адресу можно было досучаться снаружи через WAN интерфейс. Я пробовал сделать как описано выше, всё работает, но есть некоторые сомнения, может что подскажете?
2.Есть также пользователь который в силу каких-то причин не хочет использовать PPTP, он должен быть подключён к отдельной сетевой карте на микротике с адресом 192.168.6.1 , я пока дал ему локальный адрес 192.168.6.2 и применил dst-nat с его адреса на адрес **.**.**.3. Заработало только когда назначил этот же IP вторым на WAN интерфейс, то есть у WAN интерфейса получилось два IP – **.**.**.2 и **.**.**.3.
Корректно ли это, или можно как-то по другому сделать доступным адрес **.**.**.3 через WAN интерфейс?
И если пользователю сразу назначить IP **.**.**.3, чтоб не использовать nat, как правильно нужно настроить интерфейс смотрящий к пользователю и машрутизацию?
Здравствуйте Сергей. Объясните мне пожалуйста, поставил себе Микротик. Настроил Web-Proxy, все пользователи в интернет через браузер ходят через него, а вот icq не хочет конектиться к своему серверу, говорит проверьте настройки Proxy.
Странно, я Web-proxy практически не использую на микротике, но буквально сейчас включил, сделал проверку браузером, аськой, джабером, все сразу же заработало (пробовал не прозрачный прокси), может в настройках клиента аськи чего не того?
В настройках аськи прописано: тип подключение прокси http(s) 192.168.1.126 port 3128
смените на простой http, именно он по умолчанию настраивается
День добрый, Сергей.
Вот такой вопрос образовался: необходимо раздать инет с вафли на лан (в первичной настройке проблем нет и без чтения манов даже). но есть одно большое НО. в сети есть куча юзеров, некоторые из них "плохие товарищи " пытаются юзать раздаваемый инет, потому и вопрос – как раздавать инет только нужным MAC'ам? Осложняется всё тем, что в сети dhcp, который не мой и в общем-то он и мешает, потому обычно прописываются ipconfig'и руками у клиентов.
в общем суть: нужно давать инет только определённым MAC'ам с любым IP. сколько ни копал понять как это сделать красиво не смог. хотя на тех же SOHO ASUS'ах есть access list для MAC'ов где можно сделать вайт лист и всё будет душевно ))
Здравствуйте
Подскажите или дайте ссылку по настройке Микротика через Винбокс. Мне нужно настроить ограничение по загрузке файлов (фильмы, музыка и прочая отвлекающая пользователей хрень), также настроить черный список сайтов.
Здравствуйте Сергей! Подскажите как в ВинБоксе настроить черный список сайтов! Помогите пожалуйста!
Вариант 1: Использовать web-proxy и уже там прописывать сайты.
Вариант 2: В фаерволе делать правила фильтрации на основании контента (на второй вкладочке можно указать), но работает не всегда.
Вариант 3: В фаерволе делать правила фильтрации по ip адресам сайтов.
Для себя делал скрипт, который читал из файла черный список сайтов, получал ip адреса этих сайтов, подключался к микротику и вносил в адрес лист эти ip в определенную группу, а уже в фаерволе были правила, которые запрещали соединения с адресами из этой группы. Главное было поддерживать список в актуальном состоянии и раз в какое то время запускать скрипт.
Добрый день.
С линуксом пришлось столкнуться по нужде… Впервые..
Поэтому прошу помощи, даже после прочтения нескольких десятков страниц для чайников и иже с ними…
Микротик 3.30. цель: зарубить торенты, отавить серфинг, Voip, icq, и пару бугалтерских прог.
http работает, https не совсем, например скайп скачать не удалось.
icq пытается подключиться, даже добивается до сервера (выбивает запущенную на другом компе, но на этом и все)
SIPnet так же не удалось запустить(((..
Хотя торент вроде как уже ни чего и не качает..
Скайп попробовать пока не могу, он на виртулбоксе не запускается. Но судя по форумам он должен заработать даже на 443 порту…
/Подскажите плиз, как исправить? необходимо разбираться в маркировке трафа? Но с VoIP это врятле поможет…
10.10.5.2-4 в списке USER
При переносе в список FULL все работает..
Все правила дублируются IN-OUT аналогично первому HTTP
add action=accept chain=input comment= "Added by webbox " disabled=no protocol=
icmp
add action=accept chain=input comment= "Added by webbox " connection-state=
established disabled=no in-interface=ether1
add action=accept chain=input comment= "Added by webbox " connection-state=
related disabled=no in-interface=ether1
add action=drop chain=input comment= "Added by webbox " disabled=no
in-interface=ether1
add action=jump chain=forward comment= "Added by webbox " disabled=no
in-interface=ether1 jump-target=customer
add action=accept chain=customer comment= "Added by webbox " connection-state=
established disabled=no
add action=accept chain=customer comment= "Added by webbox " connection-state=
related disabled=no
add action=drop chain=customer comment= "Added by webbox " disabled=no
add action=drop chain=input comment= "Drop invalid connection packets "
connection-state=invalid disabled=no
add action=accept chain=input comment= "Allow established connections "
connection-state=established disabled=no
add action=accept chain=input comment= "Allow related connections "
connection-state=related disabled=no
add action=accept chain=input comment= "Allow UDP " disabled=no protocol=udp
add action=accept chain=input comment= "Allow ICMP Ping " disabled=no protocol=
icmp
add action=accept chain=forward comment= "Allow all for group FULL " disabled=
yes dst-address-list=FULL
add action=accept chain=forward comment= "Allow all for group FULL " disabled=
yes src-address-list=FULL
add action=accept chain=forward comment= "Allow http for group USER (in) "
disabled=no dst-address-list=USER protocol=tcp src-port=80
add action=accept chain=forward comment= "Allow http for group USER (out) "
disabled=no dst-port=80 protocol=tcp src-address-list=USER
add action=accept chain=forward comment= "Allow https for group USER (in) "
disabled=no dst-address-list=USER protocol=tcp src-port=443
add action=accept chain=forward comment= "Allow ftp for group USER (in) "
disabled=no dst-address-list=USER protocol=tcp src-port=21
add action=accept chain=forward comment= "Allow icq for group USER (in) "
disabled=no dst-address-list=USER protocol=tcp src-port=5190
protocol=tcp
add action=accept chain=forward comment= "Allow SIP for group USER (in) "
disabled=no dst-address-list=USER protocol=tcp src-port=11024
add action=drop chain=forward comment= "All other forwards drop " disabled=no
Сергей, подскажите пожалуйста, можно ли половине юзеров запретить доступ к локальной сети, не запрещая интернет? все юзеры подключены к 2му порту и у всех должен быть инет… ковырял полдня firewall filter – пока безрезультатно…
зачем так мудрено? есть же маска сети и она вовсе не должна быть 255.255.255.0 это как первый вариант.
второй – разбить сеть на две подсети и добавить еще один адрес на локальный адрес микротика, этот адрес будет шлюзом для второй подсети.
совсем забыл… пользователь, который физически рядом с ограниченными пользователями (по одному кабелю они все приходят) должен иметь доступ к сети. арендой ip на dhcp могу разнести по разным подсетям. Вот пока набирал – додумался:
первая подгруппа (неограниченные): адреса 1.1-1.128 gw 1.1, 2ая группа (без доступа к сети) 1.129-1.200 gw 1.129. Но где теперь копать про создание второго шлюза?
имеется wan1 интефейс на нем поднят dhcp клиент из сетки 192,168,1,0/24 за натом находится сеть 10,10,10,0/24 Вопрос как настроить микротик чтобы из первой сети был доступ во вторую?
Здравствуйте Сергей. Подскажите пожалуйста имеются два микротика подключённых к городской LAN, между ними я поднял EoIP тунель, на одном из них поднят интернет (через PPPoE) на все шлюзы он раздаёт, как сделать так что бы интернет был и на втором марше с которым первый соединён по EoIP??? Спасибо.
Здравствуйте, Сергей! Создал список пользователей FULL и USER, при подключении пользователей из списка USER по PPTP они почему-то автоматом переносятся в FULL, хотя их айпи адреса из диапазона списка USER… Где копать?
Может чего те не так в настройках сервера pptp, ведь при подключении он назначает новый адрес и шлюз.
Спасибо, что ответили, нет, в настройках pptp всё ок, диапазон адресов в сети выдаётся dhcp, а при подключении по pptp клиент получает адрес vpn, этот адрес и указан в списке пользователей
Давно никто сюда не писАл. Сергей, да Вы – полковник!(с) )))
С микротиковским sniffer'om пробовали эксперименты?
Здравствуйте Сергей,у меня вот какая проблема:я создал списки пользователей, которые работают без проблем, но необходимо создать еще одну группу, которой будет разрешена только почта Mail.ru. С любым другим сайтом проблем не возникает, создавал такие группы для многих сайтов без всяких проблем, но только не с mail, тут или нет доступа к интернету вообще, или работает наоборот все!!! Подскажите пожалуйста что можно сделать.
Помогите пожалуйста!!!Не знаю как настроить IP-TV на MikroTik RB750GL.Провайдер Триолан. Заранее спасибо!!!
ищите в сторону мультикастов
доброго времени суток. у меня вопрос как на MikroTik RB750GL создать список ip адресов которым будет разрешено выход в интернет а остальным ip которых нет в этом списке нет.
1. Можете сделать привязку по мас-адресам к IP
2. можете задропать все подключенные мас-адреса
3. Можно переместить всех в отдельную группу и запретить им выход в инет, при этом себе, любимому дать god mode )
выбирайте, у Сергея эти варианты расписаны
Сергей подскажите пожалуйста где и что нужно включить в микротике RB750GL что бы можно было контролировать посещаемые сайты юзеров. Зарание огромное спасибо.
… и снифать? )))
А сниффер есть встроенный, работает на уровне пакетов.
/tool shiffer
Добрый день, подскажите , mikrotik на нем крутитяться несколько сетей, необходимо запретить маршрутизацию между сетями,, как ?
Если Вам надо, что бы между собой порты не пинговались и пакеты не ходили, то – ДА, надо запрещать.
в IP – Firewall – adress list
описываете свои подсети, например
local-networks 192.168.0.0/24
local-networks 192.168.1.0/24
local-networks 192.168.2.0/24
затем создаёте правило в firewall rules
chain=forward action=drop src-address-list=local-networks dst-address-list=local-networks
т.е. все пакеты по имени local-networks задропаны (drop), не будут ходить
Соответственно данное правило поднимаем на самый верх ?
Доброго времени суток господа, Я начинающий администратор и передо мной стоит задача блокировки доступа к соц сетям не всему нашему малому оффису а только отдельным группам. Для этого я создал группы в адресном листе как выше описано здесь, пытался заблокировать по контенту(/ip firewall filter> add out-interface=pppoe-out1 dst-address-list= "SALES " content= "*.odnoklassniki.ru " action=drop)не удалось, все упорно работает объясните в чем моя ошибка.
Блокировать надо в firewall по ip
Доброго времени суток нужна помощь специалистов. подключил 2х провайдеов.
первый провайдер: интерфейс kct
второй провайдер: интерфейс farline
настоил по очереди работают, вместе нивкакую
правила маркиовки и распределения тафика:
/ip firewall mangle
add action=mark-connection chain=prerouting disabled=no dst-port=80 new-connection-mark=farline_c passthrough=yes protocol=tcp
add action=mark-connection chain=prerouting disabled=no dst-port=443 new-connection-mark=farline_c passthrough=yes protocol=tcp
add action=mark-connection chain=prerouting disabled=no dst-port=8000 new-connection-mark=kct_c passthrough=yes protocol=tcp
add action=mark-connection chain=prerouting disabled=no dst-port=53 new-connection-mark=kct_c passthrough=no protocol=udp
add action=mark-connection chain=prerouting disabled=no dst-port=21 new-connection-mark=kct_c passthrough=no protocol=tcp
add action=mark-connection chain=prerouting disabled=no dst-port=25 new-connection-mark=kct_c passthrough=no protocol=tcp
add action=mark-connection chain=prerouting disabled=no new-connection-mark=kct_c passthrough=no
add action=mark-routing chain=prerouting connection-mark=kct_c disabled=no in-interface=kct new-routing-mark=kct_r passthrough=no src-address-list=client
add action=mark-routing chain=prerouting connection-mark=farline_c disabled=no in-interface=farline new-routing-mark=farline_r passthrough=no src-address-list=client
ip route add dst-address=0.0.0.0/0 routing-mark=farline_c gateway=farline
ip route add dst-address=0.0.0.0/0 routing-mark=kct_c gateway=kct
ip route add dst-address=0.0.0.0/0 gateway=farline
ip route add dst-address=0.0.0.0/0 gateway=kct
весь трафик идет через ip route add dst-address=0.0.0.0/0 gateway=kct. Где ошика?
Здравствуйте, Сергей
помогите решить "простую " проблему
только разбираюсь с микротиком и не получается сделать настройки для подключения удаленного рабочего стола.
машины в локальной сети коннектятся на удаленный рабочий стол (через интернет)
как правильно написать правило
благодарю.
Здравствуйте, помогите разобраться.
Микротик 750gl, хочу открыть доступ только к 5ти сайтам на машинах 192.168.69.1-192.168.69.5
как это реализовать, выше есть пример как по портам закрывать. Но как закрыть по ip? Пробовал так chain=forward->dst_adress_list=user->content=ip->action=drop не блокирует.
Как правильно сделать!?
Почта: xxxhhhzzz23@inbox.ru
Добрый день сергей, такой вопрос… прокинул порт для подключения через интернет на локальный сервер RDP подключение происходит.. появлсяется приветствие (иногда может даже успеть вылезти кнопка пуск) и потом через несколько секунд стол отключается… в чем собака порылась? 🙂 еще что заметил – пропадает подключение к винбокс, потом заново конектится..
Добрый день!
Спасибо за статью – нашел в ней много интересного для себя. Если можно, то задам Вам 2 вопроса:
1) Почему правила #1 и 2 стоят в самом начале перед правилами с форвардом для конкретных портов? В Вашем случае весь трафик будет уходить именно по правилам 1 и 2.
2) Почему для правил с форвардом и указанием портов Вы не указываете интерфейс входящий и сходящий? Насколько это критично и целесообразно делать?
Доброго времени суток Сергей! Есть пару сотень микротиков которые соединяются через ВПН канал с Главным сервером. Каждый раз при добавление IP адресов или удаление IP-адреса надо подключатся к каждому из них.
Как сделать так чтоб все МикроТик-и в определенное время (например раз в Неделю)подключались куда ни будь (предположим ФТП сервер) и брали оттуда Список (address-list.rsc)с последнем изменениями. Разумеется до обновления списка сначала удаляется вес старый список а потом обновляется новым. Искал но так и не нашел подходящий скрипт. Заранее благодарю.
День добрый. Есть публичный "белый " пул адресов. Зарезервировано 30 адресов под сервера и статику прочим абонентам выдаются остальные адреса.
Хочется завести приватный пул 10.1.1.0/16 и чтобы эти абоненты ходили в интернет через динамически присваиваемый публичный ( "белый ") IP, но не один на всех, а группа адресов.
Ну т.е. есть оставшиеся 220 публичных "белых " адресов делятся на "серый " пул приватных адресов.
хотел сделать так
создаём список приватных адресов
/ip firewall address-list add list=privat_pool address=10.1.1.0/16
создаём список публичных адресов
/ip firewall address-list add list=public_pool address=X.Y.Z.31-X.Y.Z.255
правило для исходящего трафика используя списки
/ip firewall nat add chain=dstnat dst-address-list=public_pool action=netmap to-addresses-list=privat_pool
правило для входящего трафика используя списки
/ip firewall nat add chain=srcnat src-address-list=privat_pool action=netmap to-addresses-list=public_pool
А те абоненты которым выделен публичный "белый " IP адрес мог бы спокойно связываться с приватными "серыми " адресами в пределах одного маршрутизатора.
Обе сети и "белая " и "серая " сидят на одном маршрутизаторе.
Мне сказали что такая настройка работать не будет. т.к. при netmap адреса должны быть один к одному.
Но как тогда сделать динамический список адресов (будет пополнятся/удалятся) и адреса могут быть не по порядку. И использовать диапазон публичных ( "белых ") адресов?
Здравствуйте , помогите разобраться в следующем, есть mikrotik в роли NAS, на внешнем интерфейсе белый IP , настроен НАТ (маскард) для серых адресов , как лучше организовать выдачу белых IP некоторым юзерам, а остальные чтоб и дальше НАТились ??? за ранее благодарю.
Вопрос вот в чем. Как в Микротик добавить список запрещенных адресов? Например, взяв список от того же самого squidguard
Сергей добрый день, у меня вопрос, возможно ли отследить трафик https с помощью L7 регулярных выражений. Если да то как это реализовать? Спасибо
Добрый день Сергей помогите зайти настройки NAT и Firewall у меня через браузер не заходит набираю http:\192.168.88.1cfg а там пишет страница не найдена?
Добрый день. Подскажите скрипт для микротика, по управлению доступами на основе Мас адресов.
настройте firewall, т.е. пропишите в нём свои МАС, остальные – BLACKLIST.
Вот в коментах нашел это
ip firewall filter add chain=forward src-mac-address=00:11:22:33:11:22 action=ACCEPT
Это правильный скрипт ? На добавление.
И если можно как в BLACKLIST добавить, только скриптом.
Спасибо !
Добрый день! Есть микротик который принимает 2 провайдера и раздает для локальной сети. Есть роутер zyxel – который используется как точка доступа принтера к этой локальной сети. После смены основного провайдера юзеры локалки перестали видеть zyxel. А когда напрямую к нему подключаешься пишет Подключение без IP-адреса. Может быть что либо Микротик не дает ему IP или это провайдер?