Запрет доступа в интернет на Mikrotik
Чтобы запретить доступ в интернет определенным ip-адресам во внутренней сети, необходимо в настройках маршрутизатора нажать «IP» — «Firewall«, во вкладке «Filter Rules» добавить новые правила нажав «Add New» или «+«.
В открывшемся окне указать следующие основные параметры:
Chain: forward
Src. Address: например ip адрес 192.168.88.200 или подсеть 192.168.88.240/29 которым необходимо запретить доступ в интернет и разрешить доступ во внутренней сети. Вместо IP можно указать MAC-адрес в Src. MAC Address.
Dst. Address: например 192.168.88.0/24 (маска подсети /24 означает диапазон 192.168.88.1 до 192.168.88.254)
Action: accept
Это правило разрешает хождение пакетов к указанному диапазону ip (Dst. Address), то есть во внутренней сети.
Также во вкладке «IP» — «DHCP Server» — «Leases», если в правилах используется IP, необходимо статически зарезервировать IP адреса к MAC адресам компьютеров, для которых прописаны правила в фаерволе чтобы они получали по DHCP один и тот же IP.
Следующее правило запрещает для указанного IP, MAC-адреса или подсети весь остальной трафик который не указан в разрешающих правилах.
Chain: forward
Src. Address: или Src. MAC Address: тот же что и в разрешающем правиле
Action: drop
В списке правил фаервола также необходимо убедится что разрешающие правила находятся перед запрещающими.
Все.
Защита MikroTik (базовая настройка безопасности устройств)
Базовая настройка защиты роутера MikroTik: настройка устройства, настройка сетевого экрана, защита от сканирования портов, защита от подбора пароля.
В статье даны примеры команд в терминале MikroTik. Если при вставке команды в терминал, происходит автоматическая вставка команд (при выполнении вы получаете ошибку bad command name или expected end of command), нажмите сочетание Ctrl+V, чтобы отключить эту возможность.
Содержание
Пользователи
Создайте нового пользователя с уникальным именем и удалите встроенную учетную запись системного пользователя по умолчанию — admin.
Не используйте простые имена пользователя, пароль должен соответствовать требованиям безопасности.
Если доступ к устройству имеют несколько пользователей, вы можете более подробно задать права выбранному пользователю. Создайте новую группу и определите права пользователей этой группы.
Сервисы
Отключить неиспользуемые сервисы
Отключаем сервисы MikroTik, которые не планируем использовать.
- api, порт 8728 — если не используем API доступ, отключаем;
- api-ssl, порт 8729 — если не используем API доступ с сертификатом, отключаем;
- ftp, порт 21 — если не используем FTP доступ, отключаем;
- ssh, порт 22 — если не используем SSH доступ, отключаем;
- telnet, порт 23 — если не используем Telnet доступ, отключаем;
- www, порт 80 — если не используем доступ через Web браузер (http), отключаем;
- www-ssl, порт 443 — если не используем доступ через Web браузер (https), отключаем.
Изменить порт Winbox
Измените номер порта Winbox по умолчанию — 8291, на другой, свободный номер порта — Port (в примере порт 30122).
При изменении порта, следите чтобы не назначить Winbox порт используемый другой службой, список — здесь.
Обновление
В оборудовании MikroTik (как и в оборудовании других сетевых вендоров) периодически находят уязвимости — своевременное выполнение обновлений необходимая мера для обеспечения безопасности устройства.
Если обновление версии будет найдено, выполните обновление устройства.
Скрипт Проверка обновления RouterOS, пришлет уведомление о выходе новой версии прошивки.
Интерфейсы
Объединим внутренние (доверенные) и внешние (недоверенные) интерфейсы в списки, для удобства дальнейшего управления.
Список «Внутренние интерфейсы»
Помещаем в этот список интерфейсы локальной сети, VPN подключения и т.д.
Список «Внешние интерфейсы»
Помещаем в этот список внешние интерфейсы (интернет и т.д.).

Соседи
Настроим обнаружение устройства используя Neighbor Discovery только для внутренних интерфейсов или разрешенных интерфейсов.
Разрешаем обнаружение только с интерфейсов перечисленных в списке InternalInterfaces.

Межсетевой экран
Настраиваем ограничения доступа к роутеру и устройствам сети с помощью межсетевого экрана MikroTik.
⚠️ Перед добавлением ограничивающих правил — включите Безопасный режим MikroTik!
Разрешить установленные и связанные соединения
Правило «Trusted» — разрешаем уже установленные и связанные подключения, для снижения нагрузки на центральный процессор роутера.
Помещаем правило первым в списке Filter Rules (поместите правило ориентируясь на его номер в комментарии).
Отбросить недействительные пакеты
Правило «Drop Invalid Packet» — отбрасывает недействительные пакеты.
Помещаем правило после правила Trusted, в списке Filter Rules (поместите правило ориентируясь на его номер в комментарии).
Разрешить ICMP
Правило «ICMP» — разрешает ICMP трафик на устройство.
Поместите правило ориентируясь на его номер в комментарии.
Черный список
Создать список
Создаем список BlackList, в который будем помещать IP адреса, которым по какой-то причине запрещен доступ к MikroTik или защищаемым устройствам.
Создать правило
Создадим правило «BlackList» отклоняющее запросы от IP адресов из списка BlackList.
Для экономии ресурсов центрального процессора, запрещающее правило разместим в таблице Prerouting.
⚠️ Правила размещенные в Prerouting выполняются до разделения трафика на цепочки Input и Forward!
Поместите правило по его номеру в комментарии.

