如今强制开启双因素验证(2FA)的网站越来越多,国内外主流方案却大不相同:国内偏好短信验证码,而海外平台更常使用 TOTP 动态密码。
保存 TOTP 需要借助验证器应用,像 Google Authenticator 或 Microsoft Authenticator 就十分常见。但由于网络限制,它们的云端同步功能并不稳定,可能导致验证数据丢失,相关案例在网上并不少见。
也有人选择密码管理器(如 Bitwarden)内置的 2FA 功能,但这实际上违背了”二次验证”的安全逻辑——密码和验证码集中存储,一旦泄露就等于完全失守。因此,独立部署 2FAuth 才是更稳妥的选择。
2FAuth 作为网页应用,数据完全托管在你的 VPS 或 NAS 上。它无需安装客户端,浏览器访问即可使用,彻底规避了同步故障风险。只需定期备份数据库文件,即使服务器意外损坏,也能快速恢复所有验证数据。
安装
建议通过 Docker Compose 进行安装,2FAuth 有非常多的环境变量,具体可以参考官方文档,下面给出最精简的 Compose
警告
1.如果 APP_URL 必须与实际访问 URL 一致,否则访问时可能会白屏
2.在运行 Compose 之前,你还需要手动创建 2fauth 目录并修改所有权和权限,否则启动时创建 SQLite 可能会失败
mkdir 2fauth chown 1000:1000 2fauth chmod 700 2fauth
services:
2fauth:
image: 2fauth/2fauth
container_name: 2fauth
volumes:
- ./2fauth:/2fauth
ports:
- 8000:8000/tcp
environment:
- APP_URL=http://192.168.1.10:8000
配置
此时,再访问 http://ip:8000
,你应该就能看到登录页面了,点击下方的 Register 进行注册
注册需要填写 Name、Email 和 Password,建议设置复杂度较高的密码
登录到 2FAuth 后,可以看到和其他验证器一样,可以通过扫描二维码添加 2FA 非常的方便
如果你的电脑没有摄像头不方便扫码,也可以选择 Use the advanced form
手动添加,只需要将平台的密钥粘贴到 Secret
即可,上方的 Service 和 Account 用于区分平台和账号,可以随意填写。
如果你已经在使用其他的身份验证器,也可以直接导入到 2FAuth 中作为备份,目前支持下面这些验证器,需要注意的是,导出时不要勾选加密
Plain text | QR code | JSON | |
---|---|---|---|
Google Authenticator | ✔ | ||
Aegis Auth | ✔ | ✔ | |
2FAS auth | ✔ | ||
FreeOTP+ | ✔ | ||
2FAuth | ✔ |
效果
最终效果如下图,Icon 会根据你填写的 Service 名字自动匹配,如果没有匹配上也可以选择手动上传
下方的小点用于指示过期时间,并且最下方还会显示下一个动态密码,避免了刚复制完密码就过期的情况,更加的方便
原创文章,作者:WanKe,如若转载,请注明出处:https://wankewu.com/resource/955.html