Родительский контроль на MikroTik — Kid Control
Kid Control — встроенный модуль RouterOS для ограничения интернет-доступа детских устройств по расписанию, скорости и категориям сайтов. Появился в RouterOS 6.42, значительно доработан в версии 7. В отличие от firewall-правил или DNS-блокировки, Kid Control предоставляет простой и понятный интерфейс для создания профилей с расписанием, привязкой устройств по MAC-адресу и мгновенной паузой. Модуль доступен через WinBox, WebFig и CLI, что делает его удобным инструментом даже для администраторов без глубоких знаний firewall. В этом руководстве настроим Kid Control для типовой домашней сети, разберём ограничение по времени, скорости и DNS-фильтрацию, а также рассмотрим способы обхода и защиту от них.
Описание
Что такое Kid Control
Kid Control — это встроенная функция MikroTik RouterOS, объединяющая несколько механизмов контроля доступа в единый профиль:
| Функция | Механизм | Описание |
|---|---|---|
| Расписание | Firewall + scheduler | Разрешённое время доступа по дням недели |
| Привязка устройств | MAC-адрес | Идентификация устройств ребёнка |
| Ограничение скорости | Simple Queue | Rate limit для каждого профиля |
| Мгновенная пауза | WinBox / WebFig / CLI | Немедленное отключение интернета |
| Мониторинг | Встроенный счётчик | Время онлайн за день |
Kid Control не требует дополнительных пакетов и работает на любом устройстве MikroTik с RouterOS 7.x.
Архитектура модуля
Kid Control создаёт динамические firewall-правила и очереди на основе профиля. При активации профиля RouterOS автоматически:
- Добавляет правила в
/ip/firewall/filterдля блокировки трафика вне расписания - Создаёт Simple Queue для ограничения скорости
- Привязывает устройства по MAC-адресу из DHCP lease
code[Устройство ребёнка] │ ▼ [Bridge / Wi-Fi] │ ▼ [Kid Control Profile] ├── Расписание → firewall filter (drop вне времени) ├── Rate Limit → Simple Queue (max-limit) └── DNS → блокировка категорий через DNS override
Сравнение методов ограничения доступа
| Критерий | Kid Control | Firewall Filter | DNS Blocking |
|---|---|---|---|
| Сложность настройки | Низкая | Высокая | Средняя |
| Расписание по дням | Встроенное | Через scheduler + address-list | Вручную через scripting |
| Ограничение скорости | Встроенное | Нет (нужны queues) | Нет |
| Мгновенная пауза | Одна кнопка в WinBox | Вручную disable/enable правил | Нет |
| Мониторинг времени | Встроенный | Только через accounting | Нет |
| Блокировка сайтов | DNS-категории | Layer 7, address-list | Полноценная (DoH, Pi-hole) |
| Обход через VPN | Легко обходится | Можно заблокировать порты VPN | Легко обходится |
| Гибкость | Ограниченная | Максимальная | Средняя |
Kid Control — оптимальный выбор для домашней сети, когда нужно быстро настроить расписание и лимиты для 2–5 устройств ребёнка. Для корпоративной сети или сложных сценариев лучше использовать комбинацию firewall + DNS.
Терминология
| Термин | Описание |
|---|---|
| Profile | Набор правил для конкретного ребёнка (расписание, лимиты) |
| Device | Устройство, привязанное к профилю по MAC-адресу |
| Time | Разрешённое время доступа к интернету по дням |
| Rate Limit | Ограничение скорости загрузки и выгрузки |
| Pause | Мгновенное отключение интернета для профиля |
| Blocked | Состояние профиля, когда доступ запрещён (вне расписания или пауза) |
Настройка
Шаг 1: Создание профилей Kid Control
Создадим два профиля — для младшего и старшего ребёнка с разным расписанием.
[admin@MikroTik] ># Профиль для младшего ребёнка — строгое расписание /ip/kid-control add name=junior \ mon=15h-20h \ tue=15h-20h \ wed=15h-20h \ thu=15h-20h \ fri=15h-21h \ sat=10h-21h \ sun=10h-20h \ rate-limit=10M/10M \ disabled=no # Профиль для старшего ребёнка — более свободное расписание /ip/kid-control add name=senior \ mon=14h-22h \ tue=14h-22h \ wed=14h-22h \ thu=14h-22h \ fri=14h-23h \ sat=9h-23h \ sun=9h-22h \ rate-limit=50M/50M \ disabled=no
Формат времени: HHh-HHh, где HH — часы. Каждый день недели указывается отдельным параметром (mon, tue, wed, thu, fri, sat, sun). Если день не указан, доступ в этот день запрещён полностью.
Шаг 2: Привязка устройств по MAC-адресу
Сначала проверим DHCP lease, чтобы найти MAC-адреса устройств.
[admin@MikroTik] ># Посмотрим текущие DHCP leases /ip/dhcp-server/lease print where status=bound # Привязка устройств младшего ребёнка /ip/kid-control/device add name=junior-phone \ mac-address=AA:BB:CC:11:22:33 \ user=junior /ip/kid-control/device add name=junior-tablet \ mac-address=AA:BB:CC:44:55:66 \ user=junior # Привязка устройств старшего ребёнка /ip/kid-control/device add name=senior-phone \ mac-address=DD:EE:FF:11:22:33 \ user=senior /ip/kid-control/device add name=senior-laptop \ mac-address=DD:EE:FF:44:55:66 \ user=senior
Рекомендуется также создать static DHCP lease для этих устройств, чтобы они всегда получали один и тот же IP-адрес.
[admin@MikroTik] ># Статические leases для привязанных устройств /ip/dhcp-server/lease make-static [find where mac-address=AA:BB:CC:11:22:33] /ip/dhcp-server/lease make-static [find where mac-address=AA:BB:CC:44:55:66] /ip/dhcp-server/lease make-static [find where mac-address=DD:EE:FF:11:22:33] /ip/dhcp-server/lease make-static [find where mac-address=DD:EE:FF:44:55:66]
Шаг 3: Ограничение скорости
Rate limit уже задан при создании профиля. Формат: upload/download. RouterOS автоматически создаёт Simple Queue для каждого устройства в профиле.
[admin@MikroTik] ># Изменение лимита скорости для существующего профиля /ip/kid-control set junior rate-limit=5M/5M /ip/kid-control set senior rate-limit=30M/30M # Проверка созданных очередей /queue/simple print where dynamic=yes
Если нужна более тонкая настройка скорости (burst, приоритет), лучше создать queue вручную и не использовать rate-limit в Kid Control.
Шаг 4: Блокировка категорий сайтов через DNS
Kid Control поддерживает блокировку категорий сайтов через внешние DNS-сервисы (CleanBrowsing, OpenDNS Family, Yandex DNS Family). Принцип: для устройств из профиля DNS-запросы перенаправляются на фильтрующий DNS.
[admin@MikroTik] ># Включаем DNS-сервер на MikroTik /ip/dns set allow-remote-requests=yes # Создаём список адресов для детских устройств /ip/firewall/address-list add list=kids-devices address=192.168.88.0/24 comment="placeholder" # Убираем placeholder и добавляем конкретные IP /ip/firewall/address-list remove [find where list=kids-devices comment="placeholder"] /ip/firewall/address-list add list=kids-devices address=192.168.88.50 comment="junior-phone" /ip/firewall/address-list add list=kids-devices address=192.168.88.51 comment="junior-tablet" /ip/firewall/address-list add list=kids-devices address=192.168.88.60 comment="senior-phone" /ip/firewall/address-list add list=kids-devices address=192.168.88.61 comment="senior-laptop"
Перенаправление DNS-запросов от детских устройств на фильтрующий сервер.
[admin@MikroTik] ># NAT-правило: все DNS-запросы от детских устройств → CleanBrowsing Family Filter /ip/firewall/nat add chain=dstnat \ src-address-list=kids-devices \ protocol=udp dst-port=53 \ action=dst-nat to-addresses=185.228.168.168 to-ports=53 \ comment="Kid Control - redirect DNS to CleanBrowsing" /ip/firewall/nat add chain=dstnat \ src-address-list=kids-devices \ protocol=tcp dst-port=53 \ action=dst-nat to-addresses=185.228.168.168 to-ports=53 \ comment="Kid Control - redirect DNS TCP to CleanBrowsing"
Популярные фильтрующие DNS-серверы:
| Сервис | IP-адрес | Что блокирует |
|---|---|---|
| CleanBrowsing Family | 185.228.168.168 | Adult, вредоносные, фишинг |
| CleanBrowsing Adult | 185.228.168.10 | Только adult |
| OpenDNS FamilyShield | 208.67.222.123 | Adult, proxy, анонимайзеры |
| Yandex DNS Family | 77.88.8.7 | Adult, вредоносные, мошенничество |
| AdGuard DNS Family | 94.140.14.15 | Adult, реклама, трекеры |
Шаг 5: Блокировка DoH (DNS over HTTPS) для предотвращения обхода
Дети с техническими навыками могут настроить DoH в браузере, обходя DNS-фильтрацию. Блокируем популярные DoH-серверы.
[admin@MikroTik] ># Блокировка известных DoH серверов /ip/firewall/address-list add list=doh-servers address=1.1.1.1 comment="Cloudflare DoH" /ip/firewall/address-list add list=doh-servers address=1.0.0.1 comment="Cloudflare DoH" /ip/firewall/address-list add list=doh-servers address=8.8.8.8 comment="Google DoH" /ip/firewall/address-list add list=doh-servers address=8.8.4.4 comment="Google DoH" /ip/firewall/address-list add list=doh-servers address=9.9.9.9 comment="Quad9 DoH" /ip/firewall/address-list add list=doh-servers address=208.67.222.222 comment="OpenDNS DoH" /ip/firewall/address-list add list=doh-servers address=208.67.220.220 comment="OpenDNS DoH" # Блокировка HTTPS-трафика к DoH-серверам от детских устройств /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ dst-address-list=doh-servers \ protocol=tcp dst-port=443 \ action=drop \ comment="Kid Control - block DoH bypass" # Также блокируем QUIC (UDP 443) к DoH-серверам /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ dst-address-list=doh-servers \ protocol=udp dst-port=443 \ action=drop \ comment="Kid Control - block QUIC to DoH servers"
Шаг 6: Мгновенная пауза
Kid Control позволяет мгновенно приостановить доступ к интернету для конкретного профиля — без изменения расписания.
[admin@MikroTik] ># Поставить на паузу — интернет отключается немедленно /ip/kid-control pause junior # Снять с паузы — доступ восстанавливается (если текущее время в расписании) /ip/kid-control resume junior # Проверить состояние /ip/kid-control print
В WinBox пауза доступна через IP → Kid Control → правый клик → Pause / Resume. В WebFig — аналогичная кнопка.
Шаг 7: Дополнительная защита — блокировка VPN-протоколов
Продвинутые дети могут попытаться использовать VPN для обхода всех ограничений. Блокируем основные VPN-протоколы для детских устройств.
[admin@MikroTik] ># Блокировка WireGuard (UDP 51820) /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ protocol=udp dst-port=51820 \ action=drop \ comment="Kid Control - block WireGuard" # Блокировка OpenVPN (TCP 1194, UDP 1194) /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ protocol=tcp dst-port=1194 \ action=drop \ comment="Kid Control - block OpenVPN TCP" /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ protocol=udp dst-port=1194 \ action=drop \ comment="Kid Control - block OpenVPN UDP" # Блокировка L2TP/IPsec (UDP 500, 4500, 1701) /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ protocol=udp dst-port=500,4500,1701 \ action=drop \ comment="Kid Control - block L2TP/IPsec"
Обратите внимание: полная блокировка VPN невозможна, так как многие VPN-сервисы работают на порту 443 (HTTPS). Для более надёжной блокировки потребуется DPI (Deep Packet Inspection), который MikroTik не поддерживает.
Проверка
Проверка профилей и устройств
[admin@MikroTik] ># Список профилей Kid Control /ip/kid-control print # Ожидаемый вывод: # Flags: X - disabled, P - paused, B - blocked # 0 name="junior" mon=15h-20h tue=15h-20h wed=15h-20h thu=15h-20h # fri=15h-21h sat=10h-21h sun=10h-20h rate-limit=5M/5M # Список привязанных устройств /ip/kid-control/device print # Ожидаемый вывод: # 0 name="junior-phone" mac-address=AA:BB:CC:11:22:33 user=junior # 1 name="junior-tablet" mac-address=AA:BB:CC:44:55:66 user=junior
Проверка динамических правил
[admin@MikroTik] ># Kid Control создаёт динамические firewall-правила /ip/firewall/filter print where dynamic=yes # Проверка динамических очередей /queue/simple print where dynamic=yes # Проверка NAT-правил для DNS-перенаправления /ip/firewall/nat print where comment~"Kid Control"
Мониторинг времени онлайн
[admin@MikroTik] ># Просмотр статистики по времени /ip/kid-control print stats # Сброс счётчиков /ip/kid-control reset-counters junior
Тестирование расписания
Чтобы проверить работу расписания, не дожидаясь нужного часа, временно измените системное время.
[admin@MikroTik] ># Проверяем текущее время /system/clock print # Тестирование: меняем время на период блокировки (осторожно в production!) # После проверки не забудьте включить NTP /system/ntp/client set enabled=yes
Проверка DNS-фильтрации
[admin@MikroTik] ># С детского устройства попробуйте резолвить заблокированный сайт # Если DNS-фильтрация работает, CleanBrowsing вернёт 0.0.0.0 или страницу блокировки # Проверка, что DNS-перенаправление работает /ip/firewall/nat print stats where comment~"Kid Control" # Проверка через torch — видим DNS-трафик от детских устройств /tool/torch interface=bridge-lan src-address=192.168.88.50 protocol=udp port=53 duration=10
Проверка блокировки DoH
[admin@MikroTik] ># Проверяем счётчики правил блокировки DoH /ip/firewall/filter print stats where comment~"block DoH" # Тест: ping DoH-серверов с детского устройства — должен работать (ICMP не блокируем) # Но HTTPS-соединение к ним — должно быть заблокировано
Типичные ошибки
Ошибка 1: Ребёнок обходит Kid Control через смену MAC-адреса
Проблема: на современных смартфонах по умолчанию включён рандомизированный MAC-адрес (Private Wi-Fi Address в iOS, Randomized MAC в Android). При каждом подключении к сети устройство может использовать новый MAC, и Kid Control не распознаёт его.
Решение: отключите рандомизацию MAC на устройстве ребёнка. Дополнительно добавьте firewall-правило, блокирующее незнакомые MAC-адреса.
[admin@MikroTik] ># Создаём address-list всех разрешённых устройств (не только детских) /ip/firewall/address-list add list=known-devices address=192.168.88.1 comment="router" /ip/firewall/address-list add list=known-devices address=192.168.88.10 comment="parent-phone" /ip/firewall/address-list add list=known-devices address=192.168.88.11 comment="parent-laptop" /ip/firewall/address-list add list=known-devices address=192.168.88.50 comment="junior-phone" /ip/firewall/address-list add list=known-devices address=192.168.88.51 comment="junior-tablet" /ip/firewall/address-list add list=known-devices address=192.168.88.60 comment="senior-phone" /ip/firewall/address-list add list=known-devices address=192.168.88.61 comment="senior-laptop" # Блокируем интернет-доступ для неизвестных устройств в LAN /ip/firewall/filter add chain=forward \ in-interface=bridge-lan \ src-address-list=!known-devices \ action=drop \ comment="Block unknown devices from internet"
Ошибка 2: Kid Control не работает — профиль создан, но трафик не блокируется
Проблема: профиль Kid Control создан, устройства привязаны, но интернет доступен вне расписания.
Причины и решения:
- Профиль disabled — проверьте флаг X в выводе
print.
[admin@MikroTik] ># Проверка /ip/kid-control print # Если есть флаг X — включаем /ip/kid-control set junior disabled=no
- MAC-адрес указан неверно — проверьте MAC в DHCP lease.
[admin@MikroTik] >/ip/dhcp-server/lease print where status=bound # Сравните с /ip/kid-control/device print
- Динамические правила не создаются — перезапустите профиль.
[admin@MikroTik] >/ip/kid-control set junior disabled=yes /ip/kid-control set junior disabled=no
Ошибка 3: Обход через DNS over HTTPS (DoH)
Проблема: Firefox, Chrome и другие браузеры поддерживают встроенный DoH. Ребёнок включает DoH в настройках браузера, и DNS-фильтрация перестаёт работать.
Решение: блокировка DoH-серверов (описана в шаге 5). Дополнительно можно заблокировать домены DoH через статические DNS-записи.
[admin@MikroTik] ># Статические DNS-записи, указывающие DoH-домены на 0.0.0.0 /ip/dns/static add name=dns.google address=0.0.0.0 comment="Block Google DoH" /ip/dns/static add name=cloudflare-dns.com address=0.0.0.0 comment="Block Cloudflare DoH" /ip/dns/static add name=dns.quad9.net address=0.0.0.0 comment="Block Quad9 DoH" /ip/dns/static add name=doh.opendns.com address=0.0.0.0 comment="Block OpenDNS DoH" /ip/dns/static add name=mozilla.cloudflare-dns.com address=0.0.0.0 comment="Block Firefox DoH"
Ошибка 4: Обход через VPN-приложения и прокси
Проблема: ребёнок устанавливает VPN-приложение (Psiphon, 1.1.1.1 Warp, ProtonVPN) и весь трафик идёт через зашифрованный туннель, обходя все ограничения.
Решение: полностью заблокировать VPN на уровне роутера невозможно, но можно значительно усложнить обход.
[admin@MikroTik] ># Блокируем нестандартные порты (многие VPN используют порты выше 10000) /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ protocol=tcp dst-port=10000-65535 \ action=drop \ comment="Kid Control - block high TCP ports" /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ protocol=udp dst-port=10000-65535 \ action=drop \ comment="Kid Control - block high UDP ports"
Внимание: блокировка высоких портов может нарушить работу некоторых приложений и игр. Тестируйте и добавляйте исключения по необходимости.
Ошибка 5: Rate limit не работает
Проблема: в профиле задан rate-limit=10M/10M, но скорость не ограничивается.
Причины:
- Конфликт с существующими очередями — если уже есть Simple Queue для этого IP, Kid Control не может создать свою.
[admin@MikroTik] ># Проверяем все очереди /queue/simple print # Удаляем конфликтующие статические очереди /queue/simple remove [find where target~"192.168.88.50"]
- FastTrack — если включён FastTrack, трафик обходит очереди.
[admin@MikroTik] ># Проверяем наличие FastTrack /ip/firewall/filter print where action=fasttrack-connection # Добавляем исключение для детских устройств ДО правила FastTrack /ip/firewall/filter add chain=forward \ src-address-list=kids-devices \ action=accept \ comment="Skip FastTrack for kids (allow queues)" \ place-before=[find where action=fasttrack-connection] /ip/firewall/filter add chain=forward \ dst-address-list=kids-devices \ action=accept \ comment="Skip FastTrack for kids (allow queues)" \ place-before=[find where action=fasttrack-connection]
Ошибка 6: Расписание работает некорректно — сдвиг по времени
Проблема: интернет блокируется/разрешается не в то время, которое указано в профиле.
Решение: проверьте настройки системного времени и часового пояса.
[admin@MikroTik] ># Проверяем время и часовой пояс /system/clock print # Устанавливаем правильный часовой пояс /system/clock set time-zone-name=Europe/Moscow # Включаем NTP-синхронизацию /system/ntp/client set enabled=yes /system/ntp/client/servers add address=time.google.com /system/ntp/client/servers add address=pool.ntp.org # Проверяем синхронизацию /system/ntp/client print
Ошибка 7: Kid Control влияет на родительские устройства
Проблема: после настройки Kid Control замедлился интернет или появились проблемы с DNS у родительских устройств.
Решение: убедитесь, что NAT-правила для DNS-перенаправления применяются только к address-list kids-devices, а не ко всей сети. Проверьте порядок правил.
[admin@MikroTik] ># Проверяем, что NAT-правила ограничены списком kids-devices /ip/firewall/nat print where comment~"Kid Control" # Правила должны содержать src-address-list=kids-devices # Если нет — исправляем /ip/firewall/nat set [find where comment~"Kid Control" and !src-address-list] \ src-address-list=kids-devices
Рекомендации по эксплуатации
Комплексная стратегия
Для максимальной эффективности родительского контроля рекомендуется комбинировать несколько подходов:
| Уровень | Метод | Что защищает |
|---|---|---|
| Роутер | Kid Control + DNS фильтрация | Расписание, базовая фильтрация контента |
| Устройство | Встроенный родительский контроль (Screen Time, Family Link) | Приложения, время использования |
| Браузер | Расширения (uBlock Origin) | Реклама, трекеры |
| Разговор | Объяснение правил ребёнку | Осознанное использование |
Полная конфигурация (итоговый скрипт)
[admin@MikroTik] ># === Kid Control — полная настройка === # Профили /ip/kid-control add name=junior \ mon=15h-20h tue=15h-20h wed=15h-20h thu=15h-20h \ fri=15h-21h sat=10h-21h sun=10h-20h \ rate-limit=10M/10M disabled=no /ip/kid-control add name=senior \ mon=14h-22h tue=14h-22h wed=14h-22h thu=14h-22h \ fri=14h-23h sat=9h-23h sun=9h-22h \ rate-limit=50M/50M disabled=no # Устройства /ip/kid-control/device add name=junior-phone mac-address=AA:BB:CC:11:22:33 user=junior /ip/kid-control/device add name=junior-tablet mac-address=AA:BB:CC:44:55:66 user=junior /ip/kid-control/device add name=senior-phone mac-address=DD:EE:FF:11:22:33 user=senior /ip/kid-control/device add name=senior-laptop mac-address=DD:EE:FF:44:55:66 user=senior # DNS-фильтрация /ip/firewall/address-list add list=kids-devices address=192.168.88.50 comment="junior-phone" /ip/firewall/address-list add list=kids-devices address=192.168.88.51 comment="junior-tablet" /ip/firewall/address-list add list=kids-devices address=192.168.88.60 comment="senior-phone" /ip/firewall/address-list add list=kids-devices address=192.168.88.61 comment="senior-laptop" /ip/firewall/nat add chain=dstnat \ src-address-list=kids-devices protocol=udp dst-port=53 \ action=dst-nat to-addresses=185.228.168.168 to-ports=53 \ comment="Kid Control - DNS redirect" /ip/firewall/nat add chain=dstnat \ src-address-list=kids-devices protocol=tcp dst-port=53 \ action=dst-nat to-addresses=185.228.168.168 to-ports=53 \ comment="Kid Control - DNS redirect TCP" # Блокировка DoH /ip/firewall/address-list add list=doh-servers address=1.1.1.1 comment="Cloudflare" /ip/firewall/address-list add list=doh-servers address=1.0.0.1 comment="Cloudflare" /ip/firewall/address-list add list=doh-servers address=8.8.8.8 comment="Google" /ip/firewall/address-list add list=doh-servers address=8.8.4.4 comment="Google" /ip/firewall/address-list add list=doh-servers address=9.9.9.9 comment="Quad9" /ip/firewall/filter add chain=forward \ src-address-list=kids-devices dst-address-list=doh-servers \ protocol=tcp dst-port=443 action=drop \ comment="Kid Control - block DoH" # NTP для корректного расписания /system/clock set time-zone-name=Europe/Moscow /system/ntp/client set enabled=yes /system/ntp/client/servers add address=time.google.com
[Устройство ребёнка]
│
▼
[Bridge / Wi-Fi]
│
▼
[Kid Control Profile]
├── Расписание → firewall filter (drop вне времени)
├── Rate Limit → Simple Queue (max-limit)
└── DNS → блокировка категорий через DNS override
# Профиль для младшего ребёнка — строгое расписание
/ip/kid-control add name=junior \
mon=15h-20h \
tue=15h-20h \
wed=15h-20h \
thu=15h-20h \
fri=15h-21h \
sat=10h-21h \
sun=10h-20h \
rate-limit=10M/10M \
disabled=no
# Профиль для старшего ребёнка — более свободное расписание
/ip/kid-control add name=senior \
mon=14h-22h \
tue=14h-22h \
wed=14h-22h \
thu=14h-22h \
fri=14h-23h \
sat=9h-23h \
sun=9h-22h \
rate-limit=50M/50M \
disabled=no
# Посмотрим текущие DHCP leases
/ip/dhcp-server/lease print where status=bound
# Привязка устройств младшего ребёнка
/ip/kid-control/device add name=junior-phone \
mac-address=AA:BB:CC:11:22:33 \
user=junior
/ip/kid-control/device add name=junior-tablet \
mac-address=AA:BB:CC:44:55:66 \
user=junior
# Привязка устройств старшего ребёнка
/ip/kid-control/device add name=senior-phone \
mac-address=DD:EE:FF:11:22:33 \
user=senior
/ip/kid-control/device add name=senior-laptop \
mac-address=DD:EE:FF:44:55:66 \
user=senior
# Статические leases для привязанных устройств
/ip/dhcp-server/lease make-static [find where mac-address=AA:BB:CC:11:22:33]
/ip/dhcp-server/lease make-static [find where mac-address=AA:BB:CC:44:55:66]
/ip/dhcp-server/lease make-static [find where mac-address=DD:EE:FF:11:22:33]
/ip/dhcp-server/lease make-static [find where mac-address=DD:EE:FF:44:55:66]
# Изменение лимита скорости для существующего профиля
/ip/kid-control set junior rate-limit=5M/5M
/ip/kid-control set senior rate-limit=30M/30M
# Проверка созданных очередей
/queue/simple print where dynamic=yes
# Включаем DNS-сервер на MikroTik
/ip/dns set allow-remote-requests=yes
# Создаём список адресов для детских устройств
/ip/firewall/address-list add list=kids-devices address=192.168.88.0/24 comment="placeholder"
# Убираем placeholder и добавляем конкретные IP
/ip/firewall/address-list remove [find where list=kids-devices comment="placeholder"]
/ip/firewall/address-list add list=kids-devices address=192.168.88.50 comment="junior-phone"
/ip/firewall/address-list add list=kids-devices address=192.168.88.51 comment="junior-tablet"
/ip/firewall/address-list add list=kids-devices address=192.168.88.60 comment="senior-phone"
/ip/firewall/address-list add list=kids-devices address=192.168.88.61 comment="senior-laptop"
# NAT-правило: все DNS-запросы от детских устройств → CleanBrowsing Family Filter
/ip/firewall/nat add chain=dstnat \
src-address-list=kids-devices \
protocol=udp dst-port=53 \
action=dst-nat to-addresses=185.228.168.168 to-ports=53 \
comment="Kid Control - redirect DNS to CleanBrowsing"
/ip/firewall/nat add chain=dstnat \
src-address-list=kids-devices \
protocol=tcp dst-port=53 \
action=dst-nat to-addresses=185.228.168.168 to-ports=53 \
comment="Kid Control - redirect DNS TCP to CleanBrowsing"
# Блокировка известных DoH серверов
/ip/firewall/address-list add list=doh-servers address=1.1.1.1 comment="Cloudflare DoH"
/ip/firewall/address-list add list=doh-servers address=1.0.0.1 comment="Cloudflare DoH"
/ip/firewall/address-list add list=doh-servers address=8.8.8.8 comment="Google DoH"
/ip/firewall/address-list add list=doh-servers address=8.8.4.4 comment="Google DoH"
/ip/firewall/address-list add list=doh-servers address=9.9.9.9 comment="Quad9 DoH"
/ip/firewall/address-list add list=doh-servers address=208.67.222.222 comment="OpenDNS DoH"
/ip/firewall/address-list add list=doh-servers address=208.67.220.220 comment="OpenDNS DoH"
# Блокировка HTTPS-трафика к DoH-серверам от детских устройств
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
dst-address-list=doh-servers \
protocol=tcp dst-port=443 \
action=drop \
comment="Kid Control - block DoH bypass"
# Также блокируем QUIC (UDP 443) к DoH-серверам
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
dst-address-list=doh-servers \
protocol=udp dst-port=443 \
action=drop \
comment="Kid Control - block QUIC to DoH servers"
# Поставить на паузу — интернет отключается немедленно
/ip/kid-control pause junior
# Снять с паузы — доступ восстанавливается (если текущее время в расписании)
/ip/kid-control resume junior
# Проверить состояние
/ip/kid-control print
# Блокировка WireGuard (UDP 51820)
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
protocol=udp dst-port=51820 \
action=drop \
comment="Kid Control - block WireGuard"
# Блокировка OpenVPN (TCP 1194, UDP 1194)
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
protocol=tcp dst-port=1194 \
action=drop \
comment="Kid Control - block OpenVPN TCP"
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
protocol=udp dst-port=1194 \
action=drop \
comment="Kid Control - block OpenVPN UDP"
# Блокировка L2TP/IPsec (UDP 500, 4500, 1701)
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
protocol=udp dst-port=500,4500,1701 \
action=drop \
comment="Kid Control - block L2TP/IPsec"
# Список профилей Kid Control
/ip/kid-control print
# Ожидаемый вывод:
# Flags: X - disabled, P - paused, B - blocked
# 0 name="junior" mon=15h-20h tue=15h-20h wed=15h-20h thu=15h-20h
# fri=15h-21h sat=10h-21h sun=10h-20h rate-limit=5M/5M
# Список привязанных устройств
/ip/kid-control/device print
# Ожидаемый вывод:
# 0 name="junior-phone" mac-address=AA:BB:CC:11:22:33 user=junior
# 1 name="junior-tablet" mac-address=AA:BB:CC:44:55:66 user=junior
# Kid Control создаёт динамические firewall-правила
/ip/firewall/filter print where dynamic=yes
# Проверка динамических очередей
/queue/simple print where dynamic=yes
# Проверка NAT-правил для DNS-перенаправления
/ip/firewall/nat print where comment~"Kid Control"
# Просмотр статистики по времени
/ip/kid-control print stats
# Сброс счётчиков
/ip/kid-control reset-counters junior
# Проверяем текущее время
/system/clock print
# Тестирование: меняем время на период блокировки (осторожно в production!)
# После проверки не забудьте включить NTP
/system/ntp/client set enabled=yes
# С детского устройства попробуйте резолвить заблокированный сайт
# Если DNS-фильтрация работает, CleanBrowsing вернёт 0.0.0.0 или страницу блокировки
# Проверка, что DNS-перенаправление работает
/ip/firewall/nat print stats where comment~"Kid Control"
# Проверка через torch — видим DNS-трафик от детских устройств
/tool/torch interface=bridge-lan src-address=192.168.88.50 protocol=udp port=53 duration=10
# Проверяем счётчики правил блокировки DoH
/ip/firewall/filter print stats where comment~"block DoH"
# Тест: ping DoH-серверов с детского устройства — должен работать (ICMP не блокируем)
# Но HTTPS-соединение к ним — должно быть заблокировано
# Создаём address-list всех разрешённых устройств (не только детских)
/ip/firewall/address-list add list=known-devices address=192.168.88.1 comment="router"
/ip/firewall/address-list add list=known-devices address=192.168.88.10 comment="parent-phone"
/ip/firewall/address-list add list=known-devices address=192.168.88.11 comment="parent-laptop"
/ip/firewall/address-list add list=known-devices address=192.168.88.50 comment="junior-phone"
/ip/firewall/address-list add list=known-devices address=192.168.88.51 comment="junior-tablet"
/ip/firewall/address-list add list=known-devices address=192.168.88.60 comment="senior-phone"
/ip/firewall/address-list add list=known-devices address=192.168.88.61 comment="senior-laptop"
# Блокируем интернет-доступ для неизвестных устройств в LAN
/ip/firewall/filter add chain=forward \
in-interface=bridge-lan \
src-address-list=!known-devices \
action=drop \
comment="Block unknown devices from internet"
# Проверка
/ip/kid-control print
# Если есть флаг X — включаем
/ip/kid-control set junior disabled=no
/ip/dhcp-server/lease print where status=bound
# Сравните с
/ip/kid-control/device print
/ip/kid-control set junior disabled=yes
/ip/kid-control set junior disabled=no
# Статические DNS-записи, указывающие DoH-домены на 0.0.0.0
/ip/dns/static add name=dns.google address=0.0.0.0 comment="Block Google DoH"
/ip/dns/static add name=cloudflare-dns.com address=0.0.0.0 comment="Block Cloudflare DoH"
/ip/dns/static add name=dns.quad9.net address=0.0.0.0 comment="Block Quad9 DoH"
/ip/dns/static add name=doh.opendns.com address=0.0.0.0 comment="Block OpenDNS DoH"
/ip/dns/static add name=mozilla.cloudflare-dns.com address=0.0.0.0 comment="Block Firefox DoH"
# Блокируем нестандартные порты (многие VPN используют порты выше 10000)
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
protocol=tcp dst-port=10000-65535 \
action=drop \
comment="Kid Control - block high TCP ports"
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
protocol=udp dst-port=10000-65535 \
action=drop \
comment="Kid Control - block high UDP ports"
# Проверяем все очереди
/queue/simple print
# Удаляем конфликтующие статические очереди
/queue/simple remove [find where target~"192.168.88.50"]
# Проверяем наличие FastTrack
/ip/firewall/filter print where action=fasttrack-connection
# Добавляем исключение для детских устройств ДО правила FastTrack
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices \
action=accept \
comment="Skip FastTrack for kids (allow queues)" \
place-before=[find where action=fasttrack-connection]
/ip/firewall/filter add chain=forward \
dst-address-list=kids-devices \
action=accept \
comment="Skip FastTrack for kids (allow queues)" \
place-before=[find where action=fasttrack-connection]
# Проверяем время и часовой пояс
/system/clock print
# Устанавливаем правильный часовой пояс
/system/clock set time-zone-name=Europe/Moscow
# Включаем NTP-синхронизацию
/system/ntp/client set enabled=yes
/system/ntp/client/servers add address=time.google.com
/system/ntp/client/servers add address=pool.ntp.org
# Проверяем синхронизацию
/system/ntp/client print
# Проверяем, что NAT-правила ограничены списком kids-devices
/ip/firewall/nat print where comment~"Kid Control"
# Правила должны содержать src-address-list=kids-devices
# Если нет — исправляем
/ip/firewall/nat set [find where comment~"Kid Control" and !src-address-list] \
src-address-list=kids-devices
# === Kid Control — полная настройка ===
# Профили
/ip/kid-control add name=junior \
mon=15h-20h tue=15h-20h wed=15h-20h thu=15h-20h \
fri=15h-21h sat=10h-21h sun=10h-20h \
rate-limit=10M/10M disabled=no
/ip/kid-control add name=senior \
mon=14h-22h tue=14h-22h wed=14h-22h thu=14h-22h \
fri=14h-23h sat=9h-23h sun=9h-22h \
rate-limit=50M/50M disabled=no
# Устройства
/ip/kid-control/device add name=junior-phone mac-address=AA:BB:CC:11:22:33 user=junior
/ip/kid-control/device add name=junior-tablet mac-address=AA:BB:CC:44:55:66 user=junior
/ip/kid-control/device add name=senior-phone mac-address=DD:EE:FF:11:22:33 user=senior
/ip/kid-control/device add name=senior-laptop mac-address=DD:EE:FF:44:55:66 user=senior
# DNS-фильтрация
/ip/firewall/address-list add list=kids-devices address=192.168.88.50 comment="junior-phone"
/ip/firewall/address-list add list=kids-devices address=192.168.88.51 comment="junior-tablet"
/ip/firewall/address-list add list=kids-devices address=192.168.88.60 comment="senior-phone"
/ip/firewall/address-list add list=kids-devices address=192.168.88.61 comment="senior-laptop"
/ip/firewall/nat add chain=dstnat \
src-address-list=kids-devices protocol=udp dst-port=53 \
action=dst-nat to-addresses=185.228.168.168 to-ports=53 \
comment="Kid Control - DNS redirect"
/ip/firewall/nat add chain=dstnat \
src-address-list=kids-devices protocol=tcp dst-port=53 \
action=dst-nat to-addresses=185.228.168.168 to-ports=53 \
comment="Kid Control - DNS redirect TCP"
# Блокировка DoH
/ip/firewall/address-list add list=doh-servers address=1.1.1.1 comment="Cloudflare"
/ip/firewall/address-list add list=doh-servers address=1.0.0.1 comment="Cloudflare"
/ip/firewall/address-list add list=doh-servers address=8.8.8.8 comment="Google"
/ip/firewall/address-list add list=doh-servers address=8.8.4.4 comment="Google"
/ip/firewall/address-list add list=doh-servers address=9.9.9.9 comment="Quad9"
/ip/firewall/filter add chain=forward \
src-address-list=kids-devices dst-address-list=doh-servers \
protocol=tcp dst-port=443 action=drop \
comment="Kid Control - block DoH"
# NTP для корректного расписания
/system/clock set time-zone-name=Europe/Moscow
/system/ntp/client set enabled=yes
/system/ntp/client/servers add address=time.google.com