На скриншоте видно дополнительные правила:
Блокировка сканеров портов
Правило превентивной блокировки — блокируем ботов/пользователей сканирующих порты устройств в интернете, для поиска уязвимостей. Составим список не используемых портов нашим роутером, внесем в BlackList IP адреса устройств, кто пытается обратиться к указанным портам.
Для защиты от сканеров, которые целенаправленно ищут устройства MikroTik — добавим в список неиспользуемые порты (сервисы MikroTik) и стандартный порт Winbox 8291 (который мы сменили по рекомендации). Добавим популярные уязвимые порты роутеров (если злоумышленник проверяет на роутере данные порты, полностью заблокируем ему доступ).
Применять правило будем только для новых соединений.
TCP порты ловушки
- 20 — FTP-DATA;
- 21 — FTP (если не используете загрузку файлов на роутер через FTP);
- 22 — SSH (если не используете управление роутером через SSH);
- 23 — Telnet (если не используете Telnet подключение к роутеру);
- 25 — SMTP;
- 53 — DNS (если ваш роутер не является DNS сервером для клиентов из интернета);
- 80 — HTTP (если не используете управление MikroTik через браузер);
- 110 — POP3;
- 161 — SNMP (если не используете удаленный мониторинг);
- 443 — HTTPS (если не используете управление MikroTik через браузер);
- 445 — MICROSOFT-DS;
- 3306 — MS SQL;
- 3128 — Squid;
- 3333 — Network Caller ID server;
- 3389 — Microsoft Terminal Server (RDP);
- 7547 — TR-069 (если не используете протокол управления CWMP);
- 8291 — Winbox (порт по умолчанию);
- 8080 — 8082 — Web прокси (если не используете Web Proxy MikroTik).
Создать правило
Помещаем IP адрес недоверенного устройства в BlackList, на 10 часов:
Разместите правило, ориентируясь на его номер в комментарии.

За 10 часов в BlackList находится около 500 IP адресов выполняющих попытки сканировать «уязвимые порты» роутера MikroTik.
Разрешим порт Winbox
Правило «Winbox» — разрешаем подключение на порт Winbox (в примере — 30122).
Поместите правило ориентируясь на его номер в комментарии.
Сбрасываем неразрешенные соединения
Правило «Drop all» — отбросим все соединения, которые не были разрешены раньше и не входят в список доверенных (внутренних) интерфейсов (InternalInterfaces).

Поместите правило на последнюю позицию в правилах Firewall Filter Rules.
Блокируем Bruteforce
Правило «Bruteforce» — поместим IP адрес устройства в BlackList, при повторной неудачной попытке авторизации на устройстве.
При неудачной попытке авторизации MikroTik отправляет ответ с текстом «invalid user name or password» запросившему устройству.
Помещаем IP адрес устройства в BlackList, на 70 минут.

