Mikrotik и блокировка интернета с ограничением траффика в день

Блокировка интернета на mikrotik

В данной статье рассмотрим, как можно реализовать блокировку интернета, за исключением доступа к почте и мессенджерам имея в распоряжении только mikrotik роутер. Плюс сделаем ограничение по траффику в день.

Варианты ограничения трафика интернета

Вариантов решений блокировки не так чтобы много, т. к. https и другой шифрованный траффик составляет большую часть интернета, поэтому блокировать по содержимому пакета средствами только mikrotik роутера не выйдет. Вариант с прозрачным прокси по этой же причине отбросим (прокси сервис mikrotik не умеет работать с https, а поднять 3proxy на openwrt не каждый mikrotik сможет). Вариант с единственным dns сервером в сети и разрешением резолвить только разрешённые имена возможен (dns запросы не шифруются, следовательно, можно посмотреть пакет и принять решение), но есть проблема с возможностью достучаться по ip адресу и кэшем dns на устройствах. Последний вариант это белые адрес листы, который и рассмотрим.

Задача — блокировка интернета с ограничением траффика в день

Задача: заблокировать весь интернет за исключением почтовых сервисов mail.ru, gmail.com и mail.yandex.ru через веб и мессенджеров viber и whatsapp через смартфоны.

Выполнение задачи нужно начать с заполнения адрес листов, в которые будут включены ip адреса и сети необходимые для работы требуемых сервисов. Для этого перейдём  IP → firewall → address lists и добавляем нужные адреса и сети (можно использовать доменные имена). Например так:

/ip firewall address-list

add address=mail.ru list=whitelist

add address=18.201.5.0/24 comment=»viber voice» list=whitelist

Использование доменных имён позволит избежать проблем, если сервис переедет на другой ip адрес, но как оказалось большие проекты используют множество ip адресов и сетей для работы, поэтому для отлова используем инструмент микротика torch или wireshark, или любой другой подобный инструмент.

После того как адрес листы заполнены можно настроить firewall. Например так:

/ip firewall filter

add action=accept chain=forward comment=»accept established & related » \

connection-state=established,related

add action=accept chain=input connection-state=established,related

add action=accept chain=forward comment=»accept forward white addreses» \

dst-address-list=whitelist

add action=reject chain=input comment=»reject new & invalid connections» \

connection-state=invalid,new reject-with=icmp-host-unreachable

add action=reject chain=forward connection-state=invalid,new reject-with=\

icmp-host-unreachable

где первое и второе правила разрешают уже установившиеся соединения для того, что бы снизить нагрузку на роутер; третье правило разрешает устанавливать соединения с хостами из адрес листа; четвёртое и пятое запрещают остальное. Действие reject-with=icmp-host-unreachable нужно, что бы не разрешённое соединение сразу сбрасывалось, а не висело в попытках соединиться, соответственно не висела веб страничка ожидая очередной порции рекламы или другого мусора.

Далее проверяем, смотрим что не работает, ищем torchем, добавляем в адрес листы, готово.

Теперь о количестве траффика. Эту задачу можно решить с помощью скриптов, которые будут опрашивать счётчик rx-byte и tx-byte интерфейса, который смотрит в интернет и включать запрещающее правило в firewall, когда rx-byte+tx-byte достигнет определённого значения. Ничего сложного, но есть один нюанс: при выключении или перезагрузке микротик роутера эти счётчики сбрасываются. Поэтому данные нужно будет переодически писать в энергонезависимую память. Это может быть флеш память в микротике или какой-нибудь внешний диск (usb флешка, например). Флеш память в микротике, как и любая флеш память, имеет ограниченный ресурс на запись, поэтому надо понимать, что слишком часто на неё лучше не писать, что бы не израсходовать весь ресурс флешки в первый же месяц.

Скрипт подсчёта траффика:

:global temprx;

global temptx ;\r\

