Эти правила кажутся мне самыми эффективными из всех, что я нашёл в разных постах. Я не блокирую торренты, а применяю жёсткое ограничение скорости на 30 минут с помощью очередей. Layer 7 используется для идентификации торрент-трафика.
/ip firewall layer7-protocol
add name=L7-Torrent regexp="^(\\x13bittorrent protocol|azver\\x01\$|get /scrap\\?info_hash=get /announce\\?info_hash=|get /client/bitcomet/|GET /data\\?fid=)|d1:ad2:id20:|\\x08'7P\\)[RP]" comment="TOR Layer7"
Фильтры, которые добавляют нарушителей в список адресов с таймаутом 30 минут:
/ip firewall filter
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=30m chain=forward comment="TOR Abusers" layer7-protocol=L7-Torrent src-address=192.168.2.0/24
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=30m chain=forward comment="TOR Abusers" p2p=all-p2p src-address=192.168.2.0/24
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=30m chain=forward comment="TOR Abusers" p2p=bit-torrent src-address=192.168.2.0/24
Правила mangle для маркировки соединений:
/ip firewall mangle
add action=mark-packet chain=forward comment="Torrent Traffic" new-packet-mark=torrent_up passthrough=no src-address-list=Torrent-Add
add action=mark-packet chain=forward comment="Torrent Traffic" dst-address-list=Torrent-Add new-packet-mark=torrent_down passthrough=no
Тип очереди, который ограничивает скорость закачки и отдачи до 1 кбит/с:
/queue type
add kind=pcq name=QType_TOR_1k_down pcq-burst-time=5s pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-limit=1KiB pcq-rate=1k pcq-src-address6-mask=64 pcq-total-limit=1KiB
add kind=pcq name=QType_TOR_1k_up pcq-burst-time=5s pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-limit=1KiB pcq-rate=1k pcq-src-address6-mask=64 pcq-total-limit=1KiB
Дерево очередей для применения ограничений скорости к маркированным соединениям:
/queue tree
add name=QTree_Torrent_1k_up packet-mark=torrent_up parent=global priority=2 queue=QType_TOR_1k_up
add name=QTree_Torrent_1k_down packet-mark=torrent_down parent=global priority=2 queue=QType_TOR_1k_down
Это не мои правила, как я уже говорил — это смесь правил, которые я собрал с разных уголков интернета. И, пока что, они работают. Если кто-то может предложить лучший метод или способ — буду только рад услышать.
/ip firewall layer7-protocol
add name=L7-Torrent regexp="^(\\x13bittorrent protocol|azver\\x01\$|get /scrap\\?info_hash=get /announce\\?info_hash=|get /client/bitcomet/|GET /data\\?fid=)|d1:ad2:id20:|\\x08'7P\\)[RP]" comment="TOR Layer7"
Фильтры, которые добавляют нарушителей в список адресов с таймаутом 30 минут:
/ip firewall filter
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=30m chain=forward comment="TOR Abusers" layer7-protocol=L7-Torrent src-address=192.168.2.0/24
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=30m chain=forward comment="TOR Abusers" p2p=all-p2p src-address=192.168.2.0/24
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=30m chain=forward comment="TOR Abusers" p2p=bit-torrent src-address=192.168.2.0/24
Правила mangle для маркировки соединений:
/ip firewall mangle
add action=mark-packet chain=forward comment="Torrent Traffic" new-packet-mark=torrent_up passthrough=no src-address-list=Torrent-Add
add action=mark-packet chain=forward comment="Torrent Traffic" dst-address-list=Torrent-Add new-packet-mark=torrent_down passthrough=no
Тип очереди, который ограничивает скорость закачки и отдачи до 1 кбит/с:
/queue type
add kind=pcq name=QType_TOR_1k_down pcq-burst-time=5s pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-limit=1KiB pcq-rate=1k pcq-src-address6-mask=64 pcq-total-limit=1KiB
add kind=pcq name=QType_TOR_1k_up pcq-burst-time=5s pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-limit=1KiB pcq-rate=1k pcq-src-address6-mask=64 pcq-total-limit=1KiB
Дерево очередей для применения ограничений скорости к маркированным соединениям:
/queue tree
add name=QTree_Torrent_1k_up packet-mark=torrent_up parent=global priority=2 queue=QType_TOR_1k_up
add name=QTree_Torrent_1k_down packet-mark=torrent_down parent=global priority=2 queue=QType_TOR_1k_down
Это не мои правила, как я уже говорил — это смесь правил, которые я собрал с разных уголков интернета. И, пока что, они работают. Если кто-то может предложить лучший метод или способ — буду только рад услышать.