Время на прочтение
3 мин
Количество просмотров 173K
На написание данной статьи меня сподвиг тот факт, что старший ребенок стал по ночам вместо того чтобы укладываться спать, смотреть на своем смартфоне всякие ролики на youtube, до поздней ночи, а так же замена домашнего роутера с TP-Link TL-WR1043ND на MikroTik RB951G-2HnD.
Поизучав интернеты, наткнулся на презентацию от 2017 года на канале микротика в ютубе. Там описывалось, как не надо делать и как делать правильно. Возможно, для многих продвинутых пользователей MikroTik и RouterOS это не будет открытием, но надеюсь что поможет начинающим пользователям, как я, не заблудиться в дебрях вариантов, предлагаемых в интернете.
Начнем с часто предлагаемого варианта в интернете (так не надо делать!!!):
● /ip firewall layer7-protocol
add name=youtube regexp="^.+(youtube).*$"
add name=facebook regexp="^.+(facebook).*$"
● /ip firewall filter
add action=drop chain=forward layer7-protocol=facebook
add action=drop chain=forward layer7-protocol=youtube
У данного решения следующие минусы: высокая нагрузка на cpu, увеличенная latency, потеря пакетов, youtube и facebook не блокируются.
Почему так происходит? Каждое соединение проверяется снова и снова, Layer7 проверяется не в том месте, что приводит к проверке всего трафика.
Правильное решение
Создаем правило с регулярным выражением для Layer7:
● /ip firewall layer7-protocol
add name=youtube regexp="^.+(youtube).*$"
Я блочил только ютуб, если нужен фейсбук или что-то иное, создает отдельные правила
add name=facebook regexp="^.+(facebook).*$"
Можно создавать правила и для других сервисов стримминга видео, вот один из вариантов:
regexp=”^.*youtube.com|youtu.be|netflix.com|vimeo.com|screen.yahoo.com|dailyMotion.com|hulu.com|twitch.tv|liveleak.com|vine.co|break.com|tv.com|metacafe.com|viewster.com).*$”
Далее создаем правила для маркировки соединений и пакетов:
● /ip firewall mangle
add action=mark-connection chain=prerouting protocol=udp
dst-port=53 connection-mark=no-mark layer7-protocol=youtube new-connection-mark=youtube_conn passthrough=yes
add action=mark-packet chain=prerouting connection-mark=youtube_conn new-packet-mark=youtube_packet
и правила для фильтра файрвола:
● /ip firewall filter
add action=drop chain=forward packet-mark=youtube_packet
add action=drop chain=input packet-mark=youtube_packet
У меня в домашней сети по dhcp раздаются статические ip-адреса, поэтому фильтр я применял к ip-адресу смартфона ребенка, можно создать группу адресов и применить к ней. Идем в меню IP>Firewall>AddressList нажимаем кнопку Add, вводим название группы и не забываем заполнить список адресов для блокировки.
Далее идем меню IP>Firewall>Mangle выбираем наши mark_connection и mark_packet и в поле Src. Address вбиваем блокируемый ip либо группу.
Все, девайс остался без ютуба, жестко, но в воспитательных целях нужно.
Так же можно применять эти правила по расписанию.
Буду рад комментариями и поправкам, если вы заметите какие то неточности, т.к. это моя первая статья на Хабре. По материалам канала MikroTik на Youtube. Внимание, эта статья не о том как ограничить доступ ребенку в интернет, ограничение доступа в ютуб — это просто пример. Статья об одном из способов ограничения доступа к нежелательным ресурсам.
Updt1, от avelor, блок по mac:
● /ip firewall filter
add chain=input src-mac-address=aa:bb:cc:dd:ee:ff action=drop
add chain=forward src-mac-address=aa:bb:cc:dd:ee:ff action=drop
можно заблочить и в dhcp — сделать lease и жмякнуть block access
In order to block a specific IP address, you need to add a Firewall filter rule.
Step-by-step guide
Follow these steps to add filter rule using Winbox:
- Go to IP>Firewall;
- Select tab «Filter rules»;
- Click on the + to add new rule;
- Select tab «General»;
- Choose Chain: Input;
- Select Src. Address — input your desired IP;
- Select tab «Action»;
- Choose Action: Drop;
- Click OK, and the desired IP address will be blocked by a firewall filter.
code
/ip firewall filter add chain=input src-address=1.1.1.1 action=drop
Chain «input» limit the connection to the device itself. To limit traffic going through the device use chain «forward». Please refer to the Building Your First Firewall
Related articles
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.
- Download Winbox 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.
Related Post
- How to Login Asus router Settings 192.168.1.1
- How to Check Who is connected to My WiFi
- 192.168.1.1 | How to login router
- UBTN Lite Beam M5 Login 192.168.1.20
- Блокирование сайтов по имени
- Блокирование сайтов по IP-адресу
- Блокирование сайтов с помощью статических DNS записей
- Блокирование сайтов с помощью Proxy сервера
- Проброс портов в роутере MikroTik
Блокирование сайтов по имени
В MikroTik RouterOS, начиная с версии 6.36, появилась возможность указывать DNS-имена сайтов в адрес-листах, а роутер сам определяет их IP-адреса или диапазоны IP-адресов. Поэтому процесс блокировки сайтов с помощью фаервола существенно упростился.
В RouterOS 6.36 и выше откройте меню NewTerminal и выполните следующие команды для блокировки сайтов:
# Добавляем список запрещенных сайтов с названием BlockedSites
/ip firewall address-list add list=BlockedSites address=youtube.com disabled=no
/ip firewall address-list add list=BlockedSites address=vk.com disabled=no
/ip firewall address-list add list=BlockedSites address=ok.ru disabled=no
# Добавляем в фаервол правило блокировки сайтов из списка BlockedSites
/ip firewall filter add chain=forward src-address-list=BlockedSites protocol=tcp action=reject reject-with=tcp-reset comment=»BlockedSites» disabled=no
# Перемещаем в фаерволе правило BlockedSites вверх выше остальных правил
/ip firewall filter move [find comment=»BlockedSites»] 1
Cписок запрещенных сайтов можно редактировать в меню IP — Firewall на вкладке Address Lists.
Правило блокировки находится в меню IP — Firewall на вкладке Filter Rules.
RouterOS по имени сайта неплохо определяет диапазоны IP-адресов, но не идеально. Мне не удалось с помощью данного способа заблокировать сайты facebook.com и instagram.com, поскольку MikroTik нашел не все необходимые диапазоны IP-адресов. Пришлось вручную найти необходимые IP-адреса и добавить их. Как это сделать, написано ниже.
Блокирование сайтов по IP-адресу
Фаервол позволяет заблокировать сайт по его IP-адресу. Узнать IP-адрес сайта можно в Windows, набрав в консоли команду nslookup имя сайта, например nslookup vk.com.
Чтобы выполнить команду nslookup в маршрутизаторе MikroTik, откройте меню New Terminal и выполните команду-аналог put [:resolve vk.com]
Сайты социальных сетей имеют много серверов с разными IP-адресами и вышеуказанные команды могут не показать адреса всех серверов. Поэтому лучше всего с помощью онлайн сервисов whois узнать, какие сети принадлежат данной социальной сети. Например, Vkontakte Ltd принадлежит сеть 87.240.128.0/18 и 93.186.224.0/22.
В поиске IP-адресов также поможет сервис bgp.he.net
После того, как мы узнали нужные нам IP-адреса, выполните в терминале MikroTik следующие команды:
# Добавляем список запрещенных IP-адресов с названием BlockedSites
/ip firewall address-list add list=BlockedSites address=87.240.143.244 disabled=no
/ip firewall address-list add list=BlockedSites address=87.240.128.0/18 disabled=no
/ip firewall address-list add list=BlockedSites address=93.186.224.0/22 disabled=no
# Добавляем в фаервол правило блокировки IP-адресов из списка BlockedSites
/ip firewall filter add chain=forward src-address-list=BlockedSites protocol=tcp action=reject reject-with=tcp-reset comment=»BlockedSites» disabled=no
# Перемещаем в фаерволе правило BlockedSites вверх выше остальных правил
/ip firewall filter move [find comment=»BlockedSites»] 1
Блокирование социальных сетей довольно трудоемкий процесс, поскольку социальные сети открывают дубликаты своих сайтов с другими именами и IP адресами серверов. Продвинутые пользователи обходят ограничения еще с помощью сайтов анонимайзеров. Поэтому блокируя доступ к социальным сетям, вам также придется выискивать сайты анонимайзеры и тоже их блокировать.
Блокирование сайтов с помощью статических DNS записей
Заблокировать доступ к сайту можно также, создав статическую DNS запись с названием сайта и несуществующим IP адресом для него, например 127.0.0.1. Перед именем сайта бывает автоматически приписывается www, поэтому нужно создавать две записи, например odnoklassniki.ru и www.odnoklassniki.ru
Откройте меню NewTerminal и выполните следующие команды для блокировки одноклассников:
/ip dns static add name=»odnoklassniki.ru» address=127.0.0.1
/ip dns static add name=»www.odnoklassniki.ru» address=127.0.0.1
У пользователей заблокированные сайты еще будут открываться некоторое время, потому что на компьютерах есть DNS кэш, в котором временно хранятся имена посещенных сайтов и их IP адреса. Для очистки DNS кэша на компьютере нужно запустить командную строку cmd и ввести команду ipconfig /flushdns.
Такой способ блокирования сайтов будет работать только в том случае, если пользователь использует DNS сервер центрального роутера MikroTik. Если пользователь настроит вручную другой адрес DNS сервера, то ограничение работать не будет. Поэтому все DNS запросы необходимо завернуть на наш роутер. Для этого откройте меню New Terminal и выполните следующие команды:
/ip firewall nat add chain=dstnat protocol=udp dst-port=53 action=redirect add chain=dstnat protocol=tcp dst-port=53 action=redirect
Далее перейдите в меню IP — Firewall и на вкладке NAT переместите созданные правила вверх. Теперь все DNS запросы будут идти через наш роутер.
Блокирование сайтов с помощью Proxy-сервера
Закрыть доступ к сайтам можно также с использованием прозрачного proxy-сервера MikroTik.
Разрешим использование прокси-сервера и настроим его. Для этого откройте New Terminal и выполните следующие команды:
/ip proxy set enabled=yes
set src-address=0.0.0.0
set port=8080
set parent-proxy=0.0.0.0
set parent-proxy-port=0
set cache-administrator=»webmaster»
set max-cache-size=none
set cache-on-disk=no
set max-client-connections=600
set max-server-connections=600
set max-fresh-time=3d
set always-from-cache=no
set cache-hit-dscp=4
set serialize-connections=no
Делаем proxy-сервер прозрачным:
/ip firewall nat add chain=dstnat protocol=tcp dst-port=80 action=redirect to-ports=8080
Закрываем доступ к прокси-серверу со стороны Интернета:
/ip firewall filter add chain=input in-interface= protocol=tcp dst-port=8080 action=drop
Вводим команду блокировки сайта:
/ip proxy access add dst-host=www.odnoklassniki.ru action=deny
Проброс портов в роутере MikroTik
Проброс портов в роутере MikroTik (port forwarding) позволяет организовать удаленный доступ из интернета к какому-нибудь устройству внутри вашей локальной сети (к IP-камере, Web, FTP или игровому серверу).
Ваш роутер обязательно должен иметь белый IP-адрес, по которому к нему можно подключиться из интернета. В роутере MikroTik проверить белый ли у вас IP-адрес можно следующим образом:
- Откройте меню IP — Cloud
- Поставьте галочку DDNS Enabled
- Нажмите кнопку Apply
- Если после этого отобразиться статус «updated» без ошибок, то у вас белый IP-адрес.
Если в правом нижнем углу отображается ошибка типа «DDNS server received request from IP 67.170.73.47 but your local IP was 104.12.152.1; DDNS service might not work.«, то у вас серый IP-адрес. В этом случае вам нужно обратиться к провайдеру для получения белого IP-адреса. У некоторых провайдеров это платная услуга.
Итак, у нас имеется роутер MikroTik с белым IP-адресом 178.189.224.122. Он имеет внутреннюю подсеть 192.168.88.0/24.
Внутри подсети есть IP-камера с адресом 192.168.88.250, у которой есть Web-интерфейс, работающий на 80 порту. Нам нужно обеспечить доступ из интернета к Web-интерфейсу IP-камеры.
Необходимо сделать так, чтобы при открытии в браузере адреса http://178.189.224.122:10000, мы попадали на Web-интерфейс IP-камеры.
10000 в адресной строке — это произвольный номер порта. Его желательно указывать в диапазоне от 49152 до 65535. Можно также использовать диапазон от 1024 до 49151, если вы уверены, что указанный порт не будет конфликтовать с какой-то программой.
Для проброса портов в роутере MikroTik откройте меню New Terminal и выполните команды, описанные ниже:
Первым делом добавляем правило маскарадинга для подсети 192.168.88.0/24
/ip firewall nat add action=masquerade chain=srcnat src-address=192.168.88.0/24
Далее обращения из интернета к порту 10000, перенаправляем во внутреннюю сеть на устройство 192.168.88.250 и порт 80.
/ip firewall nat add action=netmap chain=dstnat dst-port=10000 in-interface=ether1 protocol=tcp to-addresses=192.168.88.250 to-ports=80
Обращения из локальной сети к внешнему IP-адресу 178.189.224.122 и порту 10000 перенаправляем в локальную сеть на устройство 192.168.88.250 и порт 80, а не в Интернет.
/ip firewall nat add action=netmap chain=dstnat dst-address=178.189.224.122 dst-port=10000 in-interface=bridge protocol=tcp src-address=192.168.88.0/24 to-addresses=192.168.88.250 to-ports=80
Созданные правила можно посмотреть в меню IP — Firewall на вкладке NAT.
Теперь открываем в браузере адрес http://178.189.224.122:10000. Появляется окно с вводом пароля.
Вводим логин, пароль и попадаем на Web-страничку с видео и настройками IP-камеры.
Я еще захотел просматривать видео на планшете в полноэкранном режиме без использования Web-интерфейса. В этом поможет программа VLC media player. Она может отображать видеопоток по протоколу RTSP, который поддерживает моя камера TP-Link. Протокол RTSP использует порт 554, поэтому его нужно пробросить в роутере MikroTik.
Обращения из интернета к порту 554, перенаправляем во внутреннюю сеть на устройство 192.168.88.250 и порт 554.
/ip firewall nat add action=netmap chain=dstnat dst-port=554 in-interface=ether1 protocol=tcp to-addresses=192.168.88.250 to-ports=554
Обращения из локальной сети к внешнему IP-адресу 178.189.224.122 и порту 554 перенаправляем в локальную сеть на устройство 192.168.88.250 и порт 554, а не в интернет.
/ip firewall nat add action=netmap chain=dstnat dst-address=178.189.224.122 dst-port=554 in-interface=bridge protocol=tcp src-address=192.168.88.0/24 to-addresses=192.168.88.250 to-ports=554
Теперь запускаем на планшете программу VLC media player и выбираем открыть Сетевой ресурс. В ОС Windows в VLC media player нужно открыть меню Медиа — Открыть URL.
Вводим адрес rtsp://login:passwd@178.189.224.122/video.mp4
, где login — логин для доступа к IP-камере, passwd — пароль для доступа к IP-камере, 178.189.224.122 — внешний IP-адрес роутера.
Строка RTSP запроса для вашей модели камеры может отличаться. Поэтому уточните на сайте производителя или в документации к камере, как она правильно прописывается. Также удостоверьтесь, что ваша камера поддерживает протокол RTSP и он включен в настройках.
Далее нажмите Открыть сетевой ресурс. В нижней части появится миниатюра видео с камеры. Нажмите на нее.
После этого видео на планшете откроется в полноэкранном режиме.
Источник: «Блокирование сайтов в роутере MikroTik» и «Проброс портов в роутере MikroTik»
Как быстро закрыть доступ к сайту
Начнем с самого простого. У нас есть роутер Mikrotik, утилита winbox и желание конкретному пользователю установить запрет на посещение определенного сайта. В моем примере это будет запрет на доступ к сайту одноклассники – ok.ru. Подключаемся к роутеру и идем в раздел IP -> Firewall, открываем вкладку Address List:
Нажимаем на + и создаем список для блокировки сайта:
Мы заполнили 2 поля:
- Name – имя списка. Может быть любым.
- Address – адрес сайта. Параметр может принимать значения как ip адреса, так и доменного имени.
После добавления списка с адресом в виде доменного имени, происходит автоматический резолв имени в ip адрес. После этого создаются динамические записи в списке уже из конкретных IP адресов. Эти IP адреса берутся из записей типа A в DNS.
У сайта может быть несколько разных доменных имен. Они могут резолвиться в разные IP адреса, так что имеет смысл добавить в список все домены, которые вам известны.
Я добавил на всякий случай адрес odnoklassniki.ru, но по факту в этом нет смысла, так как он резолвится в те же самые ip адреса, что и ok.ru. Новых динамических записей не добавилось.
Теперь настраиваем правило блокировки с использованием созданного ранее списка. Для этого идем на вкладку Filter Rules и добавляем новое правило.
- Chain – forward. Цепочка для транзитных пакетов, которые идут через роутер. В том числе все, что проходит из локальной сети.
- Src. Address – 192.168.13.16. IP ардес, для которого будет работать блокировка. Если хотите заблокировать сайт для всех, можно просто не заполнять это поле. Вместо ip адреса можно указать разом всю подсеть – 192.168.13.0/24.
- Protocol – tcp. Если не указывать протокол, то тоже будет работать блокировка, но чем более конкретно указано правило, тем лучше в общем случае.
Переходим на вкладку Advanced и указываем там список odnoklassniki, который создали ранее.
Далее открываем вкладку Action.
Тут все просто – отбрасываем указанные пакеты, отправляя в ответ ошибку icmp – icmp-network-unreachable. На время отладки можете поставить галочку log, чтобы в логе видеть все сработанные правила с блокировкой социальной сети.
Для того, чтобы правило блокировки работало, его необходимо разместить в списке выше правила, разрешающего трафик из локальной сети в интернет. У меня примерно так получилось.
На этом основная настройка закончена. В данный момент правило по фильтрации сайта уже работает. Мы с помощью стандартных средств mikrotik смогли заблокировать ok.ru. Это нетрудно проверить на клиенте. При попытке открыть адрес сайта популярной соц. сети он получит следующее сообщение в браузере.
В данном случае мы в ручном режиме сделали блокировку сайта конкретному пользователю. Если у вас таких сайтов и пользователей много, процесс надо по-возможности автоматизировать.
Черный список сайтов для фильтрации
Для того, чтобы не создавать отдельные правила для каждого сайта, можно просто создать общий список блокировки и добавлять туда домены. Покажу на примере популярных видеохостингов. Настроим блокировку одним правилом youtube.com, vimeo.com, rutube.ru, ivi.ru, video.mail.ru. Для этого идем в раздел IP -> Firewall -> Address List и добавляем их все туда. Получился такой статический список.
На основе этого списка сформировался набор динамических записей с ip адресами добавленных доменов.
Дальше точно так же создаем правило блокировки в firewall, как мы это сделали в предыдущем примере с одним сайтом, только указываем наш список видеохостингов. В данном случае принципиальной разницы нет, один у нас сайт или список.
Когда будете тестировать блокировку, обратите внимание, есть ли у вас выше в firewall правила для уже установленных соединений. Во время теста может так получиться, что правило блокировки не будет работать из-за того, что у вас соединения уже установлены и не доходят до блокирующего правила.
Запретить социальные сети в mikrotik
Сейчас на примере списка социальных сетей разберу еще один подход к блокировке сайтов в mikrotik. Он будет основываться не на резолве доменных имен в ip адреса, а на анализе содержимого пакетов с помощью Layer7 Protocol. Его преимущество именно в том, что он анализирует содержимое пакетов. Теоретически, это более надежный способ блокировки, так как ip адреса сайтов могут меняться. В случае статических правил с ip адресами это может приводить к тому, что в какой-то момент они станут не актуальны. С эти тоже можно бороться, обновляя списки, но это отдельная тема.
Я расскажу, как использовать Layer7 Protocol в микротике для блокировки социальных сетей просто для примера, чтобы вы знали, что есть такой механизм и его можно использовать.
Для этого создаем правило Layer7 Protocol в соответствующем разделе Winbox IP -> Firewall -> Layer7 Protocols для блокировки социальной сети facebook.
/ip firewall layer7-protocol add name=facebook regexp="^.+(facebook).*\$"
Теперь нам нужно промаркировать все соединения и пакеты в dns запросах, где будет совпадение с созданным ранее правилом. Идем во вкладку Mangle и добавляем правило маркировки соединений.
Чтобы не перепутать какие-то параметры, можете просто ввести в консоли команду и проверить созданное правило.
/ip firewall mangle add action=mark-connection chain=prerouting protocol=udp dst-port=53 connection-mark=no-mark layer7-protocol=facebook new-connection-mark=facebook_conn passthrough=yes
И еще одно правило для маркировки пакетов на основе промаркированного выше соединения.
add action=mark-packet chain=prerouting connection-mark=facebook_conn new-packet-mark=facebook_packet
Пакеты промаркировали. Теперь создаем 2 блокирующих правила для цепочек input и forward. Для этого идем во вкладку Filter Rules и добавляем 2 правила. Я не буду показывать картинки, их и так уже полно в статье. Правила простые, введите их в консоль сами.
add action=drop chain=forward packet-mark=facebook_packet add action=drop chain=input packet-mark=facebook_packet
Далее важно эти правила правильно расположить в списке правил. Они обязательно должны быть выше разрешающих правил для цепочек input и forward. Примерно так.
add action=drop chain=input comment="block facebook" log=yes packet-mark=facebook_packet add action=accept chain=input comment="Local Input" in-interface=!ether2-wan src-address=192.168.13.0/24 add action=drop chain=forward comment="block facebook" log=yes packet-mark=facebook_packet add action=accept chain=forward comment="accept forward from local to internet" in-interface=!ether2-wan
На время отладки я включаю логирование правил, обнуляю счетчики и начинаю тестировать. Если что-то пойдет не так, проверьте так же счетчики в разделе Mangle. Если там будет пусто, значит ошибка либо в правиле Layer7 Protocols, либо в самих правилах маркировки. Я, когда тестировал, неправильно расположил правила в Firewall. В итоге в правилах маркировки счетчики росли, пакеты маркировались, но блокировки не было. Это было видно по нулевым счетчикам в Firewall. После того, как правильно расположил правила, блокировка социальной сети facebook заработала как надо.
Объясняю логику работы данной блокировки. Мы маркируем все соединения к dns серверу, удовлетворяющие указанному regex в правиле Layer7. Далее маркируем все пакеты из этого соединения. Потом в фаерволе блокируем эти соединения. Если клиент использует DNS сервер на микротике, запросы блокируются правилом цепочки input, если используется сторонний, то в блок пакеты попадают по правилу цепочки forward. В итоге у клиента не работает резолвинг доменного имени в ip и он не может попасть на сайт через браузер. Конечно, при желании, эту блокировку соцсети можно обойти. Для наибольшей эффективности надо комбинировать оба предложенных в статье способа.
Для тех, кому интересно, почему я описал именно такой способ блокирования нежелательных сайтов, поясню. Подсмотрел его в недавно переведенной мной презентации от сотрудника Mikrotik, где он дает рекомендации по настройке. Я просто попробовал его реализовать и все получилось. Решил его добавить в эту статью. Все вопросы и претензии по реализации прошу отправлять автору метода, не мне 🙂 Мопед, как говорится, не мой.
Блокировка рекламы средствами mikrotik
С помощью изученного средства по ограничению доступа к сайтам достаточно просто блокировать любую рекламу. Для примера рассмотрим вариант по блокировке рекламы в Skype. Так как я знаю адреса серверов, куда скайп лезет за рекламой, я могу его заблокировать в mikrotik. У меня есть список:
rad.msn.com apps.skype.com vortex-win.data.microsoft.com settings-win.data.microsoft.com
Это адреса, откуда загружается реклама. Списки эти могут меняться время от времени, нужно периодически проверять и обновлять. Самому подготовить список рекламных адресов для конкретного сервиса можно, к примеру, с помощью настройки собственного dns сервера и включения логирования запросов.
Дальше как обычно создаем regexp выражение для списка адресов:
^.+(rad.msn.com|apps.skype.com|vortex-win.data.microsoft.com|settings-win.data.microsoft.com).*$
Либо делаете список с dns именами, как я показал в самом начале, если не хотите использовать Layer7 для этого. Добавляем новое правило блокировки в firewall, подключаем к нему список, созданный ранее и наслаждаемся работой скайпа без рекламы.