:local rx [/interface get [find name=ether1] rx-byte ] ;

:local tx [/interface get [find name=ether1] tx-byte ] ;

/file set flash/rx.txt contents=((\$rx — \$temprx) + [/file get flash/rx.txt contents]);

/file set flash/tx.txt contents=((\$tx — \$temptx) + [/file get flash/tx.txt contents]);

:set temprx \$rx;

:set temptx \$tx;

Скрипт проверки количества траффика и включения запрещающего правила:

:local total {[/file get flash/rx.txt contents]+[/file get flash/tx.txt contents ]};

:if (total > 490000000) do={/ip firewall filter enable numbers=1};

Скрипт проверки текущей даты (т. к. лимит выдаётся на день):

:global currentdate [/system clock get date];

:global lastdate [/file get flash/lastdate.txt contents];

:if (\$lastdate!=\$currentdate) do={/system script run reset};

Скрипт сброса траффика, прописывания текущей даты в файл и отключения запрещающего правила:

:global currentdate [/system clock get date];

/file set flash/rx.txt contents=»0″;

/file set flash/tx.txt contents=»0″;

/ip firewall filter disable numbers=1;

/file set flash/lastdate.txt contents=$currentdate;»

Запрещающее правило в firewall:

add action=reject chain=forward reject-with=icmp-host-unreachable

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

По всем остальным вопросам касающимся установки, аппаратуры и оплаты вы можете обратиться к нам, нажав на кнопку «позвоните мне», о списке и стоимости услуг вы можете прочитать здесь.

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

Это может быть Вам интересно

SSD диски – плюсы и минусы

SSD диск это SSD диск построен на базе энергонезависимой памяти, где используется технология NAND и FRAM. Технология NAND SSD позволяет при использовании схем балансирования нагрузки...

Видеорегистратор Redline CCTV перегрелся

Ремонт видеорегистратора Redline При тестировании видеорегистратора Redline CCTV специалистами компании РосАвтоатизации был выявлен недостаток регистратора и произведён ремонт видеорегистратора. У регистратора при температуре окружающей среды...

Настройка PACS DICOM. Что выбрать: ClearCanvas, MRIdb или dcm4chee?

    Сравнение PACS DICOM систем для медицины. Настройка PACS DICOM. Перед нашей компанией поставили задачу внедрения бесплатной PACS системы, включающая DICOM сервер, просмотрщик и клиентское...

Оставьте заявку и мы Вам перезвоним

Политика конфиденциальности

Данная политика конфиденциальности (далее — «Политика») распространяется на всю персональную информацию, которую получает от Пользователя во время его пребывания веб-сайт Ra38.ru или его поддомены (далее «Веб-сайт»). Также, Политика описывает, как Веб-сайт собирает, использует и раскрывает полученную персональную информацию. Пользователь, пользуясь Веб-сайтом, дает свое согласие на сбор и использование его персональной информации.

Получение персональной информации

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

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

Любая информация, автоматически считываемая в результате посещения Пользователем Веб-сайта, включая последовательность просмотра, используется без идентификации отдельных пользователей. Веб-сайт «cookies» для того, чтобы быть более удобным для Пользователя.

Использование и раскрытие персональной информации

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

Веб-сайт никому не продает и не разглашает персональную информацию о Пользователе. Веб-сайт вправе раскрыть и передать персональную информацию третьим лицам только в том случае, если это требует российское или международное законодательство и/или органы власти с соблюдением законной процедуры.

Удаление персональной информации

Пользователь, зарегистрированный на Веб-сайте, имеет возможность в любое время удалить свою персональную информацию, для этого необходимо связаться по электронной почте info@ra38.ru.

Ссылки на другие веб-сайты

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

Безопасность

Веб-сайт предпринимает соответствующие меры для обеспечения безопасности персональной информации Пользователя от потери, неправильного использования, несанкционированного доступа, разглашения или изменения.

Изменения условий Политики

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