В этой статье мы расскажем, как с помощью роутера MikroTik закрыть детям доступ к порно сайтам, а также научим включать / отключать интернет по расписанию.
Содержание:
Чтобы закрыть доступ к порно сайтам проще всего использовать сторонние DNS серверы, которые самостоятельно мониторят сайты для взрослых и обновляют их базу.
Мы приведем пример с серверами Norton DNS.
Сервера с блокировкой вредоносных сайтов:
DNS1: 198.153.192.40
DNS2: 198.153.194.40
Сервера с блокировкой вредоносных сайтов и порно сайтов:
DNS1: 198.153.192.50
DNS2: 198.153.194.50
Сервера с блокировкой вредоносных сайтов, порно сайтов и файлообменников:
DNS1: 198.153.192.60
DNS2: 198.153.194.60
Нам подходит сервер с блокировкой вредоносных сайтов и порно сайтов, например, 198.153.192.50. Настроим роутер MikroTik на его использование:
Чтобы проверить блокировку на компьютере с ОС Windows, сначала очистите кэш DNS. Для этого выполните следующее:
В конце выключите и включите сетевой интерфейс на компьютере, чтобы он получил новый адрес DNS сервера. Или можете просто перезагрузить компьютер.
Теперь в браузере наберите в поиске "порно" и попробуйте перейти по нескольким ссылкам. При переходе вы получите окно блокировки. Значит все работает.
Данный способ позволяет заблокировать большинство сайтов для взрослых, но не абсолютно все. Каждый день открывается огромное количество новых порно сайтов, и сотрудникам DNS сервисов нужно время, чтобы их найти и добавить в базу.
В настройках сетевой карты можно указать вручную альтернативный DNS сервер. Тогда запросы будут идти мимо необходимого нам DNS сервера, и блокировка работать не будет. Поэтому все DNS запросы необходимо завернуть на наш роутер. Для этого откройте меню New Terminal и выполните следующие команды:
Далее перейдите в меню IP - Firewall и на вкладке NAT переместите созданные правила вверх. Теперь все DNS запросы будут идти через наш роутер.
Однажды у меня был телефонный разговор с клиентом:
Я учел пожелания таких клиентов, поэтому ниже пойдет речь о том, как сделать, чтобы у родителей был доступ к порно сайтам, а у детей - нет. Обязательное условие - у детей и родителей должны быть разные компьютеры или смартфоны.
Сначала нужно привязать MAC адреса всех домашних устройств к IP адресам. Для этого подключите все необходимые устройства к роутеру. Далее откройте меню IP - DHCP Server, перейдите на вкладку Leases, кликните правой кнопкой мыши на каждом устройстве и выберите Make Static.
Теперь составим два списка с IP-адресами:
Списки добавляются в меню IP - Firewall - Address Lists. Проще всего это сделать командами ниже. Не забудьте поменять IP адреса на соответствующие вашим устройствам.
Далее создадим правила, по которым устройства из родительского списка Parents-List будут использовать DNS сервер без блокировки Google 8.8.8.8, а устройства из детского списка будут использовать сервер Norton DNS 198.153.192.50 с блокировкой вредоносных и порно сайтов.
Перейдите в меню IP - Firewall и на вкладке NAT переместите созданные правила в самый вверх.
После этого переподключите устройства к роутеру MikroTik и проверяйте работу.
Если вы желаете добавлять свои запрещенные сайты, то рекомендую использовать сервис OpenDNS. Он позволяет настроить категории сайтов, которые нужно блокировать, а также добавлять свои запрещенные и разрешенные сайты.
Перейдите на сайт https://signup.opendns.com/homefree/ и зарегистрируйте новый бесплатный аккаунт.
В следующем окне появятся адреса DNS серверов 208.67.222.222 и 208.67.220.220, которые нужно будет указать в настройках роутера.
Далее откройте свой email, подтвердите регистрацию и залогинтесь на сайте.
Перейдите в "Dashboard - Settings". Здесь автоматически определится ваш IP адрес. Нажмите кнопку "ADD THIS NETWORK".
В появившемся окне укажите название сети, и поставьте галочку "Yes, it is dynamic", если роутер получает IP адрес от провайдера динамически (автоматически) по DHCP.
Далее кликните на IP-адрес созданной сети, чтобы открыть настройки.
Выберите режим "Custom". Укажите галочками сайты из каких категорий должны блокироваться, и нажмите кнопку "Apply".
Ниже в "Manage Individual Domain" можно добавить свои сайты, которые нужно блокировать (Always block), или добавить в исключения и не блокировать (Never block).
Теперь осталось в роутере MikroTik указать адреса OpenDNS серверов 208.67.222.222 или 208.67.220.220.
На компьютере очищаем кэш DNS, отключаем и включаем сетевое подключение. Далее пробуем открыть порно сайт и получаем окно блокировки. Все работает.
Родители часто жалуются, что их дети по ночам сидят в интернете, хотя должны спать. Также кто-то хочет, чтобы ребенок после прихода со школы, сначала выучил уроки, а не сидел в интернете.
В качестве примера рассмотрим следующую задачу: наш ребенок приходит со школы в 15:00. Мы хотим, чтобы он до 17:00 выучил уроки. В это время интернет должен быть отключен. В 17:00 включаем интернет. В 22:00 выключаем интернет, когда нужно идти спать. С утра тоже включим интернет с 6:00 до 9:00. Данные правила должны работать только в будние дни. На выходных доступ к интернету должен быть круглосуточно.
Итого:
Для реализации задуманного нам потребуется использовать в роутере MikroTik скрипт и планировщик.
Сначала нужно привязать MAC адреса всех домашних устройств к IP адресам, и составить два списка с IP-адресами родительских устройств и устройств детей. Если вы это уже делали выше, то пропустите этот шаг.
Чтобы привязать MAC адреса, подключите все необходимые устройства к роутеру. Откройте меню IP - DHCP Server, перейдите на вкладку Leases, кликните правой кнопкой мыши на каждом устройстве и выберите Make Static.
Теперь составим два списка с IP-адресами:
Списки добавляются в меню IP - Firewall на вкладке Address Lists. Проще всего это сделать командами ниже. Не забудьте поменять IP адреса на соответствующие вашим устройствам.
Добавляем правила NAT для разрешения доступа к интернету каждому списку IP адресов.
Старое правило NAT можно деактивировать, чтобы если к сети подключится незнакомое устройство, то у него не было интернета. Но если придут гости, включите его, чтобы у них появился интернет.
Проверьте, что на роутере правильно установлена дата и время в меню System - Clock.
Ниже указан скрипт включения / отключения интернета по расписанию. Отредактируйте в нем время, необходимое вам. Если вы использовали другой текст комментариев в правилах NAT, то измените параметр NatComment.
####################################
## Script to On / Off internet access for kids
####################################
:log warning "KidsInternetOnOff Script started.";
################################
## Set the internet ON and OFF times here
:local InternetOnTime "6:00";
:local InternetOffTime "9:00";
:local InternetOnTime2 "17:00";
:local InternetOffTime2 "22:00";
:local NatComment "Internet-For-Kids";
##
#################################
#################################
## Get Current Day Of Week
:local date [/system clock get date]
# Math Calculation here
:local result ""
:local months [:toarray "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec"]
:local daytbl [:toarray "sun,mon,tue,wed,thu,fri,sat"]
:local month [:pick $date 0 3]
:local day [:pick $date 4 6]
:local dayc [:pick $date 5 6]
:local year [:pick $date 7 11]
# if the first char is a 0 (zero) only read last char, else script fails
:if ([:pick $date 4 5] = 0) do={ :set day ($dayc)}
:local sum 0
:local aaa 0
:local yyy 0
:local mmm 0
:local nmonth 1
:for mindex from=0 to=[:len $months] do={
:if ([:pick $months $mindex] = $month) do={:set nmonth ($mindex + 1) }
}
:set aaa ((14 - $nmonth) / 12)
:set yyy ($year - $aaa)
:set mmm ($nmonth + 12 * $aaa - 2)
:set sum (7000 + $day + $yyy + ($yyy / 4) - ($yyy / 100) + ($yyy / 400) + ((31 * $mmm) / 12))
:set sum ($sum - (($sum / 7) * 7))
:set result [:pick $daytbl $sum]
:log info "Today is $result."
##
##################################
##################################
## Get Current Time and NAT Status
:local CurrentTime [/system clock get time];
## Setup log prefix
:local LogPrefix "KidsInternet $CurrentTime";
## Check current ON or OFF status of Kids NAT#
:local InternetDisabled [/ip firewall nat get [find comment=$NatComment] disabled];
:log info "$LogPrefix Disabled = $InternetDisabled";
##
##################################
##################################
## Check Time If It Is Workday
:local workday [:toarray "mon,tue,wed,thu,fri"]
:if ($workday ~ $result) do={
:log info "Today is Workday.";
## Where the ON time is set earlier than the OFF time #
:if (($InternetOnTime < $InternetOffTime) || ($InternetOnTime2 < $InternetOffTime2)) do {
## Internet should be ON between these times #
:if ((($CurrentTime > $InternetOnTime) and ($CurrentTime < $InternetOffTime)) || (($CurrentTime > $InternetOnTime2) and ($CurrentTime < $InternetOffTime2))) do {
if ($InternetDisabled=true) do {
:log warning "$LogPrefix was OFF, now switching ON.";
/ip firewall nat enable [find comment=$NatComment];
}
} else {
if ($InternetDisabled=false) do {
:log warning "$LogPrefix was ON, now switching OFF.";
/ip firewall nat disable [find comment=$NatComment];
}
}
}
##################################
## Kids Internet ON If It Is NOT Workday
} else={
:log info "Today is NOT Workday."
if ($InternetDisabled=true) do {
:log warning "$LogPrefix was OFF, now switching ON.";
/ip firewall nat enable [find comment=$NatComment];
}
}
##
##################################
:log warning "KidsInternetOnOff Script completed.";
Добавим скрипт в MikroTik.
Проверим работу скрипта.
Теперь добавим в планировщик выполнение данного скрипта каждую минуту.
После этого в меню Log вы увидите, как каждую минуту выполняется скрипт.
Если вы не хотите, чтобы информационные сообщения выводились в лог и забивали его, откройте текст скрипта и поставьте символ решетки # перед командами, которые начинаются на ":log". Оставьте не закомментированными строки :log warning "$LogPrefix was OFF, now switching ON."; и :log warning "$LogPrefix was ON, now switching OFF."; , чтобы отслеживать время включения / отключения интернета.
Відгуки про статтю
Не легче установить в IP > DNS > 176.103.130.132 (adguard famely) и отдельно создать только Parents-List с гугловскими DNS? В итоге фильтр для всех девайсов кроме родительских.
Скрипт здесь https://api.gimro.ru/files/kids-internet-times.mikrotik.script.txt