Подготовленный ранее цикл статей, посвященный организации безопасности сетей, построенных на оборудовании MikroTik, вызвал определенный интерес у сообщества. В процессе обсуждения представленного материала стало понятно, что у некоторых пользователей подобное оборудование установлено дома (не удивительно, ведь сама простая модель стоит всего 1500 рублей), в связи с чем решено подготовить отдельный материал, посвященный возможностям RouterOS по организации родительского контроля. Поговорим о различных подходах, настройках, сопрягаемых решениях, касающихся предметной области.

Материалы поделены на две статьи. В первой части подробно рассмотрим организацию функционирования DNS, поговорим о работе с проходящим через маршрутизатор трафиком на L3 уровне посредством Firewall Filter и связанного с ним Ip Kid-control. Во второй части статьи подробно рассмотрим прикладное применение маркировки трафика посредством Firewall Mangle и сделаем выводы, касающиеся возможностей оборудования MikroTik по организации родительского контроля. Что-то новое никому не известное материалы статьи не раскрывают, но при этом показывают прикладное применение различных сетевых настроек, и решение поставленной задачи.

▍ 1. Настройка DNS


Определим имеющиеся условия. Роутер MikroTik подключен к интернет провайдеру, работает NAT, раздается сеть Wi-Fi, которой пользуются все члены семьи. Классическое домашнее решение. Первое, с чего следует начать, это с указания настроек для DNS сервера маршрутизатора:

/ip dns set allow-remote-requests=yes servers=77.88.8.7,77.88.8.3

В примере указаны, так называемые, семейные общедоступные сервера от Яндекса, которые должны «фильтровать» часть взрослого контента. На самом деле, там полно всего, чего бы многие предпочли не показывать детям. На рынке существуют более гибкие платные настраиваемые под себя решения, такие как Skydns и другие. Они имеют личные кабинеты, в которых выполняются необходимые настройки. Всего 500 рублей в год, очень даже адекватная стоимость.

Чтобы заданные на клиентах статические DNS сервера не смогли отработать (хотя вряд ли дети смогут сделать что-то подобное), редиректим все DNS запросы на маршрутизатор:

/ip firewall nat
add action=redirect chain=dstnat comment="Redirect DNS in NAT" dst-port=53 protocol=udp src-address=10.0.0.0/24 to-ports=53

Гипотетическим минусом использования платных DNS серверов является факт передачи открытой привязанной к себе (или членам семьи) информации третьим лицам, тем же DNS провайдерам. Поэтому идем дальше. Будем использовать общедоступные DNS сервера, при этом для не благонадежных сайтов установим статические записи прямо на MikroTik:

/ip dns static add address=127.0.0.1 regexp=\\\\*example\\.com\$

Как видно из примера, запросы на сайты вида example.com, other.example.com, abrakatabra.example.com (субдомены) будут направлены на localhost, другими словами, в никуда. Команда для очистки кеш DNS сервера, если что:

/ip dns cache flush

Подготовим простейшую html страничку заглушку для родительского контроля:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Родительский контроль</title>
</head>
<body>
	<h1>Заблокировано!</h1>
</body>
</html>


Чтобы ее демонстрировать при попытках перехода детей на контент, запрещенный родителями, нужно развернуть web сервер. Сделать это на MikroTik, конечно, заманчиво. Скажу сразу, что пытаться прикручивать сюда работу Hotspot – это плохая идея, потому что он предназначен для других целей и не нужно городить огород. Как вариант, можно воспользоваться технологией виртуального роутера от MikroTik (/metarouter). Как это сделать ранее рассмотрено на Хабре. Однако есть минимальные требования к аппаратной части вашего роутера: процессор mips или ppc, наличие свободных 48Мб оперативной памяти и 24Мб на диске. А это уже не устройства для дома, и 1500 рублями здесь не отделаешься. Поэтому рекомендую посмотреть в сторону одноплатника Raspberry Pi или VDS всего за 130 рублей в месяц:


Вынести страницу заглушку на внешний сервер – это отличная идея, ведь всегда его можно использовать и под другие задачи, а также никаких проблем с электричеством и вписыванием железа в семейный интерьер. Устанавливаем web сервер:

apt install apache2
a2enmod ssl
mkdir -p /var/www/example.com/
chown www-data:www-data /var/www/example.com/
Сюда кладем нашу HTML заглушку => /var/www/example.com/index.html
nano /etc/apache2/sites-available/example.com.conf

<VirtualHost *:443>
        RewriteEngine On
        RewriteCond %{HTTPS} on
        RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
		
        SSLEngine on
        SSLCertificateFile /root/example.com.crt
        SSLCertificateKeyFile /root/example.com.key
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /var/www/example.com/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

a2ensite example.com.conf
a2dissite 000-default.conf
systemctl restart apache2

Запросы к web серверу на любые домены отправляем на нашу страницу заглушку (<VirtualHost *:443 / 80>), при этом запросы по HTTPS редиректим на HTTP. Сертификат используем невалидный (или самоподписанный), о чем, конечно, браузер будет нас настойчиво уведомлять:

Теперь необходимо составить список сайтов, которые подлежат родительской блокировке. Начнем логировать все DNS запросы прямо на RouterOS (пропускаем мимо содержание пакетов):

/system logging action add name=DNS target=memory
/system logging add action=DNS topics=dns,!packet



Логи можно собирать и обрабатывать на удаленном устройстве, например на VDS при помощи Graylog. Данный вопрос уже раскрыт ранее. Для того, чтобы все остальные члены семьи, в том числе телевизор, не попадал под контроль, следует настроить на маршрутизаторе следующие действия:

1) В DHCP сервере статически закрепить IP адреса за детскими устройствами:

/ip dhcp-server lease
add address=10.0.0.254 client-id=1:11:22:33:cc:bb:aa mac-address=11:22:33:cc:bb:aa server=server_home
add address=10.0.0.253 client-id=1:22:33:44:cc:ba:aa mac-address=22:33:44:cc:ba:aa server=server_home

Или так:

/ip dhcp-server lease make-static numbers=1
/ip dhcp-server lease make-static numbers=2

2) Собрать полученные IP адреса в один address-list:


/ip firewall address-list
add address=10.0.0.254 list=children
add address=10.0.0.253 list=children

3) Указать в DHCP сервере общедоступные DNS (предварительно отключив описанное выше правило /ip firewall nat add action=redirect…):


/ip dhcp-server network
add address=10.0.0.0/24 dns-server=77.88.8.8,77.88.8.1 gateway=10.0.0.1 netmask=24

4) Перехватывать DNS запросы от детских устройств и натировать соответственно:


/ip firewall nat
add action=dst-nat chain=dstnat comment="DST-NAT Children to localDnsServer" dst-port=53 protocol=udp  src-address-list=children to-addresses=10.0.0.1

Теперь представим, что у нас есть еще дача, на которой необходимо так же иметь родительский контроль, кроме этого родственники с детьми, друзья, коллеги, которые просят сделать им аналогичные сервисы. Тогда уже есть смысл вынести DNS сервер с MikroTik на VDS, IP адрес которого использовать на различных устройствах. Настраиваем необходимый софт:


apt install bind9 dnsutils
nano /etc/bind/named.conf.options

options {
        interface-interval 0;
        version none;
        recursion yes;
        forwarders { 77.88.8.7; 77.88.8.3; };
        allow-query { 127.0.0.1; 192.168.15.0/24 };
};

Имеем ввиду, что зоны, которые не обслуживаются нашим сервером, будут рекурсивно запрошены у forwarders. Таким образом, ваш сервер может быть задействован в DDOS атаках, когда боты найдут IP вашего VDS и начнут постоянно запрашивать ANY DNS записи для атакуемого ресурса. Или обратная вариация, когда запрашиваться будут значительные легитимные ANY DNS записи, а в качестве источника запроса указываться IP адрес атакуемого ресурса (DNS Amplification Attack). Поэтому рекомендую ограничить запросы только с VPN сетки 192.168.15.0/24 (или пула IP вашего провайдера хотя бы).

Далее настраиваем зоны, которые будем «глушить»:


nano /etc/bind/named.conf.local

zone "example.com" {
    type master;
    file "/etc/bind/db.example.com ";
};

nano /etc/bind/db.example.com

$TTL 360
$ORIGIN example.com.

@ IN SOA example.com. admin.example.com. (
        1 ; Serial
        1d ; Refresh
        1h ; Retry
        1w ; Expire
        2h ; Negative Cache TTL
    )

@				IN	NS	ns1.example.com.
@				IN	NS	ns2.example.com.
@				IN	A	IP VDS сервера
ns1.example.com.		IN	A	IP VDS сервера
ns2.example.com.		IN	A	IP VDS сервера
*				IN	A	IP VDS сервера

Разумеется, сюда же на VDS переедет и web сервер с HTML заглушкой. Настраиваем логирование DNS запросов, чтобы можно было их анализировать и дополнять блокируемые зоны:


nano /etc/apparmor.d/usr.sbin.named

