利用 iptables 或 UFW 禁止 BT 流量

Contents
  1. 1. 准备
  2. 2. iptables
    1. 2.1. 安装
    2. 2.2. 添加规则
    3. 2.3. 长效化规则
  3. 3. UFW
    1. 3.1. 安装
    2. 3.2. 添加规则
    3. 3.3. 启动规则
  4. 4. References

本文最后更新于 2020 年 6 月 2 日


本文以 Debian 10 为例,介绍如何禁止 BT 流量转发,这里以 iptables 和 UFW 两种方式为例,请根据情况任选其中一种。本文同样适用于 Ubuntu。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行防火墙规则的操作,并默认已按初始化配置文章对服务器进行了配置。

注意: 本文采用的方法,和网络上大部分网友们讨论的方法,均不能完全保证禁止有效,尤其是对于加密流量来说,欲了解原因请查看此处


准备

安装 xtables-addons-common

1
sudo apt update && sudo apt install xtables-addons-common -y

查看是否安装成功:

1
iptables -m ipp2p --help

以下两种方式任选一种即可。


iptables

安装

1
sudo apt update && sudo apt install iptables -y

添加规则

如果仅需要禁止 BT 流量:

1
sudo iptables -A FORWARD -m ipp2p --bit -j DROP

如果需要禁止 ipp2p 支持的所有 P2P 流量:

1
sudo iptables -A FORWARD -m ipp2p --edk --kazaa --gnu --bit --apple --dc --soul --winmx --ares -j DROP

接下来设置 ip6tables

1
sudo ip6tables -A FORWARD -m string --algo bm --string "BitTorrent protocol" -j DROP

长效化规则

1
2
3
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo netfilter-persistent start

至此,已使用 iptables 完成对 BT 流量的封锁。


UFW

安装

1
sudo apt update && sudo apt install ufw -y

添加规则

1
sudo vim /etc/ufw/after.rules

如果仅需要禁止 BT 流量,在 # don't delete the 'COMMIT' line 的注释前添加:

/etc/ufw/after.rules
1
2
# use ipp2p to block some traffic
-A ufw-after-forward -m ipp2p --bit -j DROP

如果需要禁止 ipp2p 支持的所有 P2P 流量,在 # don't delete the 'COMMIT' line 的注释前添加::

/etc/ufw/after.rules
1
2
# use ipp2p to block some traffic
-A ufw-after-forward -m ipp2p --edk --kazaa --gnu --bit --apple --dc --soul --winmx --ares -j DROP

接下来设置 after6.rules

1
sudo vim /etc/ufw/after6.rules

# don't delete the 'COMMIT' line 的注释前添加:

/etc/ufw/after6.rules
1
2
# ban bt
-A ufw6-after-forward -m string --algo bm --string "BitTorrent protocol" -j DROP

启动规则

1
sudo ufw reload

查看是否生效:

1
2
sudo iptables -L -n -v
sudo ip6tables -L -n -v

至此,已使用 UFW 完成对 BT 流量的封锁。


欲了解更多信息,请参见本文末尾的参考来源。


References

Filtering P2P network traffic with ipp2p

laitianli / ipp2p-0.8.2

Shorewall and ipp2p

How Do I Block P2P Traffic

Using Linux iptables, How to block torrents or any P2P protocols?

How to block torrent traffic on ubuntu server?

Securing Public Shadowsocks Server

v2ray-core/common/protocol/bittorrent/bittorrent.go

ToutyRater / v2ray-guide Issue #76

How to Block BitTorrent on Linux

What is torrent encryption and does it make my traffic anonymous?

DMCA Notices: How Hollywood’s Lawyers Find You

How Can My ISP Tell I’m Using BitTorrent?

Comcast, DMCA, Torrents, Network Monitoring…how?

BitTorrent protocol primer, part 3: Detecting

BitTorrent protocol encryption

Detecting BitTorrent Traffic

How to save rules of the iptables?

Do I need to restore iptable rules everytime on boot?

How can set these iptables rules to run at startup

Iptables reload/restart on Ubuntu 18.04

Debian ‘ignores’ /etc/network/if-pre-up.d/iptables

netfilter-persistent(8)

Can I limit connections per second for certain UserAgents using UFW?

Ubuntu: How to add an iptables rule that UFW can’t create

UncomplicatedFirewall

填坑系列 - Iptables

iptables 入门:规则及路由基础

Mastodon