这是由AI翻译的波兰语原文,可能包含轻微的错误。

自助托管的开发基础设施赋予了我们巨大的自由,但也伴随着责任。如果不保护公共端点,我们很快就会被互联网机器人盯上。我们的服务器最近就成为了这样一次无声“攻击”的受害者。
问题: 如何保护 Gitea 避免创建垃圾账户?有些机器人混进来并开始丢垃圾,试图创建诸如 clearance-center-sofas 或 top-wooden-pallets 等名称的存储库。
这些就是所谓的垃圾邮件注册机器人(Spam Registration Bots)。它们是不断在开放网络上扫描有着活动和开放注册选项的 Gitea(或 GitHub/GitLab)实例的脚本。它们注册假电子邮件地址,并生成几十个装满供 Google 索引的关键词的空存储库。通过这样做,它们试图建立一个免费的 SEO 反向链接网络,从而利用你域名的可信度。
直接解决方案:编辑 app.ini
因为我不能直接从浏览器面板“网站管理”(Site Admin)中点击一个魔法按钮来禁用公共注册(Gitea 的这种配置变更需要更改主机服务器深处的文件),我必须手动覆盖它的状态。
当通过 SSH 连接到我自家的 Linux 服务器(Docker 主机)时,我立即找到了相关文件:
sudo find / -name "app.ini" 2>/dev/null我在附加的 Docker 卷中找到了它(在我的例子中是 /home/gkucmierz/docker/gitea/gitea/gitea/conf/app.ini)。使用 nano 编辑器,我必须向 [service] 部分添加关键封锁:
[service]
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = trueDISABLE_REGISTRATION– 锁定公共大门。从现在起,只有管理员才可以通过面板创建帐户。REQUIRE_SIGNIN_VIEW– 防止过分好奇的外部网络抓取工具的防御选项。迫使每次访问都需登录,从而防止网络索引甚至涵盖Explore探索页面。
施加这些封印仅仅需要重新启动容器:
docker compose restart gitea机器人灭绝 (Gitea CLI)
有了在背景不再滋生带着沙发和托盘的新账户的确信后,我们可以刺入服务器,消毒并杀灭伪造的注册用户。我们没有通过网页界面进行手动点击(当涉及同时删除数十个帐户及其所绑定仓库时,这就是一场噩梦),而是利用其内置 CLI 命令,直接在 Gitea 处理器上执行了清理。
启用 Shell 环境(以我们设置中在 gitea docker 内的内部 git 用户身份运行),我发出了清空所有垃圾的命令,将 SQL 数据库、存储库和关联密钥清除进深渊:
# 进入容器 Shell(作为内部 'git' 用户)
docker exec -it -u git gitea sh
# 验证系统存在哪些用户和机器人(他们的 ID 和机器人的名称)
gitea admin user list
# 对名为 "metal-bunk-beds" 证书等的害虫进行终极、硬删除。(利用 PURGE 标志清除其全部构造产物)
sqlite3 /data/gitea/gitea.db "DELETE FROM user WHERE id >= 4; VACUUM;"
# ... 直到一切明亮如玉得益于这般闪电般快速的反应,我们保护了自己的域名和存储库免受这些互联网苍耳的侵扰。即使是像我们完全可控的优秀 Git 等工具,开箱即用后还是需要给门扉上装几把插销,如此才能确保这个开发家园真正并且纯粹地属于自己!
战场风云记录(截图)
以下是完备记载的行动全过程:识别、文件隔离以及从Gitea交互界面与服务器日志中直接开展的清理。点击缩略图以启动全屏图片长廊:





