avatar

RWO.cc

读一次写一次

  • 首页
  • 搭建手册
  • 笔记
  • 短视频
  • 关于
  • 🌈200粉丝🌈
Home 2FAuth--双因素身份验证器
文章

2FAuth--双因素身份验证器

Posted 2024-08-29 Updated 2024-08- 27
By RWO.
12~16 min read

1. 前言

这期我们来聊一聊二步验证。

双重认证

双重认证Two-factor authentication,缩写为"2FA",又称为双重验证、双因子认证、双因素认证,也有叫两步验证2-Step Verification,是多重要素验证中的一个特例,使用两种不同的元素,基于时间随机生成一串验证码用于和服务器验证的技术,来确认用户的身份。

强烈建议每个人都用二步验证!二步验证可以大大降低网络钓鱼攻击的成功率,减少盗号风险,即使我们的密码泄露,黑客没有第二个验证因素,仍然无法访问我们的账户。虽然二步验证不能提供100%的安全保障,但与单一密码相比,它显著增强了账户的安全性。

市面上有非常多的免费的两步验证工具,如 Google Authenticator、Authy,安卓用户可选择Aegis。

下面介绍一下几个常用的工具:

  • Google Authenticator:谷歌出品,支持Android与iOS客户端,支持云同步(不建议开启,有泄漏的风险)。
  • Aegis:免费开源的二次验证(2FA)应用,可导入导出,加密,自定义图标,夜间主题,选中高亮,不支持云同步,安卓专用(强烈推荐)。
  • Authy:适用于Android、iOS、Windows、Apple Watch、桌面程序等全平台,也支持账号登录,缺点是不支持导出。
  • Microsoft Authenticator:本人目前在用、Aegis作为备份。

今天我们来介绍自建2FA,把2FA账户存储在我们自己的独立数据库中,轻松备份和恢复,解决手机丢失后无法访问2FA账户的问题。

项目展示

2. 项目展示

展示一些2FAuth项目的主要界面:

主界面

3. 什么是 2FAuth?

2FAuth 是一种基于 Web 的自托管替代方案,可替代 Google Authenticator 等一次性密码 (OTP) 生成器,专为移动设备和桌面设备设计。

近年来,双因素身份验证变得非常流行,2FA 现在是不可避免且至关重要的。往常我们一般使用移动端应用,如 Microsoft Authenticator 或 Authy。

2FAuth 旨在通过干净、简洁的界面简化 2FA 的使用和管理,无论您使用什么设备。在没有智能手机的情况下在电脑前处理代码请求?没问题,只需在浏览器选项卡中打开 2FAuth 实例即可!

4. 相关地址

  • 2fa GitHub仓库:https://github.com/Bubka/2FAuth
  • 2fa 官方文档:https://docs.2fauth.app/
  • 官方demo:https://demo.2fauth.app

5. 安装 2FAuth

5.1 群晖 Docker 安装

在群晖的 Docker 注册表中搜索 2fauth,选择第一个 2fauth/2fauth,版本选择 latest。

卷配置

在 docker 文件夹中,创建一个新文件夹 2fauth,并在其中建一个子文件夹 data,记得给 data 目录新增 Everyone 的读写权限。

文件夹装载路径说明
docker/2fauth/data/2fauth存放数据库、日志文件等

端口设置

本地端口只需不冲突即可,不确定的话可以用命令查看端口占用。

环境变量

建议改 APP_KEY,这是数据库和会话的加密秘钥,使用 32 个字符的字符串。

5.2 命令行安装

如果熟悉命令行,可以用 docker cli 进行安装:

# 新建文件夹 2fauth 和 子目录
mkdir -p /volume1/docker/2fauth/data

# 进入 2fauth 目录
cd /volume1/docker/2fauth

# 修改目录所有者和权限
chown 1000:1000 data 
chmod 700 data

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name 2fauth \
   -p 8040:8000 \
   -v $(pwd)/data:/2fauth \
   -e AUTHENTICATION_GUARD=web-guard \
   2fauth/2fauth

5.3 docker-compose安装

使用 docker-compose:

version: '3'

services:
  2fauth:
    image: 2fauth/2fauth
    container_name: 2fauth
    restart: unless-stopped
    ports:
      - 8040:8000
    volumes:
      - ./data:/2fauth
    environment:
      - AUTHENTICATION_GUARD=web-guard

执行以下命令启动:

# 一键启动
docker-compose up -d

6. 运行与使用

6.1 反向代理设置

因为需要用到 https 协议,建议使用 npm + tailscale 方案做反代设置,这样安全性更高。

6.2 桌面端网页

在浏览器中输入 http://你的域名 即可访问登录界面,第一次需要先注册,按照红框中的要求设置密码。

6.3 移动端网页

用移动端浏览器打开 http://你的域名,允许摄像头使用即可开始使用。

7. 常见问题及注意点

7.1 关闭注册

可以在设置中关闭注册功能。

7.2 数据库加密

在 2FAuth 的设置 > 选项部分中勾选“保护敏感数据”启用加密功能。

警告
强烈建议在启用加密时备份 .env 文件中定义的 APP_KEY 值(或整个文件)。如果丢失此密钥,则无法生成一次性密码,且无法恢复。

8. 结尾

祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区交流探讨。有能力的同学也欢迎积极加入到 项目 中贡献自己的力量!

参考资料

  • GitHub 项目地址:Bubka/2FAuth
  • 官方文档地址:2FAuth Docs
搭建手册
工具 docker docker-compose 折腾
License:  CC BY 4.0
Share

Further Reading

Aug 29, 2024

2FAuth--双因素身份验证器

1. 前言 这期我们来聊一聊二步验证。 双重认证Two-factor authentication,缩写为"2FA",又称为双重验证、双因子认证、双因素认证,也有叫两步验证2-Step Verification,是多重要素验证中的一个特例,使用两种不同的元素,基于时间随机生成一串验证码用于和服务器验

Aug 28, 2024

Syncthing – 数据同步利器

无论办公、文件共享、团队协作还是家庭照片、视频、音乐、高清电影的存储,我们常常都有文件同步和存储的需求。但随着国内各大网盘的花式阵亡或限速,早已没什么好选择了。好吧,我已经转战使用onedriver了,但是在单位里面,没有互联网,找开源的软件试试自己搭建吧。 自建网盘云储存同步服务的软件有很多, S

Aug 27, 2024

内网搭建测速speedtest

librespeed 是一个自托管的HTML5速度测试和更多功能。易于设置,提供示例,可配置,适用于移动设备。支持PHP、Node、多个服务器等。 该项目部署简单,可以用于内网带宽测速或自建公网测速等。 librespeed 官方 GitHub 地址 adolfintel/speedtest - D

OLDER

深拷贝与浅拷贝

NEWER

Python的内置函数sorted()

Recently Updated

  • 什么是 python 的闭包
  • 使用argparse模块解析命令行参数
  • Python中的二维码生成与解析(花里胡哨)
  • Python中的二维码生成与解析(基础使用)
  • 使用platform模块获取系统信息

Trending Tags

学习 Git 工具 SQL docker-compose 每日一点 快捷键 Flink fastapi Windows

Contents

©2025 RWO.cc. Some rights reserved.

Using the Halo theme Chirpy