PassNAT LogoPassNAT

自托管2FA管理器2FAuth详细部署指南,NAS Docker快速启动安全认证

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

2FAuth 是一个自托管的网页版双因素认证(2FA)管理器,是 Google Authenticator 等 OTP 生成器的优秀替代方案。它采用现代化的网页设计,支持桌面和移动设备,让你能够在任何设备上轻松管理和生成安全码。

这个项目的核心价值在于:你可以将所有的 2FA 账户数据存储在自己的数据库中,避免了手机丢失导致所有 2FA 账户丧失的风险。相比于在多个设备间安装认证器应用,2FAuth 提供了一个统一的管理平台,界面简洁优雅,不会像传统认证器那样同时显示所有账户并伴随压力山大的倒计时。无论你是在办公室还是在家中,都可以快速获取所需的安全码,大大提升了工作效率。

项目地址: 点我跳转

部署安装

如果你需要在外网也能访问 2FAuth,建议配置内网穿透服务。可以前往 帕斯内网穿透

注册账号,这样就能随时随地安全地访问你的 2FA 管理器。详细的操作步骤可以 点我查看

帕斯内网穿透全平台快速入门指南。

Docker 单命令快速启动

2FAuth 提供了最简便的 Docker 部署方式,只需一条命令即可启动:

打开你的 NAS 设备或任何支持 Docker 的系统,在本地镜像中添加镜像。

镜像地址填写:`2fauth/2fauth:latest`

等待镜像下载完成后,点击启动按钮启动容器。

端口映射配置:

将容器内的 `8000` 端口映射到你想要的宿主机端口(比如 `8000:8000`)。如果提示端口被占用,你可以修改前面的数字,比如改为 `8001:8000`,这样就能通过 `http://你的IP:8001` 访问 2FAuth。重点是要保证容器内的端口始终为 `8000`

存储配置:

创建一个本地文件夹用于存储 2FAuth 的数据,比如 `/data/2fauth`,然后将其映射到容器内的 `/2fauth` 目录。这样可以确保你的 2FA 数据在容器重启后不会丢失。

环境变量设置:

必须设置的环境变量: APP_KEY:加密密钥,必须是 32 个字符的随机字符串。这个值非常重要,请妥善保管,如果丢失将无法解密已有数据。 SITE_OWNER:你的邮箱地址,用于接收系统通知。

建议设置的环境变量: APP_NAME:应用名称,默认为 `2FAuth` APP_TIMEZONE:时区设置,默认为 `UTC` APP_URL:应用的外部访问地址,用于 WebAuthn 功能正常工作,比如 `http://你的IP:8000` APP_DEBUG:调试模式,生产环境建议设为 `false`

其他环境变量(可选): APP_ENV:运行环境,本地测试可设为 `local`,生产环境设为 `production` IS_DEMO_APP:演示模式,默认 `false` LOG_CHANNEL:日志存储方式,默认 `daily` LOG_LEVEL:日志级别,默认 `notice` DB_DATABASE:数据库路径,默认 `/srv/database/database.sqlite`

设置完成后点击启动,容器将自动创建并运行。

访问应用:

创建成功后,打开浏览器访问 `http://你的IP:8000`,你将看到 2FAuth 的登录界面。首次访问时需要创建一个用户账户,然后就可以开始添加你的 2FA 账户了。

Docker Compose 完整配置

如果你想使用 Docker Compose 进行更灵活的配置管理,可以参考以下配置文件:

复制下列的配置文件,保存为 `docker-compose.yml`

1version: "3"
2services:
3 2fauth:
4 image: 2fauth/2fauth
5 container_name: 2fauth
6 volumes:
7 - ./2fauth:/2fauth
8 ports:
9 - 8000:8000/tcp
10 environment:
11 - APP_NAME=2FAuth
12 - APP_ENV=local
13 - APP_TIMEZONE=UTC
14 - APP_DEBUG=false
15 - SITE_OWNER=mail@example.com
16 - APP_KEY=SomeRandomStringOf32CharsExactly
17 - APP_URL=http://localhost:8000
18 - IS_DEMO_APP=false
19 - LOG_CHANNEL=daily
20 - LOG_LEVEL=notice
21 - DB_DATABASE=/srv/database/database.sqlite
22 - CACHE_DRIVER=file
23 - SESSION_DRIVER=file
24 - MAIL_MAILER=log
25 - THROTTLE_API=60
26 - LOGIN_THROTTLE=5
27 - AUTHENTICATION_GUARD=web-guard

在 NAS 或服务器上创建一个文件夹,将上述配置保存为 `docker-compose.yml`,然后在该目录下执行:

1docker-compose up -d

容器将在后台启动运行。

配置说明:

SITE_OWNER:请修改为你的邮箱地址 APP_KEY:这是非常重要的加密密钥,强烈建议修改为一个安全的 32 字符随机字符串 APP_URL:修改为你实际的访问地址,比如 `http://192.168.1.100:8000` 或你的域名 其他参数保持默认即可

如果 8000 端口被占用,可以修改 `ports` 中的第一个数字,比如改为 `8001:8000`

启动成功:

执行命令后,容器将自动启动。打开浏览器访问 `http://你的IP:8000`,即可看到 2FAuth 的界面。

功能特性

部署完成后,你就可以开始使用 2FAuth 的强大功能了:

账户管理:通过扫描二维码快速添加 2FA 账户,也支持手动输入密钥 分组整理:使用分组功能对你的 2FA 账户进行分类管理 多种算法支持:支持 TOTP、HOTP 和 Steam Guard 等多种安全码生成方式 数据加密:敏感数据可选择加密存储,保护你的隐私 安全密钥:支持 Yubikey 等硬件安全密钥登录 自动登出:支持设置不活动自动登出时间,提升安全性 数据导入:支持从 Google Authenticator、Aegis Auth 等应用导入账户数据

总结

2FAuth 是一个功能完整、安全可靠的自托管 2FA 管理解决方案。通过 Docker 的快速部署,你可以在几分钟内搭建属于自己的认证器管理系统,从此告别手机丢失导致的 2FA 账户丧失风险。无论你是技术爱好者还是隐私保护倡导者,2FAuth 都是一个值得尝试的项目。

本篇教程结束。