Защита MikroTik — базовая настройка безопасности, обсуждалось в этой статье. Я надеюсь, что теперь вы смогли настроить сервисы роутера и правила файрволла, улучшив защиту роутера MikroTik и устройств локальной сети. Однако, если вы столкнетесь с каким-то проблемами при настройке, не стесняйтесь написать в комментариях. Я постараюсь помочь.
Комментарии 24
А как сделать, что бы после перезагрузки микрота Blacklist оставался. А не стирался.
В правиле «/ip firewall filter add action=add-src-to-address-list address-list=BlackList address-list-timeout=10h chain=input protocol=tcp connection-state=new dst-port=20-25,80,110,161,443,445,3128,3306,3333,3389,7547,8291,8080-8082 comment=»Rule #1 \»Block TCP port scanning\»: add a device scanning an unused port to BlackList.» »
нужно добавить условие In.Interface List — ExternalInterfaces — иначе будет в блэк лист добавлять и устройства внутри сети
Верно, заблокирует. Но зачем внутреннему пользователю доступ к сервисам, которых нет по факту на устройстве? Внутренний «мамкин хакер» (например со сканером портов) попадет так же под раздачу.
«Правило «Bruteforce» — поместим IP адрес устройства в BlackList, при повторной неудачной попытке авторизации на устройстве. » подскажите как сделать, чтобы блокировка была например с 5 неправильной попытки и есть ли смысл в увеличении счетчика?
Варианты защиты MikroTik Fail2Ban для нескольких попыток доступа написаны здесь: https://mhelp.pro/ru/mikrotik-fail2ban-zashchita-ot-ataki-bruteforce/#web
Про смысл нескольких попыток, не вижу необходимости ставить более 3 (ведь даже после первой попытки, вы как системный администратор уже поймете что введен неверный пароль и более внимательно отнесетесь к следующей попытке). Если оставить одну попытку вы в целом сделаете BruteForce бессмысленным и нереально долгим, с одной попыткой ввода пароля например один раз в 10-20 минут.
Здравствуйте. Воспользовался вашей статьей для защиты от Bruteforce.
Непонятно следующее в разделе «Блокируем Bruteforce»:
Где указывается повторная попытка? Мой роутер сразу заносит в черных список после первого ввода неверного пароля.
Так же мой роутер заносит в черный список только если стучатся через winbox. Попытки подбора пароля через браузер продолжают проходить. Где посмотреть корректность настройки?
Для защиты от подбора пароля через браузер нужно использовать другие правила, для Web доступа они прописаны здесь: https://mhelp.pro/ru/mikrotik-fail2ban-zashchita-ot-ataki-bruteforce/#web
Добрый день. Столкнулся с проблемой и незнаю в какую сторону копа. В сети с моим микротиком находятся еще два (другие модели), и один из них «занял» все адреса моей подсети. И теперь получается если я подключаю оборудование в сеть пишет что адрес занят. Подскажите что не так я настроил?
https://i116.fastpic.org/big/2021/1103/af/a072bf850d419a471d024fc10bf97baf.png
В разделе «Разрешить ICMP» опечатка:
Protocol=icmp; Action: Action=drop
исправить на action=accept
Большое спасибо Евгений! Поправил.
Как оградиться от влазивающей соседки. Доступ к роутеру и ноуту есть. Не таскать же их с собой. Пароли менять боится — докажу что не сосед лезет. Вот только восстановил сеть. Начались выбрасывания из сети
И кстати, её IP я не вижу. Даже в настройках роутера
Едрён-батон, хоть бы слово понял. Это что? Куда прописывать? Ребята, вы ж для чайников пишете. Третья сотня водки зазря ушла. Эхххх. Не быть мне под защитой.
Что именно непонятно? Попробую помочь.
В квадратных скобках указана последовательность нажатия кнопок в окне Winbox.
Просто фраза, типа, «введите». Не понимаю куда вводить. Не в досе же в конце концов прописывать). Где то в настройках роутера. А там их тьма тьмущая. И все не русские. А в языке ангелов я, извините, профан.
У каждого пункта статьи указано два варианта выполнения:
1. вариант нажимать на пункты меню Winbox, они подписаны в квадратных скобках;
2. вариант «вводить» в терминал MikroTik (в окне управления Winbox, нажмите на кнопку New Terminal).
Например в первом пункте Пользователи:
Нажмите на кнопку [System], потом на кнопку [Users], в открывшемся окне нажмите на вкладку [Groups], потом на кнопку [+] и введите параметры нового пользователя.
Но, если нет знаний по оборудованию MikroTik, я бы не рекомендовал самостоятельную настройку этого оборудования или использовать вариант QuckSet (Быстрая настройка) из меню Winbox (этот «матер настройки» в меру удобно и безопасно настроит устройство).
Хотя если есть время и любопытство, то можно встать на тернистый путь настройки устройства с 0. Но в комментариях это будет делать не так просто.
вот КМК полезные правила в RAW
/ip firewall raw
add action=drop chain=prerouting comment=»drop blocked list» dst-address-list=blocked_list
add action=drop chain=prerouting comment=»drop bruteforces» src-address-list=bruteforce_blacklist
add action=drop chain=prerouting comment=»drop from guest to local» dst-address-list=local_network src-address-list=guest_network
add action=drop chain=prerouting comment=»drop DNS» dst-port=53 in-interface-list=list_all_wan protocol=tcp
add action=drop chain=prerouting comment=»drop DNS» dst-port=53 in-interface-list=list_all_wan protocol=udp
add action=drop chain=prerouting comment=»drop SNPP» dst-port=444 in-interface-list=list_all_wan protocol=tcp
add action=drop chain=prerouting comment=»drop SNPP» dst-port=444 in-interface-list=list_all_wan protocol=udp
add action=drop chain=prerouting comment=»drop SMB» dst-port=445 in-interface-list=list_all_wan protocol=tcp
add action=drop chain=prerouting comment=»drop SMB» dst-port=445 in-interface-list=list_all_wan protocol=udp
add action=drop chain=prerouting comment=»drop NetBIOS» dst-port=137,138,139 in-interface-list=list_all_wan protocol=udp
1. Каждое правило которое будет добавлено в Firewall, является «преградой» для трафика, который проходит через ваш роутер. Обработка каждого правила затрачивает ресурсы CPU вашего роутера.
При больших объемах трафика, при большом количестве правил, при большом объеме выполняемых скриптов и слабом CPU роутера — это может оказаться проблемой, которая проявляется неожиданно.
Поэтому я стараюсь писать минимум правил и использовать объединение правил.
2. По мне это большой избыток правил, которые заставят CPU вашего роутера заниматься пустой тратой ресурсов. Посмотрите счетчик правила и оцените, какое количество пакетов, от общего числа блокируется данным правилом и оцените полезную нагрузку (каждое из правил это преграда для всех пакетов обрабатываемых роутером). В статье, все это будет отбрасываться последним правилом.
Так же рекомендую учесть «расположение роутера», большинство пользователей находится за NAT провайдера с «серым IP адресом», у них в целом отсутствует возможность прямого обращения извне и подобные правила будут создавать совершенно бесполезную нагрузку.
Например тестовый роутер с «белым IP адресом» заблокировал 8000 попыток обращения к уязвимым портам, а роутер за NAT провайдера — 270 попыток, за 6 дней.
Если количество обращений по данным портам — значительно, стоит выделить блокировку в отдельное правило, для снижения нагрузки на CPU роутера.
Если кто-то «хитрый» каким либо способом узнает вашу подсеть и пропишет у себя маршрут до вашей сети, то будучи в сети провайдера, попадет к вам в сеть. Хорошо бы запретить весь входящий трафик на wan не dst-nat
add action=drop chain=forward comment=»drop forward new in \»list_all_wan\» !dstnat» connection-nat-state=!dstnat connection-state=new in-interface-list=list_all_wan
Задача статьи не стоит «Всеобъемлющее руководство по максимальной защите MikroTik на все случаи жизни».
Сомнительной полезности правило в случае, если в локалку проброшены какие-то порты
Правило конечно крутое
/ip firewall filter add action=add-src-to-address-list address-list=BlackList address-list-timeout=10h chain=input protocol=tcp connection-state=new dst-port=20-25,80,110,161,443,445,3128,3306,3333,3389,7547,8291,8080-8082 comment=»Rule #1 \»Block TCP port scanning\»: add a device scanning an unused port to BlackList.»
, но как быть с DNS ?
Я настраиваю Firewall по правилу «запрещено всё, что не разрешено» (и советую делать так же), хотя есть вариант настройки Firewall «разрешено всё, что не запрещено».
В моём случае трафик на 53 порт, с внешних интерфейсов будет отброшен финальным правилом, так же как и любой другой не разрешенный предыдущими правилами.
Я часто нахожу совет отклонения запросов на 53 порт (как и многих других) отдельным правилом, но перед написанием статьи у меня больше недели велись логи обращения к портам устройства.
Сравнив количество обращений к портам, были выбраны именно указанные в статье порты.
Я не отрицаю, что в практике сетевого администратора может быть и другой опыт, когда поток запросов на этот порт превысит совокупное обращение к другим портам, в этом случае, для снижения нагрузки на роутер, можно вынести отдельное правило.
Если я правильно понимаю, то вы запрещаете «TCP порты ловушки», но там отсутствует порт 53 (а там еще UDP).
На сколько я знаю, для микротика по нагрузке одинаково, сделаете вы 10 одинаковых правил с разными портами или сделаете одно правило с 10 портами через запятую.
Записки IT специалиста
Настройка черного и белого списков в роутерах Mikrotik
- Автор: Уваров А.С.
- 04.10.2019
Ограничение доступа к тем или иным ресурсам сети интернет на основе списков достаточно популярный способ фильтрации, несмотря на его недостатки. Действительно, в большинстве случаев требуется заблокировать достаточно небольшой список ресурсов, скажем, соцсети, с чем данный метод вполне успешно справляется. В данной статье мы поговорим о том, как настроить фильтрацию по спискам на роутерах Mikrotik, тем более что RouterOS предоставляет нам для этого достаточно широкие возможности.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Прежде всего поговорим об особенностях фильтрации в условиях современного интернета. Основной тенденцией последних лет является массовый переход на протокол HTTPS. Что это означает? В отличие от HTTP, который передает данные открытым текстом, HTTPS использует SSL-шифрование и все, что мы можем увидеть для такого соединения — это домен назначения. Какие именно страницы посещает пользователь на указанном домене и какие данные оттуда передаются мы видеть не можем.
Из этого следует, что мы не можем блокировать отдельные страницы, но можем заблокировать домен целиком. Для большинства сценариев этого вполне достаточно. Но здесь нас подстерегает другая неприятность, многие сайты используют CDN (Content Delivery Network, сеть доставки контента), такие как CloudFlare и заблокировав нужный вам сайт вы можете также ограничить доступ к большому количеству сторонних ресурсов. Что из этого может выйти все мы видели во время ковровых блокировок РКН против Телеграм.
Также следует понимать, что блокировка посредством черных списков применима лишь к небольшому числу ресурсов, например, популярные соцсети, попытка таким образом фильтровать весь нежелательный трафик выливается в необходимость постоянной актуализации списков и может привести к высокой нагрузке на оборудование. Для таких целей лучше использовать специализированные сервисы.
Другой вариант — белые списки, при всей видимой простоте и надежности, сталкиваются с другой проблемой. Многие сайты активно используют внешние ресурсы, с которых подгружают скрипты, шрифты, стили и т.д. и т.п. и некоторые из них могут являться критичными для обеспечения полноценной работы. Также могут возникнуть проблемы с HTTPS, если браузер не сможет проверить статус SSL-сертификата. Все это потребует грамотного анализа и добавления в белый список всех тех узлов, которые необходимы для нормальной работы каждого из разрешенных сайтов.
Создаем списки
Для настройки фильтрации нам понадобятся минимум два списка: список доменов и список пользователей. С доменами понятно, это те сайты, к которым мы хотим запретить доступ или, наоборот, разрешить. Создаются такие списки просто: IP — Firewall — Address Lists где добавляем новый адрес, в поле Name вписываем имя листа, если это первая запись, либо выбираем его из выпадающего списка. В поле Address указываем IP-адрес или доменное имя ресурса, при указании доменного имени в список будут внесены все IP-адреса сайта, и они будут обновляться с периодичностью указанной в TTL домена.
![]()
В нашем случае мы добавили домен yandex.ru в список WL (whitelist, белый список). Обратите внимание, что адреса www.example.com и example.com — это разные доменные имена, которые могут иметь разные IP-адреса (в целях балансировки нагрузки) и поэтому следует добавлять оба варианта (или проверять что между ними нет расхождений).
В командной строке это же действие можно выполнить так:
Таких списков мы можем создать сколько нам нужно, причем один и тот же адрес может входить сразу в несколько списков. Это удобно, если нужно обеспечить для разных групп пользователей доступ к разному набору сайтов. В итоге у вас должно получиться примерно следующее:
![]()
В данном примере реализовано два списка: WL — белый список и BL — черный список. Обычно в реальной жизни используется что-то одно, в нашем случае создание данных списков обусловлено сугубо учебными целями.
С доменами разобрались, остались пользователи. Существуют две политики применения правил: разрешено всем, кроме группы пользователей и запрещено всем, кроме группы пользователей. В любом случае у нас имеется группа пользователей, которая либо подвергается ограничениям, либо выводится из-под их действия. В грамотно спроектированной системе такая группа должна являться меньшинством, что обеспечит минимальную нагрузку на сетевое оборудование.
Также вспомним, что в руках у нас роутер, т.е. устройство, работающее на сетевом уровне (L3), а значит основные параметры, с которыми он может работать — это адрес источника и адрес назначения. Адрес назначения — это домен, выше мы его уже разобрали. Адрес источника — это как раз пользователь, точнее — сетевое устройство пользователя. В самом простом случае мы можем создать еще один список и добавить туда IP-адреса нужных устройств.
Но на практике адреса раздаются сервером DHCP, это не проблема, создаем резервирование IP-адреса, для чего следует перейти в IP — DHCP-Server — Leases и открыв запись нужного адреса нажать Make Static.

После чего закрываем и снова открываем запись и в поле Address List вводим, если это первая запись, или выбираем имя списка, куда будет добавлен IP-адрес данного компьютера, в нашем случае это список USER.

Либо через командную строку:
Таким образом мы получаем список пользователей, либо несколько списков, в которых указанные адреса будут находиться до тех пор, пока на сервере активно резервирование.
Черный список
Начнем с самого простого сценария — черного списка. Сначала настроим вариант, когда такой список применяется ко всем пользователям, кроме членов списка USER. Для этого перейдем в IP — Firewall — Filter Rules и создадим новое правило. На закладке General укажем Chain — forward и In. Interface — bridge1:
![]()
На закладке Advanced указываем Src. Address List — USER и ставим перед ним восклицательный знак (символ инверсии правила), что будет означать кроме входящих в группу. В поле Dst. Address List указываем BL — т.е. наш черный список доменов.
![]()
И наконец на закладке Action указываем действие, обычно везде в интернете указывают drop, хорошо, укажем и мы.
![]()
Данное правило должно располагаться самым первым в цепочке FORWARD, выше FastTrack.
Теперь попробуем посетить запрещенный сайт:
![]()
Страничка не грузится, однако браузер не понимает в чем дело и продолжает попытки ее грузить (т.е. в заголовке вкладки постоянно крутится колесико), это нагружает ресурсы ПК и не вносит ясности пользователю. Так происходит из-за того, что мы просто убиваем пакеты — действие drop, и отправитель не понимает почему нет ответа. Поэтому для внутренних ресурсов лучше использовать действие reject, которое отправляет назад пакет с сообщением что ресурс недоступен.
После замены действия при повторной попытке посетить ресурс мы сразу увидим сообщение о его недоступности:
![]()
Быстро добавить правило через командную строку можно так:
Теперь немного изменим задачу, применим черный список только к группе USER. Для этого немного изменим условия на закладке Advanced, а именно укажем Src. Address List — USER без восклицательного знака, в итоге условие будет читаться как: если источник в группе USER и назначение в группе BL.
![]()
Или в командной строке:
Таким образом фильтрация по черным спискам не представляет особых сложностей. Все упирается в эти самые списки, которые нужно составлять и поддерживать в актуальном состоянии. Загрузить в роутер готовые списки из интернета также не очень хорошая идея, потому как каждый пакет будет проверяться на вхождение в список, что может вызвать серьезную нагрузку на роутер, при том, что подавляющее большинство адресов из этого списка ваши пользователи могут никогда не посещать. Поэтому следует трезво оценивать собственные ресурсы и возможности и применять списки там, где это действительно нужно.
Белые списки
На первый взгляд организация доступа в сеть по белым спискам ничем принципиально не отличается от черных, однако это не так, выше мы уже говорили почему и далее покажем это на примерах. А пока реализуем схему с доступом по белым спискам для всех, кроме группы USER.
Снова перейдем в IP — Firewall — Filter Rules и создадим новое правило. На закладке General также укажем Chain — forward и In. Interface — bridge1 , на Advanced указываем Src. Address List — !USER и Dst. Address List — !WL:
![]()
И на закладке Action указываем действие reject. Таким образом данное правило будет блокировать все соединения, если адрес отправителя не входит в группу USER и адрес назначения не входит в белый список WL.
Аналогичное действие через консоль:
Данное правило также следует располагать первым в цепочке FORWARD.
Добавим к разрешенным несколько адресов, в нашем случае yandex.ru и interface31.ru и попробуем открыть один их них. Яндекс открывается, но выглядит довольно непривычно.
![]()
Многие картинки, которые располагаются на иных серверах, включая сервера самого Яндекса, но имеющего другие IP-адреса просто не подгружаются. Хотя никаких фатальных последствий это не несет, как поисковик Яндекс работает. А вот в почту войти уже не получится, для этого придется разрешить как минимум mail.yandex.ru и passport.yandex.ru.
Теперь попробуем открыть наш сайт. А вот тут первый неприятный сюрприз:
![]()
Что это значит? Браузер не может проверить подлинность сертификата, а так как наш сайт использует HSTS, то доступ к нему будет невозможен, потому как подобные действия могут указывать на атаку с понижением степени защиты, чему HSTS должен препятствовать.
Для того, чтобы браузер смог проверить сертификат нам нужно разрешить доступ к сведениям центра сертификации, адреса нужных узлов можно найти в самом сертификате сайта:

В нашем случае оказалось достаточно добавить узел ocsp.int-x3.letsencrypt.org, сайт загрузился, но без комментариев, так как они реализованы на стороннем ресурсе и разрешение доступа к нему не решило проблемы. В этом случае вам придется либо заниматься долгим и кропотливым выяснением необходимых для работы ресурсов и занесением их в белый список, либо отказываться от части функционала сайтов.
Чтобы применить белый список только к участникам группы немного изменим правило: в Adwanced указываем Src. Address List — USER, т.е. без восклицательного знака. Теперь логика правила изменится и будут блокироваться все соединения для группы USER, кроме тех, которые разрешены белым списком.
![]()
Либо в командной строке:
Как видим, технически организовать доступ по белым спискам не так уж сложно, гораздо сложнее обеспечить полноценную работу разрешенных сайтов, что требует достаточно долгой и кропотливой работы по выявлению и добавлению в список связанных ресурсов.
Layer 7 protocol
Layer 7 protocol — это методика поиска определенных вхождений в ICMP/TCP/UDP потоках при помощи регулярных выражений. На первый взгляд достаточно интересная возможность, существенно расширяющая степень контроля над проходящим трафиком, но есть один существенный недостаток. Как уже понятно из названия, данный вид фильтрации работает на прикладном (L7) уровне, т.е. полностью обрабатывается CPU и даже при небольшом количестве правил способен создать сильную нагрузку на оборудование, особенно старые (не ARM) модели.
Использовать L7 для блокировки сайтов не рекомендуют сами разработчики Mikrotik, справедливо замечая, что в большинстве случаев это не будет работать так, как задумано, но при этом вы будете впустую растрачивать вычислительные ресурсы роутера. На наш взгляд использовать L7 для задач, связанных с доступом к сайтам вообще бессмысленно. Современный трафик в подавляющем большинстве шифрованный и различного рода конструкции для анализа URL просто не будут работать, а управлять доступом на основе доменного имени вполне можно и на L3 (чем мы занимались выше).
По этой же самой причине не будут работать многие размещенные в интернете инструкции, где трафик фильтровался по содержимому, типам файлов или потоков, использовал параметры запросов и т.д. и т.п. Хотя мы до сих пор встречаем статьи, в которых по L7 пытаются блокировать соцсети или Youtube, мотивируя это большим числом адресов, использованием CDN, поддоменов и т.д. и т.п. Однако все это не выдерживает никакой критики, соцсети и видеохостинги прекрасно блокируются по доменному имени.
Мы не рекомендуем использовать L7 во всех тех случаях, когда задачу можно решить иным образом, применяя его только для решения специфичных задач. Например, выявления и блокировки какого-либо вида трафика.
Поставим для примера следующую задачу: заблокировать возможность установления SSH-соединений для клиентов сети. Решение в лоб — заблокировать исходящие соединения на 22 порт не принесет успеха, так как SSH-сервер может работать на произвольном порту. Поэтому нужно при помощи специальных паттернов определить наличие именно SSH-трафика и каким-то образом его блокировать.
Где брать паттерны? Опытные пользователи могут запустить сетевой сканер (tcpdump, Wireshark) и проанализировать доступное содержимое пакетов и на основании полученной информации составить регулярное выражение. Либо воспользоваться сайтом l7-filter.sourceforge.net, однако большая часть паттернов оттуда работать не будет. Во-первых, сайт достаточно старый, последний раз обновлялся в 2009 году, во-вторых, очень многие протоколы перестали использоваться в открытом виде, а используют SSL-шифрование. В этом случае вы просто увидите SSL-поток, блокировать который бессмысленно, так как вы заблокируете практически весь интернет.
Для решения нашей задачи сначала перейдем в IP — Firewall — Layer 7 protocol и создадим новый фильтр: в поле Name напишем произвольное имя, в нашем случае SSH, а в поле Regexp внесем регулярное выражение паттерна:

Также можно выполнить команду в терминале:
Что делать дальше? Самое очевидное решение — использовать данный фильтр в правилах брандмауэра является примером того, как делать не надо. В этом случае через L7 фильтр будет проходить каждый пакет, что вызовет сильную нагрузку на CPU роутера.
Поэтому мы пойдем другим путем и на основании L7 фильтра будем маркировать соединения, которых гораздо меньше, чем пакетов. Перейдем в IP — Firewall — Mangle и создадим новое правило: на закладке General выставляем Chain — prerouting, Protocol — tcp и Сonnection Mark — no mark:
![]()
На закладке Advanced указываем использование созданного нами фильтра Layer 7 Protocol — SSH:
![]()
В Action указываем действие mark-connection, задаем марку соединения New Connection Mark — SSH-CONN и обязательно ставим флаг Passthrough для прохождения пакета далее по цепочке:
![]()
Затем добавим еще одно правило: General — Chain — prerouting, Protocol — tcp и Connection Mark — SSH-CONN:
![]()
А в действиях добавим mark packet, New Packet Mark — SSH-PCK и снимем флаг Passthrough:
![]()
Все тоже самое быстро делается в командной строке:
Многие читатели не работают с брандмауэром дальше таблицы Filter, поэтому что, что мы сейчас сделали в Mangle может показаться им какой-то особой магией. Коротко поясним наши действия. Первое правило проверяет все немаркированные соединения и те из них, которые сосуществуют фильтру L7, т.е. SSH-соединения получают метку SSH-CONN и продолжают движение по цепочке. Следующее правило проверяет соединения и все пакеты соединений, промаркированных как SSH-CONN снабжает меткой SSH-PCK.
Таким образом мы пометили все пакеты, относящиеся к SSH-соединениям, но L7 фильтр мы используем только для соединений, не нагружая роутер проверкой каждого пакета. Теперь запретим транзит таких пакетов, для этого вернемся в IP — Firewall — Filter Rules и создадим правило, на закладке General которого укажем: Chain — forward, Рrotocol — tcp, In Interface — bridge1 и Packet Mark — SSH-PCK:
![]()
На закладке Action ставим действие drop. То же самое в консоли:
Ставим это правило также в начало цепочки FORWARD и если вы все сделали правильно, то установить SSH-соединение из вашей сети больше никому не удастся.