/var/log/bind9/** rw,
/var/log/bind9/ rw,

systemctl restart apparmor

mkdir /var/log/bind9
chown bind:bind /var/log/bind9/
nano /etc/bind/named.conf

logging {
	channel my_file {
		file "/var/log/bind9/bind.log" versions 3 size 100m;
		severity info;
		print-time yes;
		print-category yes;
		print-severity yes;
	};

	category default { my_file; };
	category queries { my_file; };

	category lame-servers { null; };
};

systemctl restart bind9
tail /var/log/bind9/bind.log -F

Лог будет выглядеть примерно так:


14-Oct-2021 00:10:52.237 queries: info: client @0xb3785670 192.168.1.8#37426 (example.com): query: example.com IN A + (192.168.1.9)
14-Oct-2021 00:10:52.243 queries: info: client @0xb3785670 192.168.1.8#33533 (example.com): query: example.com IN AAAA + (192.168.1.9)

Здесь мы настроили Bind9 — наиболее распространенный DNS сервер. Конечно, он должен работать как минимум в паре, так называемые master и slave. Однако MikroTik разрешает работать только с одним сервером.

Если зон будет много, тогда есть смысл выбрать более мощное виртуальное устройство. Сейчас это стоит не больших денег. В результате получается что-то вроде нашего собственного частно-коллективного решения, которое можно обкрутить web интерфейсом, внутренней логикой и после этого даже попытаться монетизировать )).

▍ 2. Firewall Filter


Теперь вернемся к нашему MikroTik и покажем, как еще можно ограничить трафик. В дело вступает Firewall. RouterOS позволяет динамически создавать address-list по доменному имени:


/ip firewall address-list
add address=youtube.com list=Block_site_by_dns_name
add address=vk.com list=Block_site_by_dns_name
add address=www.youtube.com list=Block_site_by_dns_name

Доменные имена автоматически разрезолвятся в IP адреса:


/ip firewall address-list print 
Flags: X - disabled, D - dynamic 
 #   LIST                     ADDRESS                                      CREATION-TIME        TIMEOUT             
3   Block_site_by_dns_name   youtube.com                               oct/10/2021 22:25:51
5   Block_site_by_dns_name   vk.com                                       oct/10/2021 22:26:40
6 D ;;; vk.com
Block_site_by_dns_name   87.240.190.72                                oct/10/2021 22:26:40
7 D ;;; vk.com
Block_site_by_dns_name   87.240.190.78                                oct/10/2021 22:26:40
8 D ;;; vk.com
Block_site_by_dns_name   87.240.190.67                                oct/10/2021 22:26:40
9 D ;;; vk.com
Block_site_by_dns_name   93.186.225.208                               oct/10/2021 22:26:40
10 D ;;; vk.com
Block_site_by_dns_name   87.240.139.194                               oct/10/2021 22:26:40
11 D ;;; vk.com
 Block_site_by_dns_name   87.240.137.158                               oct/10/2021 22:26:40
12 D ;;; youtube.com
Block_site_by_dns_name   173.194.221.91                               oct/10/2021 22:36:53
13 D ;;; youtube.com
Block_site_by_dns_name   173.194.221.136                              oct/10/2021 22:36:53
14 D ;;; youtube.com
Block_site_by_dns_name   173.194.221.93                               oct/10/2021 22:36:53
15 D ;;; youtube.com
Block_site_by_dns_name   173.194.221.190                              oct/10/2021 22:36:53

Ну и далее просто блокируем весь не угодный трафик на L3:


/ip firewall filter
add action=accept chain=input comment="Accept established,related" connection-state=established,related
add action=drop chain=input comment="Drop invalid" connection-state=invalid
add action=accept chain=forward comment="Accept established,related" connection-state=established,related
add action=drop chain=forward comment="Drop invalid" connection-state=invalid
add action=drop chain=forward comment=Drop_sites_by_address_list dst-address-list=Block_site_by_dns_name

Первые правила перед блокировкой важны. Они разгружают ваш маршрутизатор, так как установленные и связанные с ними соединения не будут обрабатываться всеми правилами Firewall.

▍ 3. Kid-control


В самом конце данной статьи расскажу про имеющееся в RouterOS готовое решение Kid-control. Его функционал позволяет удобно автоматизировать то, что можно всегда сделать скриптами. Добавляем по MAC адресам в /ip kid-control device все детские устройства:


/ip dhcp-server lease print 
Flags: X - disabled, R - radius, D - dynamic, B - blocked 
 #   ADDRESS              MAC-ADDRESS       HOST-NAME     SERVER     RATE-LIMIT     STATUS  LAST-SEEN               
 0 D 10.0.0.253           AA:BB:11:22:33:44 LittleFood     server_...                bound   21m2s                   

/ip kid-control device add mac-address=AA:BB:11:22:33:44 name=Pasha_Iphone user=Pasha



После этого задаем поведенческие правила для работы детского интернета: в какой день недели ему работать и ограничения по скорости.


/ip kid-control add name=Pasha



В результате RouterOS создаст динамические правила в Firewall Filter:


/ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic 
 0  D ;;; Pasha_Iphone, kid-control
      chain=forward action=reject dst-address=10.0.0.253 

Вот и весть /ip kid-controlот RouterOS, по мне так полная скука.

▍ 4. Подведем промежуточные итоги


Представленные возможности уже позволяют ограничить трафик, проходящий через ваш маршрутизатор. Но RouterOS на этом еще не заканчивается. Самое интересное будет в следующей части статьи. Там же будут сделаны общие выводы по комплексной технической организации родительского контроля на оборудовании MikroTik.

Комментарии (98)


  1. cepera_ang
    25.10.2021 12:11
    +1

    Микротик сейфы дети? Что этот заголовок вообще значит?


    Скрытый текст

    /s


    1. olegtsss Автор
      25.10.2021 12:17
      +1

      Сейчас исправлю), опечатка в фотошопе.


  1. skymal4ik
    25.10.2021 12:57

    Столкнулся с тем, что на айфонах по умолчанию стоит галка динамически менять mac-адрес при подключении к вайфай, потому все эти привязки Mac-IP-пользователь в kid-control нормально не работали.

    В итоге просто сделал отдельную вай-фай с сеть (с отдельным security profile), которая включалась и выключалась шедулером на несколько часов в день.

    А вот как сделать квоту на несколько часов, чтобы пользователь мог сам выбирать когда потратить своё время без сложных решений, типа RADIUS, так и не придумал :(


    1. Mur81
      25.10.2021 13:21

      На последних версиях андроида, к слову, такое же поведение по умолчанию


    1. olegtsss Автор
      25.10.2021 13:51

      MAC рандомится в сетях wi-fi без пароля.


      1. dartraiden
        25.10.2021 14:19
        +1

        На Android рандомится в любых сетях, если пользователь явно не указал использовать статический MAC в свойствах сети.


        1. Stam_emg
          25.10.2021 19:38

          С Android 10 (Q) и выше - рандомизация стоит по умолчанию для любого типа WiFi.

          выдержка из документации

          For devices running Android 10 or higher, the framework uses randomized MAC address by default. 

          Users can enable or disable MAC randomization for individual networks through an option in the Network details screen in Settings, as shown in Figure 1.

          If a user disables MAC randomization for a network, the framework uses the factory MAC address (globally unique address).

          https://source.android.com/devices/tech/connect/wifi-mac-randomization-behavior


          1. olegtsss Автор
            25.10.2021 19:52
            +2

            Решение для этой (IOS + Android) ситуации прогнозируется. Подготовлю материал позднее.


      1. olegtsss Автор
        25.10.2021 17:56
        +1

        Подробно про рандомизацию MAC на IOS (https://support.apple.com):

        Starting with iOS 14, iPadOS 14, and watchOS 7, your device improves privacy by using a different MAC address for each Wi-Fi network. This unique MAC address is your device's private Wi-Fi address, which it uses for that network only.

        In some cases, your device will change its private Wi-Fi address:

        If you erase all content and settings or reset network settings on the device, your device uses a different private address the next time it connects to that network.
        Starting with iOS 15, iPadOS 15, and watchOS 8, if your device hasn’t joined the network in 6 weeks, it uses a different private address the next time it connects to that network. And if you make your device forget the network, it will also forget the private address it used with that network, unless it has been less than 2 weeks since the last time it was made to forget that network.

        Во второй части статьи поговорим о других возможностях работы, которые применимы для данной ситуации с непринципиальными изменениями.


    1. KMVp
      26.10.2021 12:58

      Присоединюсь. Очень хочется ограничить именно квотой в день. Расписания явно не достаточно.


      1. Kelsink
        26.10.2021 21:08

        А просто управлять экранным временем не вариант? У меня у дочери айпад. На нем можно задавать квоты на приложения, вплоть до доменов в браузере. Подозреваю андроид это тоже умеет. Активно пользуюсь. Единственная проблема - музыка и аудиосказки. Ребенок понял, что можно выключить экран и время идти не будет.


        1. olegtsss Автор
          27.10.2021 03:41

          Конечно, вариант, можно перенести контроль на оконечные устройства. Но это выходит за границы статьи. Правда с тем же TV уже так не совладаешь.


        1. KMVp
          27.10.2021 09:17

          Вариант. И он используется. Но это только телефон. А что делать со старым андроид-планшетом и стационарным компьютером? Некоторое время помогал платный KasperskyKids (или как он там), но ребенок научился его обманывать.


          1. olegtsss Автор
            27.10.2021 09:44

            А как он его обманывал, вы не знаете ?


            1. KMVp
              27.10.2021 10:37

              Не раскололся. :) Но главное ему было не лочить учетку, иначе уже не мог войти.
              Но после этого я перестал продлевать подписку.


            1. gwynbleidd84
              29.10.2021 03:41
              +1

              Kaspersky Kids как и пяток других подобных программ банально не работают, т. к. считают время активной сессии пользователя. достаточно сделать logout/login и сидеть дальше. проверено на личном опыте.

              решилось путём написания PowerShell скрипта и 2-х задач в планировщике.

              при входе в систему пользователя "child" - "триггерится" задача в планировщике, она же запускает скрипит. начинается отсчёт скажем в 2 часа. за 1 минуту до истечения срока пользователь получаем pop-up от системы об окончании сессии. далее происходит принудительный "logoff" этой учётной записи с последующим отключением. что называется - на сегодня хватит. на следующий день 2-я запланированная задача "триггерится" по таймеру, скажем вечером в 7 часов и включает учётную запись обратно.

              ну и защита от livecd в лице bitlocker, хоть это и перебор на мой взгляд


              1. olegtsss Автор
                29.10.2021 03:42

                Как раньше, спрятать провода от компьютера, уже тоже не работает ))


            1. MixaSg
              30.11.2021 07:00

              Я детям ставил, если память не подводит, то обходили через режим SOS, потом открытие файла, таким образом добирались до проводника и запускали приклад из него.


  1. tzlom
    25.10.2021 13:06

    Люди с крестами на защите детей.... иронично.


  1. Shaz
    25.10.2021 13:11
    +12

    Итого родителям надо:

    Купить микротик.

    Научится в микротик.

    Арендовать виртуалку.

    Научится в Линукс и веб.

    И в итоге дети будут прекрасно смотреть порно через мобильный инет?


    1. janeproud
      25.10.2021 17:57
      +2

      А что мешает ограничить трафик на мобильном интернете, чтобы хватало условно на мессенджеры только. Интернет для ребёнка нужен для учебы- учеба на компьютере эффективно проходит, а не на мизирном экране телефона. Было бы желание и тогда идеи появятся


      1. Dzzzen
        25.10.2021 18:03

        У моего ребенка тариф билайна БЛ3 с "безлимитным" интернетом, как там ограничить трафик?


        1. janeproud
          25.10.2021 19:55

          Так поменяйте ему тариф


        1. Lexicon
          25.10.2021 20:14

          Я конечно противник ограничения детей. Особенно от прона

          Но вроде можно взять Йоту с 0 трафика и месседжерами подключенными


          1. KiddingBanana
            26.10.2021 11:49

            А в мессенджерах того же прона нет?


      1. Newbilius
        26.10.2021 11:59

        Много ли того траффика детям на тексты соответствующего направления надо? Вот уж воистину, было бы желание...)


      1. xaosxaos2
        26.10.2021 13:55
        +4

        А что мешает, правильно воспитать ребенка, чтобы не понадобилось все это городить?


        1. savostin
          27.10.2021 13:44

          Ой, расскажите как правильно? А то меня видно неправильно и я теперь не в курсе :(


          1. olegtsss Автор
            27.10.2021 14:13

            Друзья, это уже офтоп!


    1. Dzzzen
      25.10.2021 18:05

      Очень интересует, как на айфоне ограничить доступ к порно-сайтам через мобильный интернет? Есть какие-то программы?


      1. janeproud
        25.10.2021 20:08
        +1

        Например у МТС есть услуга под названием «Контроль интернета. Родитель»

        Вы можете ограничивать доступ к ряду сайтов через приложение, можете установить расписание пользования интернетом и та и тд. У МТС стоимость 3₽/сутки.

        Скорее всего у Билайн есть что то подобное.


        1. Dzzzen
          14.11.2021 17:57

          У Билайна такая услуга есть только для android-а. Потому что реализуется через приложение Eset.


      1. savostin
        25.10.2021 21:30
        +1

        Можно поставить 1.1.1.1 от Cloudflare и включить "семейный DNS с блокировкой порно".

        Или платный DNS Override - в нем можно выбрать/указать ns.

        Вот как запретить его отключать - вопрос.


      1. dipierro
        26.10.2021 09:27
        +2

        На айфоне есть встроенная функция «ограничения», переименованная в «экранное время». Там можно и сайты ограничить, и время использования девайса, как и отдельных приложений.


      1. Amihailov
        26.10.2021 09:42
        +1

        Можно поставить DNS-профиль от adguard с семейной защитой. Инструкция.


        1. Dzzzen
          14.11.2021 17:57

          Спасибо, это пока лучшее решение.


  1. Saiv46
    25.10.2021 13:14
    +7

    Если бы статья называлась "Сам себе РКН или родительский контроль с MikroTik", то просмотров бы было намного больше


    1. olegtsss Автор
      25.10.2021 13:49
      +3

      Хорошая идея, спасибо !


    1. ABy
      25.10.2021 15:01
      +2

      Зашел в комментарии только из-за названия, статью не читал. Была надежда на холливар, но пока все мирно. Вы обманули мои ожидания, сударь!


  1. NAI
    25.10.2021 13:43
    +1

    Android>Chrome>Settings>Privacy and security>Use secure DNS

    И родительский контроль всё, кончился.

    По идее все сложнее - нужен нормальный ngfw, с обновляемыми базами, парсингом keywords и прочими L7 правилами.


    1. olegtsss Автор
      25.10.2021 13:49
      +2

      Это будет во второй части статьи.


  1. GryZin
    25.10.2021 18:10

    Может наконец у меня получиться заблочить rutube, 1tv и прочие прелестные сайты:) Спасибо!


  1. rionnagel
    25.10.2021 19:17
    +1

    Да, так можно в пределах дома. Это +/- нормально. Подобным образом делал whitelist. Но проблема в том, что за пределами. Мобильный интернет, бесплатные wifi точки, точки без пароля, шаринг интернета у друга и т.д.
    Вроде бы у google/ms/apple были свои child control/parent control на учётки и устройства. У гугла вроде вообще можно было делать так, чтобы подавали реквест на добавления сайта в разрешенные и много чего другого, у остальных хз.

    Хотя смотря на подобные цели именно по домашней сети невольно проскальзывает мысль "Как бы сюда хорошо подошел какой-нибудь check point 1590 (не реклама) со своим фильтром контента, контролем сигнатур приложений и потоковым антивирусом", а потом вспоминаешь цену и лицензии.


  1. mentis
    25.10.2021 20:11

    Напишите, пожалуйста, статью об конфигурации vlan для iot устройств


  1. savostin
    25.10.2021 21:32
    +2

    /ip dns static add address=127.0.0.1 regexp=\\*example\.com$

    Вот только при большом размере этого списка MikroTik начинает жутко тормозить.


    1. userint
      25.10.2021 22:30

      Действительно. В чем смысл покупать выделенную VPS, если можно настроить DHCP сервер на выдачу разных адресов DNS серверов? Детям - локальный DNS MikroTik со статическими адресами-заглушками, всем остальным - какой-нибудь публичный или провайдерский.


      1. olegtsss Автор
        25.10.2021 22:32

        Показать возможности, которые есть на борту.


    1. olegtsss Автор
      25.10.2021 22:58

      У вас «в руках» швейцарский нож, с которым можно подобрать наиболее оптимальное решение под конкретные условия.


    1. olegtsss Автор
      25.10.2021 23:01

      Регулярные выражения всегда затратная штука. Если сеть крупная и роутер слабый, есть смысл выноситься на отдельный сервер.


  1. hackteck
    25.10.2021 22:31

    Как по мне, то родители должны сами рассказать, что будешь сидеть много в интернете - потеряешь зрение, а не играться в блокировку :)
    P.S. Справедливости ради отмечу, что это тоже иногда не срабатывает и тогда в ход идёт белый список на роутере :)


    1. sim31r
      25.10.2021 23:25

      это тоже иногда не срабатывает

      Никогда не срабатывает. На примере трех детей, старшая уже живет отдельно и зрение попортила зависанием в телефоне. Средний с 4 лет просто маниакальное стремление к играм проявлял, в 13 лет сидит по 12 часов в день легко, ничего кроме игр, достаточно примитивных его не интересует, любое другое занятие через 5 минут наводит тоску на ребенка, квадракоптер, пейнтбол, ремонт машины. Младшая 4 года, экстраверт и особого интереса к играм, мультикам и однообразным занятиям не проявляет, нужно общение, игры с человеком в шахматы, догонялки. Поиграть в телефоне может, но через 5-10 минут интерес пропадает.

      Думаю в будущем компьютерные игры приравняют к наркотикам и следующее поколение будет удивляться, как можно было безлимитно играть без ограничений. Как мы удивляемся мемам с фотографиями начала века, где героин продавали как средство от кашля. Всё хорошо в меру, а мера не всегда самостоятельно устанавливается, вижу что обратные связи не у всех работают, даже наоборот, чем дольше сидишь в играх, тем больше хочется и сложнее в реальном мире.


      1. hackteck
        26.10.2021 14:05

        У меня была подобная картина; сын залипал в телефон и в одно время начал немного прищуриваться после игр. Просьбы, игрушки, прочее - результата не давало от слова совсем. Пришлось применить грубую силу - всё поставили под пароль, естессна была обратная реакция, но старались с женой как-то заинтересовывать, гулять, общаться, немного шантажа (увы, пришлось), потом в деревню на пару месяцев уехали, где даже моб.связь с трудом ловит. Сейчас слава Богу всё хорошо, дома на мобилке игр нет никаких, играет на телефоне, когда тётя/мама/etc приходят в гости. Единственное, когда я не работаею, играет исключительно на ПК (могу порекоммендовать Discovery Tour by Assassin's Creed, Мышкина энциклопедия, сейчас проходим It Takes Two) Мультики как я написал выше блокируются белым списком (моим 6,5 и 2,5; пока ещё верят, что это компьютер перегрелся и вообще интернет дядька отключил/не заплатили:)

        Попробуйте поговорить с чадом (объяснить вред и последствия залипания в экран), провести побольше времени (нарисовать картину, сыграть в настолку, да сходить за продуктами в конце-концов) 13 лет это уже много, плюс-минус можно достучаться. Главное не опускать руки :) Ещё мысль пришла: создайте такие условия, чтобы телефоном пользоваться было невозмоно от слова совсем (приложение, в котором через вебсокет слушается команды на что-то нехорошее: ребут, бесконечный цикл... На андроиде это не должно быть сложно, с айос не знаком)

        Было бы круто, если в будущем будут игры по талонам, но это очень вряд-ли, будущее кмк за VR/AR. Поживём - увидим :)


        1. sim31r
          26.10.2021 22:58

          создайте такие условия, чтобы телефоном пользоваться было невозмоно от слова совсем

          Тогда я стану злодеем и врагом №1, вместо дружеского общения и ребенку стресс. Тут похоже склад характера такой, склонность к игровой зависимости, простыми способами не получилось победить. У других детей такой проблемы нет вообще. Старшая еще есть, зависала в социальных сетях как все подростки, с 17 лет нормально зарабатывает и живет отдельно, много работает, проблем с телефоном и играм нет ни в каком виде. У младшей в 4 года тоже вижу что нет признаков как у сына в этом же возрасте. Телефону и компьютеру предпочтет живые игры в карты, монополию, шахматы. Я сам как интроверт предпочел бы за компьютером посидеть и желание позадротствовать в игры мне понятно (или покодить, посерфить в интернете, у сына такого нет к сожалению).

          Если была бы только дочка младшая, я бы тоже мог свысока смотреть на проблемы родителей у которых дети с игровой зависимостью, типа уделите внимание ребенку и проблема исчезнет сама собой. А тут нет, вижу изначально разные склады характера, стремления и особенности поведения. Яркий пример экстраверта и глубокий интроверт. Экстраверту достаточно 5 минут побыть наедине с собой, а интроверту достаточно 5 минут общения в день и что свыше уже тяготит видно.

          Было бы круто, если в будущем будут игры по талонам, но это очень вряд-ли, будущее кмк за VR/AR. Поживём - увидим :)

          Так VR может быть сугубо рабочей, или еще более рабочей, без развлекательного контекста уже не так интересно. А залипание происходит на пестрые игрушки где минимальными усилиями максимум изменений достигается, дофаминовая наркомания, пробой в системе деятельности и мотивации. Зачем грызть гранит науки и/или работать, если дофамина много можно получить простым способом, обманув несложные защитные механизмы мозга.

          Китай кстати борется давно с проблемой, статья 2015 года


          1. olegtsss Автор
            27.10.2021 03:45

            Мне нравятся ваши рассуждения, не много не по теме.


  1. Vrag
    25.10.2021 23:02

    Зачем нагружать микрот непредназначенными для него задачами? proof of concept?

    У вас ведь есть VDS на linux?


    1. olegtsss Автор
      25.10.2021 23:04

      При домашнем использовании присутствует соблазн иметь весь функционал внутри одного устройства.


      1. Vrag
        26.10.2021 11:15

        Простите. Редко пишу: то ли движок не даёт править, то ли я идиот. Короче говоря не дописал я вчера, а исправить не смог.

        Я так понял дома нет желания держать сервер? Кстати, им может быть что-то NUCподобное, например на intel N4ххх уже встанет гипервизор - а такую коробку буквально не видно, не слышно, в счёте за электричество не заметно, и на юлито при определенном везении можно купить за 5-7К (примерно стоимость средне-начального микротика). Тогда на VPS ставьте Pi-Hole. И поднимайте до сервера site-to-site с микрота, чтобы Pi-hole мог различать клиентов (между ним и клиентами не было NAT). Настраивайте листы, группы, разбивайте клиентов по группам. Наслаждайтесь.

        Есть конечно, в этом одна неприятная побочка: если вы подтяните те листы, ради которых обычно ставят Pi-hole, вы больше не сможете лицезреть прекрасную рекламу, лезущую из всех щелей. Но можно использовать только свои листы, для ограждения детей от интернета, и тогда всё будет норм. =)

        И сразу по поводу возможных коментов про младшие микроты и VPN: даже если вы всей семьёй будете раз в 2-3 секунды открывать новую страницу, на загрузку камня из-за DNS трафика, обёрнутого в VPN, можно не рассчитывать.


        1. olegtsss Автор
          26.10.2021 11:21

          Я с вами согласен. Что-то можно реализовать сразу на роутере, что-то вынести на локальную или удаленную периферию. Вместо Intel можно глянуть на дешёвые малины. Гипервизора на них «не видать», но делать дело будут.


    1. Karbofos42
      26.10.2021 11:11

      А зачем люди сидят, хотя для этого не предназначены? Может быть потому, что это удобно?

      Для чего же микрот предназначен? Как всякие D-link настроить на параметры от провайдера и сидеть как есть и не дай бог ничего не настраивать и не выжимать максимум из доступного функционала?


  1. net_racoon
    26.10.2021 10:44
    -1

    Зачем это все? Выдавайте ему DNS от Яндекса и все? Ну или возьмите РК от провайдера, щас только ленивый такое не предлагает. Как вам сказали выше, при большом списке сайтов - ваш микротик начнет загибаться.


    1. olegtsss Автор
      26.10.2021 11:15

      На рынке существует много различных готовых решений. Реализованных как в железе, так и софте. Локально и удаленно. Статья показывает решение прикладной задачи на средствах RouterOS.


      1. net_racoon
        26.10.2021 12:06
        +1

        Ну можно и микроскопом гвозди забивать, но зачем?


        1. olegtsss Автор
          26.10.2021 12:56

          Микроскопом гвозди нельзя забивать. А настроить родительский контроль на RouterOS можно.


          1. galqiwi
            26.10.2021 15:53
            +2


            1. olegtsss Автор
              26.10.2021 16:42

              Так совсем не годится !


  1. KMVp
    26.10.2021 13:10

    Вместо настройки своего днс можно поставить проект https://pi-hole.net/ например в докере на той же малинке. Неплохо блокирует всякую гадость "из коробки". В паре с кидс контролом у меня работает вполне устойчиво. По статистике в среднем 12.5% днс запросов из домашней сети оказывается заблокировано :)


    1. olegtsss Автор
      26.10.2021 15:19

      У нас с MikroTik-ом получится лучше), правда не из коробки )). А так pi-hole прикольный проект.


      1. KMVp
        26.10.2021 21:22

        Так я о том, что разговор уже зашел вне микротика что-то вынести. Нас самом микротике у меня тоже долго фильтровалось без pi-hole.


        1. olegtsss Автор
          27.10.2021 03:47

          Сегодня поговорим про более интересные вещи, читайте вторую статью.


    1. tpedko
      28.10.2021 14:17

      на 7 версии ROS появилась возможность запускать docker, а там и pi-hole и AdGuard Home можно поднять.


  1. DaemonGloom
    26.10.2021 13:17

    Кстати, в седьмой версии RouterOS можно поднять контейнер через docker прямо на самом роутере. И никакой дополнительный сервер будет не нужен.
    https://help.mikrotik.com/docs/display/ROS/Container


    1. olegtsss Автор
      26.10.2021 15:25

      Не плохая штука, нужно попробовать!


    1. net_racoon
      26.10.2021 17:27

      Ага, т.е. роутер будет и трафик рулить и ДНС- запросы фильтровать и страничку показывать? Он у вас загнется от такой нагрузки, ресурсы то не бесконечные.


      1. olegtsss Автор
        26.10.2021 17:50

        /system resource print interval=00:00:00.2
        -> cpu-load: 9%
        Следите за нагрузкой ЦП, если идете в 30% и выше, ищите что так перегружает его. Обязательно к использованию:
        /ip firewall filter
        add action=accept chain=input comment=«Accept established,related» connection-state=established,related
        add action=drop chain=input comment=«Drop invalid» connection-state=invalid
        add action=accept chain=forward comment=«Accept established,related» connection-state=established,related
        add action=drop chain=forward comment=«Drop invalid» connection-state=invalid


  1. 13werwolf13
    26.10.2021 13:21

    полезное, добавлю в закладки

    а от себя хочу поделиться своим решением по "безопасному DNS" (больше для жены ибо дитятко пока маловато в интернеты тыкаться) построенным на базе https://github.com/StevenBlack/hosts и openwrt: https://itrus.su/itrus.su--linux_t&t--OpenWRT--StevenBlack_hosts.html


  1. Admaer
    26.10.2021 15:33

    Минут десять пытался въехать, почему вначале предлагают просто редиректить DNS запросы на DNS сервер, запущенный на микротике, а потом предлагают их уже NAT'ить. Завтра ещё раз попробую.


    1. olegtsss Автор
      26.10.2021 15:40

      "… предварительно отключив описанное выше правило /ip firewall nat add action=redirect…" — статья раскрывает различные возможности RouterOS, подходите к представленным материалам с головой, это все-таки не manual в чистом виде.


      1. Admaer
        26.10.2021 15:50

        Нет, я вижу, что правило редиректа отключается. Я понял всё описанное так.

        В первом варианте на роутере запускается служба DNS и на всех клиентах в настройках сети стоит полученный по DHCP DNS 10.0.0.1 - адрес роутера. Чтобы дети не настроили свой DNS настроен перехват DNS запросов и заворот их на DNS службу роутера.

        Во втором случае клиента по DHCP получают нормальные DNS сервер, без родительского контроля (Кстати, было бы здорово, если бы в примере IP отличались не одной цифрой. Я на самом деле очень сонный сейчас и заметил разницу только скопировав адреса в блокнот), а DNS запросы с устройств из списка "Children" опять перехватываются и уже не просто перенаправляются, но ещё и натяться в адрес 10.0.0.1 и вот тут я слишком сонный, чтобы это понять. Просто чтобы показать, что можно и так и так?


        1. olegtsss Автор
          26.10.2021 16:49

          Давайте я прокомментирую второй случай. Взрослым при помощи помощи DHCP-сервера раздаём обычные внешние DNS сервера. Детским IP адресам раздаём в качестве DNS сервера себя самого (ip роутера, на котором работает DNS служба (сервер) с кучей статики и родительским DNS).


  1. firs058
    27.10.2021 08:49

    Эм, зачем городить весь этот огород? Просто ставится куда-нибудь пихуль (Pi-hole) и два бриджа со своими dhcp и dns - для своих устройств и для детей. И то, если это так уж надо. Все. Но тогда будет не о чем статьи писать, верно?
    А что ограничивать - дело такое. Сам себе заблокировал 840 тысяч доменов. Реклама, трекинг, казино, всякие подозрительные ресурсы и мой личный список хейта - мейлрушечки, векашечки и вот это вот все. А ограничивать порно... зачем? Изверги что ли?


    1. olegtsss Автор
      27.10.2021 09:41

      Pi-hole - это подделка (сделай сам) на одноплатнике. А MikroTik - это маршрутизатор корпоративного уровня. Статья написана для тех, кто его установил дома, а компетенции настроить под собственные задачи не хватает .


      1. firs058
        27.10.2021 10:14
        -1

        Какое еще сделай сам? Дистрибутив Pi-hole ставится одной командой на обычный Debian. А обычный Debian без разницы на чем работает. У меня на одной из виртуалок. Сами себе придумали проблему и сами героически ее решили.

        Человек без компетенции не купит себе микрот. А даже если и купит, то прописать свой локальный dns проще, чем городить все, что в статье.

        Впрочем, каждый развлекается как хочет.


        1. olegtsss Автор
          27.10.2021 11:45

          Raspberry Pi, Black hole, Pi hole - интересная игра слов. Можно установить целый сервер с Linux, который заменит роутер. Все все там настроить. Но для этой задачи существуют отдельные устройства. Тема статьи - организация родительского контроля на оборудовании MikroTik, написана для пула пользователей оборудованием данного производителя, которым интересно, как это можно сделать на RouterOS.


          1. firs058
            27.10.2021 12:14

            Да, а давайте на микротике заодно еще и сайт поднимем. Ну а что, можно же. У железки ограниченные ресурсы. Вам выше уже писали, что микрот загнется от больших списков.
            Не делайте троллейбус из буханки просто потому, что можете. И Вы сами же в статье пишите в итоге про отдельный VDS. А значит, все-равно все сводится к отдельной тачке для dns.
            Ну и кто тут со словами играет?


            1. olegtsss Автор
              27.10.2021 14:22

              Давайте ещё раз проговорим основные тезисы. Задача: организация родительского контроля. Входные данные: оборудование MikroTik. Применяем: DNS, Firewall Filter, Firewall Mangle, Kid Controle. Если надо масштабироваться - делаем. Как проверить нагрузку на маршрутизатор, в комментах я писал. Если все сделано адекватно - получим отлично работающее качественное решение.


  1. firs058
    27.10.2021 10:13

    del


  1. KPEBETKA
    27.10.2021 16:42

    К сожалению, функционал родительского контроля в микротике очень неочень, а предлагаемое вами решение несколько переусложнено и не покрывает кейс когда у чилдренов есть ещё тачки с ethernet-линком

    Я в своё время перебрал достаточно много вариантов и, в итоге, пришёл к тому, что был сделан бридж со своим пулом серых ip специально для детей, этот бридж обслуживает и отдельный "детский" wlan и ethernet-розетки в детской. Все dns-запросы с этого пула ip редиректятся в "днс для детей", в частности 77.88.8.7 (не реклама, тут может быть любой другой dns), а вместо того чтобы гасить wlan и/или ethernet, просто по времени реджектится любой исходящий траффик правилами фильтрации


    1. olegtsss Автор
      27.10.2021 17:37

      Еще раз анонсирую вторую часть статьи, в которой мы поговорим про возможности Firewall Mangle в контексте решаемой задачи. Я бы сказал, что это наиболее классная штука в RouterOS, которую многие обходят стороной. Какой функционал родительского контроля вы бы хотели видеть в оборудовании MikroTik?


      1. KPEBETKA
        28.10.2021 16:13

        Мои вкусы очень специфичны, а потому хотелось бы видеть:
        – Возможность определять устройства не по MAC, а по IP (с маской и без) и по имени учётной записи из радиуса, например
        – Возможность гибко настраивать каждый день, т.е., условно, "интернет есть в понедельник с 16 до 17 и с 20 до 21, а в воскресенье есть с 9 до 16 и с 19 до 21" и т.д. и т.п. Для примера, у меня настроено вот так:


        1. olegtsss Автор
          28.10.2021 17:42

          Современные IOS и Android телефоны рандомят MAC по различным правилам. Сходу решением данной проблемы будет работающий Radius, c этим я согласен полностью.


  1. Hisoka
    29.10.2021 07:23
    +1

    По поводу настройки bind - правильно делать RPZ:

    https://blog.bissquit.com/unix/nastrojka-response-policy-zone-rpz-v-bind9/

    Или вот, даже:

    https://habr.com/ru/post/236113/


  1. Alekxandr
    29.10.2021 18:32

    /ip dns static add address=127.0.0.1 regexp=\\\\*example\.com$

    Выдаёт ошибку.

    syntax error (line 1 column 45)


  1. olegtsss Автор
    29.10.2021 18:33

    Вы забыли кавычки.
    /ip dns static add address=127.0.0.1 regexp="\\\\*example\.com$"


    1. grims
      31.10.2021 16:21

      С кавычками синтаксис на * ругается.


      1. olegtsss Автор
        31.10.2021 17:43

        /ip dns static add address=127.0.0.1 regexp="\\\\*example\\.com$"
        Разница -> \\.


        1. Alekxandr
          01.11.2021 15:10

          /ip dns static add address=127.0.0.1 regexp="\\\\*example\\.com$"

          Ответ - failure: name or regexp required

          Дописал имя

          /ip dns static add name=example address=127.0.0.1 regexp="\\\\*example\\.com$"

          Запись появляется, но в поле regexp ничего не прописывается.


          1. olegtsss Автор
            01.11.2021 18:43

            Извините)). Вот экспорт конфига. Ранее не верно писал окончание регулярного выражения:
            /ip dns static
            add address=127.0.0.1 regexp="\\\\*test\\.ru\$"
            add address=127.0.0.1 regexp="\\\\*example\\.ru\$"


            1. Alekxandr
              02.11.2021 10:42

              Большое спасибо!