Мне нужно заблокировать весь битторрент-трафик с помощью iptables. Насколько я знаю, BitTorrent может адаптироваться к существующим фильтрам брандмауэра и отправлять пакеты с учетом правил. Но я не могу понять, как противостоять этому. Поэтому я попробовал некоторые правила iptables, которые нашел в Интернете, но ничего не помогает. Иногда пакеты протокола bittorrent перестают приниматься, но трафик все еще идет независимо от пакетов протокола bittorrent. Я должен упомянуть, что я не могу просто заблокировать все, кроме пары портов, которые мне нужны. Я должен блокировать только битторрент-трафик.
Итак, я попробовал это:
sudo iptables -A INPUT -m string --string "BitTorrent" --algo kmp --to 65535 -j DROP
sudo iptables -A INPUT -m string --string "Протокол BitTorrent" --algo kmp --to 65535 -j DROP
sudo iptables -A INPUT -m string --string "peer_id=" --algo kmp --to 65535 -j DROP
sudo iptables -A INPUT -m string --string ".torrent" --algo kmp --to 65535 -j DROP
sudo iptables -A INPUT -m string --string "announce.php?passkey=" --algo kmp --to 65535 -j DROP
sudo iptables -A INPUT -m string --string "torrent" --algo kmp --to 65535 -j DROP
sudo iptables -A INPUT -m string --string "объявить" --algo kmp --to 65535 -j DROP
sudo iptables -A INPUT -m string --string "info_hash" --algo kmp --to 65535 -j DROP
Также я продублировал эти правила, но изменил INPUT на OUTPUT и FORWARD. Итак, на данный момент у меня было 8 * 3 = 24 правила одновременно. После этого я добавил те же самые правила, но используя ip6tables вместо iptables для блокировки всего трафика ipv6.
После этого я попытался добавить некоторые дополнительные правила:
sudo iptables -I INPUT -p tcp -m ipp2p --bit -j DROP
sudo iptables -I INPUT -p udp -m ipp2p --bit -j DROP
Я также продублировал эти правила, используя ip6tables, OUTPUT и FORWARD.
Подводя итог, я добавил правила блокировки битторрент-трафика на основе двух методов:
- По конкретным лекалам в упаковке
- Использование модуля ipp2p
Но особо ничего не помогает. Я пробовал первый и второй подход одновременно и по отдельности. Наилучший результат, который я смог получить (при одновременном использовании всех правил) - задержка начала загрузки торрент-файла на 1 минуту, но через минуту соединение устанавливается.
Также, когда я попробовал первый подход (с шаблонами), я нашел интересный упаковка. По какой-то причине у него есть шаблон, который я только что отфильтровал. Может быть, я неправильно фильтрую по шаблону? (--algo kmp/bm flag ничего не меняет)
Может кто уже решил эту проблему?
Я использую Ubuntu 22 внутри VirtualBox. Использую qBittorrent, Wireshark.
Должен ли я предоставить какую-либо дополнительную информацию?
P.S. Я начинаю опасаться, что это просто невозможно, но все же, я хочу попробовать