Следует понимать, что выше был лишь пример того, как можно использовать Layer 7 protocol на Mikrotik, в реальной ситуации следует несколько раз подумать и прибегать к возможностям L7 только тогда, когда все остальные варианты исчерпаны. Также старайтесь как можно более подробно описывать условия, для правил использующих L7 фильтры, чтобы максимально уменьшить нагрузку на процессор роутера.
Фильтрация по MAC-адресам
Наши читатели с завидным постоянством спрашивают нас как можно организовать фильтрацию по MAC-адресам. Мы уже говорили и повторим еще раз, что считаем такую фильтрацию не самым оптимальным способом, потому что для идентификации следует использовать более высокоуровневые параметры: пользователя или IP-адрес. Но если сильно хочется, то почему бы и нет.
Среди условий в правилах брандмауэра есть опция MAC-адреса, но в одном правиле можно указать только один адрес, т.е. для каждого MAC вам придется создать свою копию правила, что увеличит нагрузку на устройство и сделает набор правил трудночитаемым.
В тоже время MAC-адрес нам нужен для одной единственной цели — идентифицировать пользователя, что мы также можем сделать и по IP-адресу, для этого нам нужно будет преобразовать MAC в IP, который уже можно добавить в один из списков и использовать представленные нами выше правила. В этом нам снова поможет таблица Mangle.
Откроем IP — Firewall — Mangle и добавим правило, на закладке General укажем Chain — prerouting, In Interface — bridge1, на Advanced в поле Src. MAC Address укажем MAC-адрес нужного устройства.

