Форум OlegON > Компьютеры и Программное обеспечение > Сеть > Сетевое оборудование > MikroTik

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

29.03.2024 5:06


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 с регекспом достаточно тяжел, его в хвост надо поставить...
19.09.2020 17:58
OlegON
 
Код:
/ip firewall layer7-protocol
add name=torrent regexp="^(\\x13bittorrent protocol|peer_id|azver\\x01\$|get /scrape\\\?info_hash=get /announce\\\?info_hash=|get /client/bitcomet/|GET /data\\\?fid=)|d1:ad2:id20:|\\x08'7P\\)[RP]"
вот, получше
21.10.2020 09:18
alex_num
 
Полезно, поробую, еще бы блокировочку VPN.
21.10.2020 12:12
OlegON
 
VPN гигантское количество, многие пойдут по лимиту на UDP, другие пойдут по ограничению в 5Мб на сессию.
Можно еще добавить в queue пакеты по всем портам, кроме 80 и 443, но особо стараться не надо, поскольку queue достаточно ресурсоемкая штука.
Часовой пояс GMT +3, время: 05:06.

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