前情提要
个人是 P2P 爱好者,平常分享大文件(如 MC 旧地图归档)都用 BT 分发。因此也有长期 NAS 开机做种的习惯。
自上个月早些时候开始,有一些奇妙 Peer ,顶着 dt/torrent,或者 github.com/anacrolix/torrent (devel) (anacrolix/torrent unknown) 的 UA 开始无限制的拉取文件,单个文件的分享率被拉到 500.0 +,消耗了大量带宽和流量,并似乎因此招来了联通师傅上门检查 PCDN 。

以 github.com/anacrolix/torrent (devel) (anacrolix/torrent unknown) 为关键字检索,在 https://github.com/anacrolix/torrent/discussions/891 上有大量类似受害者参与讨论。
小工具的目的
这似乎是首次对 BT 社区的攻击。有第一次,就一定不会是最后一次。
Github 上的脚本和工具都是针对迅雷等吸血 Peer 进行屏蔽,但从未考虑过诸如此类纯恶意的客户端。
在 PBH 诞生前,使用 BT 客户端内建的 IP 屏蔽名单是唯一的对抗手段。
因此,使用可持续的手段与攻击作斗争是必要的投入。在一个月的敲敲打打中,功能终于完善的差不多了,也终于可以发到 V2 上一起分享一下了。
你这个小工具能干什么
- 它能够像你熟悉的那些脚本一样,对吸血雷或者磁力播放器进行屏蔽,配置文件在功能和复杂性取得了折中,相信 V2 的大家都能够一看就会,轻松上手轻松编写规则
- 它能够增强 BT 客户端自带的 IP 屏蔽功能,例如:可以支持 CIDR 表示,同时支持 IPV4 和 IPV6 ;并能够屏蔽来自特定端口的连接
- 善于发现异常客户端,能够检测汇报假下载进度的行为,并能够拦截像本次攻击一样无限下载文件的恶意行为;在客户端出现进度异常或者下载了远远超过文件原本大小数据时阻断它们
- 除了被动检查,也可以主动出击;能够对连接到下载器的 Peer 主动发起 TCP 端口测通、ICMP 测试和 HTTP/HTTPS 请求。如果攻击者采用批量部署,那么可以使用此功能检测攻击者的特征服务并屏蔽它
如何部署
可以参见 Ghost-chu/PeerBanHelper 仓库的 README ,通过 Docker 快速部署或者手动设置服务。
结尾
首次在 V2 上分享自己的小工具,如果能帮到忙那就太好了,以及希望没有发错节点。
最后,PBH 没有内建的更新检查系统,所以也许需要偶尔回来看看有没有新的更新。