И на закладке Action добавим действие add src to address list, где в поле Address List укажем требуемый список пользователей, в нашем случае USER, а в поле Timeout укажите требуемое время жизни записи, это нужно для того, чтобы запись обновилась при смене обладателем MAC IP-адреса. На скриншоте мы, в тестовых целях, использовали 5 секунд, в реальной жизни руководствуйтесь здравым смыслом и выбирайте более высокие значения.

Это же правило в командной строке:
Теперь первый пришедший с данного устройства пакет добавит его IP-адрес в указанный нами список, тем самым связав его с текущим MAC на время указанное в Timeout. Для каждого следующего устройства необходимо создать подобное правило, также не забывайте снабжать каждое из них комментарием, чтобы впоследствии вам и вашим коллегам было понятно о каком именно устройстве идет речь.
Заключение
Как видим возможности RouterOS позволяют решать достаточно сложные задачи используя даже недорогие роутеры. Но следует понимать ограничения всех вышеперечисленных методов, осознавая их достоинства и недостатки. А также соотносить свои требования с возможностями оборудования. Если понимать и принимать во внимание эти факторы, то фильтрация по спискам на Mikrotik будет эффективным инструментом в руках администратора. В противном случае вы получите только разочарование и иные негативные последствия. Поэтому пожелаем вам благоразумия и напомним: хороший администратор выбирает для каждой задачи наиболее подходящий инструмент, что является признаком профессионализма. А фанатизм еще никого до добра не доводил.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Block Internet Access but keep Local Network access in MikroTik
How to block IP Address in MikroTik to Restrict the internet?
Mikrotik provides world-class RouterOS firmware loaded with all the best features. There are many popular MikroTik network devices used by telecom operators worldwide. If you are MikroTik router user and you must use Mikrotik CCR series routers to deploy a large and medium-sized network. In an earlier post, we published an article about login Mikrotik routers using winbox and IP address.
If you are an administrator or network operators you must require to block the user and IP addresses in the network for security reasons. If you looking to block IP address in Mikrotik router to block internet access for specific LAN users without blocking local network sharing. This post gives you user manual to block user in MikroTik router using IP address block option.
- How to setup VPN in Mikrotik Router for Remote Access
If you have any of the MikroTik models from CCR, Mikrotik Base box, Mikrotik RB750 Series and Mikrotik Fiber switch or wireless device belong to Mikrotik will support this user guide. You need to login to MikroTik RouterOS using winbox or web interface to setup a User internet block using IP Address.
Steps to Block User in MikroTik using IP Address
The first steps to access RouterOs settings from Winbox configuration utility.
- Connect the MikroTik router or wireless device to the computer or laptop LAN ports. latest version from Downloads
- Default Login IP Address http://192.168.88.1
- Default username: admin and password is blank for default mode.
- Login your MikroTik cloud core router, RB450, MikroTik Sxt lite or any models you are using for the internet.
- Factory Reset of MikroTik Router | 3 Method
Check User IP address provided by DHCP server
To prevent internet access for specific LAN or wifi user you must know the IP address assign to the user from the DHCP server.
You can check all the connected computer and mobile device list with Mac address and allotted IP address list.
Go to IP- DHCP Server
Leases tab
Check the Active host option for the computer or mobile name. see mac address and IP address details for a specific user you want to block.
Note the IP address of mobile or computer you want to restrict internet access.

Create Address List for Block IP Address
The next step to create an address list under firewall options to make blacklist to block internet access for those IP addresses.
Go to IP-Firewall option
Go to the Address List tab.
Press Plus (+) button to create a new firewall address list
New- Block Users
Address: 192.168.88.254 (or any IP address you got from lease assign to user you want to block)

Press Apply and OK button to create a list.
You can create multiple IP addresses under the same block user list to restrict multiple users at the same time to access the internet.
- MikroTik Hap WiFi Router WISP Mode Configuration
Create Firewall Rules to Block Internet Access
Create new Filter rules to Block client internet access, but allow local access for users added to the block list.
Go to the IP-Firewall option from the left side menu.
Filter Rules tab
1: Press Plus (+) button to make new filter rules.
2: New Firewall Rules – Go to Advanced Tab first
Select Src. Address list- Block user (or whatever name you have given to Firewall address list)
3: Go to Action tab
Action- Drop

Press Apply and OK button to confirm filter rules.
After creating firewall block rules internet access will block for specific users added to blacklists.
To disable user blacklist just select the rules and press cross (Cross) button to disable temporarily.

This is a simple way to block internet users with IP address blocking for specific LAN and WIFI users in the network.
Making this rules list will not block internal local network sharing and all computers can share data from the network without any problems. This MikroTik router configuration will help you to block unwanted traffic from specific users in the network and prevent any network glitch without disturbing whole networks.