最近,SPAM 狂潮来袭,一波又一波的 SPAM 的到来,让实例管理人员疲于奔命。
面对 SPAM 报告,我们需要封禁 SPAM 帐户,Limite 被 SPAM 入侵的实例以防进一步的骚扰。
但这几个步骤通过 Mastodon Web 自带的管理界面进行非常麻烦,需要打开好几个网页,点击好多次才能完成。 如果你还要发布管理操作报告,那就更麻烦了。
Mastodon Web 自带的管理工具,在这种大规模 SPAM 入侵时,显得有一些力不从心。
人肉管理 vs 脚本SPAM,人肉管理能不能胜利尚不好说,但累死是一定的。现代问题现代方法解决,管理也需要脚本辅助。
本文将介绍,如何使用脚本半自动化处理的黑猫SPAM。
本文提到的所有文件可至 anti-blackcat-spam 目录查看。
0. 所需条件
Mastodon PostgreSQL 数据库访问权限
Mastodon 实例 Admin 权限
python 运行环境
1. 注册应用
Mastodon Web 界面,打开 首选项(Preferences) -> 开发(Development) 。
创建如下 Scopes 的应用:
2. 查找疑似 SPAM 帐户
连接上 Mastodon PostgreSQL ,运行如下 SQL 找出疑似 SPAM 帐户,并将结果保存为 CSV 文件。
-- 查找所有位于未进行管理操作实例的疑似 SPAM 帐户 select id, username, domain, display_name, avatar_file_name from accounts where username ~ '^[0-9a-z]{10}$' and (username = display_name or display_name = '') and created_at > '2024-02-15 00:00:00' and suspended_at is null and avatar_file_name is null and "domain" is not null and "domain" not in ( select db."domain" from domain_blocks db );
3. 运行管理脚本
3.1 安装依赖
3.2 修改管理脚本
3.2.1 修改 DOMAIN
根据实际情况,将 DOMAIN
设置为你需要管理的实例域名。
3.2.2 修改 ACCESS_TOKEN
将 1. 注册应用 中所获取的 access token 填入 ACCESS_TOKEN
。
3.2.3 修改 ACCOUTS_CSV_FILE
将 2. 查找疑似 SPAM 帐户 中所得到的 CSV 文件放到管理脚本同目录,并将 ACCOUTS_CSV_FILE
修改为相应 CSV 文件的文件名。
3.3 运行脚本
管理脚本将输出疑似 SPAM 帐户帐户名以及最新的一条嘟文以供确认, 如确认为 SPAM 帐户,管理脚本将为该 SPAM 帐户创建 Report 并转发至原站, 然后封禁所有 SPAM 帐户, Limite 所有 SPAM 帐户所在实例。
22时更新
之前的博文发出之后,在实际使用中发现了一些问题,于是这个脚本便有了 v2 与 v3 版本。
v2 版本变化
CSV 文件名硬编码在脚本中,每次运行都要修改脚本,实在是太麻烦了。
因此便有了 v2 版,通过命令行参数读取 CSV 文件名。
v3 版本变化
虽然有了管理脚本辅助,但获取CSV文件,更新管理通告都还是要打开其它程序,还是有一些不方便。
于是加上了 psycopg2
让脚本直接从数据库中获取数据,同时增加了更新管理通告的功能。
真正实现了一条龙服务,方便到家,脚本包干。