群晖

群晖 Docker系列 —— 部署 2FAuth:在线两步验证工具

波比AI · 5月2日 · 2025年本文共3426个字 · 预计阅读12分钟6次已读

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

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

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

▲双重认证:Two-factor authentication,缩写为2FA,又叫做双重验证、两步骤验证,是一种使用两种不同的元素,基于时间随机生成一串验证码用于和服务器验证的技术,来确认用户身份的认证方法。

▼稍微久远一点,将军令和银行电子令牌就类似,冲Q币给的密保卡也勉勉强强吧;后来移动设备兴起,各家基本都推出了电子令牌,比如steam、世纪天成管家、剑三玲珑密保、QQ至尊宝(小辣鸡)等等。

▲实际证明,增加两步验证的确可有效降低网络钓鱼攻击的成功率,减少盗号风险,即使密码意外泄露,但盗号的没有两步验证,就无法访问咱们的账户。虽说二次验证不能说是百分百防御 ,但相较于单一密码,大幅增强账户的安全性是不争的事实。

▼文章还没发,群友养了几年的馒头号无情被盗,没有两步验证只能封号,这两步验证还不抓紧安排上?

一、安装

Docker Compose 如下:

完整版:

version: "3"
services:
  2fauth:
    image: 2fauth/2fauth
    container_name: 2fauth
    volumes:
      - ./2fauth:/2fauth
    ports:
      - 9001:8000/tcp
    environment:
      # 你可以更改程序名
      - APP_NAME=2FAuth
      # 可以默认不修改,如果修改为"production",大多数控制台命令会需要额外确认
      # 永远不要设置为 "testing".
      - APP_ENV=local
      # 如果您想在错误屏幕中查看调试信息,请设置为 true。
      - APP_DEBUG=false
      # 你的邮箱地址
      - [email protected]
      # 数据库和会话的加密密钥,务必保护好
      # 如果创建新的密钥,所有现有数据都必须被视为丢失
      # 命令`php artisan key:generate` 可生成新的32位字符串
      - APP_KEY=SomeRandomStringOf32CharsExactly
      # 该变量必须与安装的外部地址匹配
      # 否则将不会正常工作
      - APP_URL=http://localhost
      # 生成演示demo,每小时重置程序内容,若要使用请设置为"true"
      - IS_DEMO_APP=false
      # 日志通道定义日志条目去向
      # 'daillaoxiongb2cy' 为默认记录模式,/storage/logs/中会存在七个每日替换的日志文件
      # 还可以使用'errorlog', 'syslog','stderr', 'papertrail', 'slack' 和'stack' channel
      # 将多个通道合并为一个
      - LOG_CHANNEL=daily
      # 日志级别,从左到右严重性逐步增加
      # debug, info, notice, warning, error, critical, alert, emergency
      # 如果设置为debug,日志频率会很高文件可能会很大;反之可能永远不会记录任何内容
      - LOG_LEVEL=notice
      # 数据库配置(只支持sqlite)
      - DB_DATABASE="/srv/database/database.sqlite"
      # 如果追求性能改进,可以安装memcached
      - CACHE_DRbobyaiIVER=file
      - SESSION_DRIVER=file
      # 邮件设置
      # 参考对应供应商配置邮件设置
      # 只要供应商有提供,都建议填写对应值
      - MAIL_DRIVER=log
   laoxiongb2c   - MAIL_HOST=smtp.mailtrap.io
      - MAIL_PORT=2525
      - [email protected]
      - MAIL_USERNAME=null
      - MAIL_PASSWORD=null
      - MAIL_ENCRYPTION=null
      - MAIL_FROM_NAME=null
      - MAIL_FROM_ADDRESS=null
      # SSL 对等验证,改为"fale"表示禁用SSL证书验证
      - MAIL_VERIFY_SSL_PEER=true
      # API 设置,同一ip一分钟内最大调用次数
      # 修改为"null"可禁用
      - THROTTLE_API=60
      # 登录认证,一分钟内失误五次,本分钟内其它所有尝试会被拒绝,直至下一分钟
      # 适用于电子邮件/密码和网络身份验证登陆尝试
      - LOGIN_THROTTLE=5
      # 默认认证
      # 支持:
      #  'web-guard': Laravel内置的验证系统 (若为null则默认)
      #  'reverse-proxy-guard': 当2FAuth部署在处理认证的反向代理后面时
      # 警告⚠️
      # 使用'reverse-proxy-guard'时2FAuth只查找专用的头部信息并跳过所有其它内置的
      # 认证检查。这意味着你的代理完全负责认证过程,只要头部信息存在,2FAuth就会信任
      - AUTHENTICATION_GUARD=web-guard
      # 使用此设置来控制用户验证期间的行为方式
      #   'required': 始终验证
      #   'preferred' (默认) : 如果可能,则要求用户验证
      #   'discouraged' : 不会要求验证
      - WEBAUTHN_USER_VERIFICATION=preferred
      # 设置可信任代理
      # 支持:
      #   '*': 信任任何代理
      #   逗号分隔的 IP 列表:要信任的代理 IP 列表
      - TRUSTED_PROXIES=null
      # 传出请求的代理,例如新版本检测或徽标获取
      # 可以提供包含方案、用户名和密码的代理 URL
      # 例如, "http://username:[email protected]:10".
      - PROXY_FOR_OUTGOING_REQUESTS=null
      # 以下配置变量保留不变
      # 除非你喜欢修改并且知道自己在做什么
      - BROADCAST_DRIVER=log
      - QUEUE_DRIVER=sync
      - SESSION_LIFETIME=120
      - REDIS_HOST=127.0.0.1
      - REDIS_PASSWORD=null
      - REDIS_PORT=6379
      - PUSHER_APP_ID=
      - PUSHER_APP_KEY=
      - PUSHER_APP_SECRET=
      - PUSHER_APP_CLUSTER=mt1
      - VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
      - VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
      - MIX_ENV=local

精简版:

version: "3"
services:
  2fauth:
    image: 2fauth/2fauth
    container_name: 2fauth
    volumes:
      - "/share/Container/2FA/data:/2fauth"
    ports:
      - 8189:8000/tcp # 冒号左侧端口可修改
    environment:
      - APP_NAME=2FAuth
      - APP_KEY=SomeRandomStringOf32CharsExactly # 建议生成一个并保存好
      - APP_URL=https://2fa.xxx.xxx:监听端口号 # 填写咱们的域名,国内服务器基本不能用443端口,需要额外加上监听端口号 
      - IS_DEMO_APP=false # 关闭demo演示  
      - LOG_CHANNEL=daily #日志
      - LOG_LEVEL=notice #日志等级
      - DB_DATABASE="/srv/database/database.sqlite" #数据库
      - CACHE_DRIVER=file #性能改进,下同
      - SESSION_DRIVER=file
      - AUTHENTICATION_GUARD=web-guard # 内置验证系统

二、配置

(一)反向代理

打开:群晖 -> 控制面板 -> 登录门户 -> 高级

群晖 Docker系列 —— 部署 2FAuth:在线两步验证工具

(二)端口转发

打开:Lucky -> 端口转发 -> 添加转发规则

群晖 Docker系列 —— 部署 2FAuth:在线两步验证工具

(三)使用

网址:https://域名:端口

群晖 Docker系列 —— 部署 2FAuth:在线两步验证工具

第一次访问需要注册

群晖 Docker系列 —— 部署 2FAuth:在线两步验证工具

[Total: 0 Average: 0]
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!