Форум по программам и оборудованию > >

Mikrotik. Как заблокировать torrent и прочих качальщиков

26.05.2019 16:59


07.01.2019 18:31
OlegON
 
Встала задача ограничения юзерам скачиваемого и особенно - блокировка торрентов. Задача нетривиальная и описанные решения уже раскиданы по всему интернету. К сожалению, они сводятся к работе с уже существующим списком серверов и не дают скачивать сам файл торрентов. Это очень слабое решение, как минимум. Я решил пойти другим путем. Во-первых, при аннонсе трекеру передается параметр peer_id, по которому я сам аннонс и решил убивать, благо, что большинство трекеров работают по HTTP, соответственно, список адресов users вы сделаете сами. Трекеры баню на неделю.
Код:
/ip firewall layer7-protocol
add name=torrent regexp="^.*peer_id.*\$"
/ip firewall filter
add action=add-dst-to-address-list address-list=garbage address-list-timeout=1w chain=forward layer7-protocol=torrent out-interface=wan protocol=tcp src-address-list=users
Основной поток торрентов идет через UDP, его мы и порежем, создав queue шириной в 32Кб. Желающие могут исключить 53 порт, чтобы с ограничением не ложился DNS, мне это не требуется
Код:
/ip firewall mangle
add action=mark-packet chain=forward dst-address-list=users in-interface=wan new-packet-mark=users-udp passthrough=yes protocol=udp
/queue simple
add max-limit=32k/32k name=users-udp packet-marks=users-udp
теперь, собственно, исходим из того, что нормальный юзер за одно соединение больше 5Мб не вытаскивает. Надо понимать, что разглядывающие картинки и видео на это ограничение тоже налетят, но это входило в мои задачи, обратите внимание, что HTTPS-сайты все работают через несколько соединений и не всегда их сразу рвут, поэтому если ожесточенно кликать по ссылкам подряд на тяжелом HTTPS-сайте, он тоже будет забанен. Поэтому надолго не баню. Кстати, всякие облачные хранилища, куда лезут смартфоны, тоже могут быть забанены.
Код:
/ip firewall filter
add action=add-src-to-address-list address-list=garbage address-list-timeout=1h chain=forward connection-bytes=5000000-0 dst-address-list=users in-interface=wan protocol=tcp
ну и, наконец, вы обратили внимание, что я не просто дропал пакеты (а это очень даже неплохо роняет, например, трекеры), а добавлял адрес в список garbage, целью. этого была блокировка различных последующих попыток обхода ограничений. Дропаю в обе стороны.
Код:
/ip firewall filter
add action=drop chain=forward  dst-address-list=garbage out-interface=wan src-address-list=users
add action=drop chain=forward dst-address-list=users in-interface=wan src-address-list=garbage
Надеюсь, сообразите, что цепочки на самом деле должны идти в обратном порядке, т.е. сначала блокировка, потом уже добавляющие в список правила. Причем, layer7 с регекспом достаточно тяжел, его в хвост надо поставить...

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.