你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

2024-02-18 17:48:06 15点赞 221收藏 20评论

先说几句

本篇为大家带来的是一款不错的在线两步验证器部署使用教程~

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

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

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

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

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

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

如果咱们想用现成的,推荐Google Authenticator(自用,比较麻烦的是魔法不能一直开着),另外有Aegis(朋友强烈推荐)和Authy也都不错,微软那个不建议碰~

说了这么多,接下来进入正题。

部署2FAuth

先去文件总管,创建一个文件目录

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

为防止是在非root用户下操作,先ssh进入服务器/nas后台,输入以下命令,修改目录所有者和权限

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

接下来还是老样子,通过Docker Compose进行部署,先来看看原代码,内容有点多,"#"后的内容为注释部分,想折腾的朋友可以仔细看看,不想看就直接划下去,有咱们精简后的保留部分。点我查看完整的yml文件

version: "3" services: 2fauth: image: 2fauth/2fauth container_name: 2fauth volumes: - ./2fauth:/2fauth ports: - 8000:8000/tcp environment: # 你可以更改程序名 - APP_NAME=2FAuth # 可以默认不修改,如果修改为"production",大多数控制台命令会需要额外确认 # 永远不要设置为 "testing". - APP_ENV=local # 如果您想在错误屏幕中查看调试信息,请设置为 true。 - APP_DEBUG=false # 你的邮箱地址 - SITE_OWNER=mail@example.com # 数据库和会话的加密密钥,务必保护好 # 如果创建新的密钥,所有现有数据都必须被视为丢失 # 命令`php artisan key:generate` 可生成新的32位字符串 - APP_KEY=SomeRandomStringOf32CharsExactly # 该变量必须与安装的外部地址匹配 # 否则将不会正常工作 - APP_URL=http://localhost # 生成演示demo,每小时重置程序内容,若要使用请设置为"true" - IS_DEMO_APP=false # 日志通道定义日志条目去向 # 'daily' 为默认记录模式,/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_DRIVER=file - SESSION_DRIVER=file # 邮件设置 # 参考对应供应商配置邮件设置 # 只要供应商有提供,都建议填写对应值 - MAIL_DRIVER=log - MAIL_HOST=smtp.mailtrap.io - MAIL_PORT=2525 - MAIL_FROM=changeme@example.com - 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:password@192.168.16.1: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 # 内置验证系统

最新版本的 v5.0.3 部署后会出现白屏,有两种解决方案,个人更倾向第一种

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

解决方案一:将上面代码 APP_URL 替换成 ASSET_URL

- APP_URL=https://2fa.xxx.xxx # 完整替换成下面的 - ASSET_URL=https://2fa.xxx.xxx

解决方案二:部署历史版本

image: 2fauth/2fauth # 带上具体的版本号,如下所示 image: 2fauth/2fauth:4.2.4 # 示例

历史版本点击下图位置进行查看

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

关于上文代码中,注释提到的域名填写,请参照下图,国外VPS可忽略

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

检查无误后,点击【创建】

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

完事后,web输入 NAS_IP:端口 理论上就已经能用了,不过我们设置了域名访问,这类高敏感服务建议还是搞搞https

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

接下来进行反向代理,实现https访问

反向代理

Nginx Proxy Manager

可以参考这篇文章,包含了域名解析及反向代理的详细流程。

国内VPS包括NAS,部署Nginx Proxy Manager,还是直接放弃默认80、81、443端口,直接用非标端口吧。部署篇,设置8190为我们的监听端口,最终实现外网使用则需要在路由器8190端口转发

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

咱们第一次设置的时候点申请一个新的证书,也就是绿色的那个,图中是已经申请过的

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

启用强制SSL,然后点击【save】等待即可

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

设置完毕后如下图所示

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

Lucky

可参考这篇 

监听端口不需要动,只需再加一条子规则

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

名称自定义,服务类型为反向代理,前端域名:2fa.xxx.love,后端地址:http://192.168.xxx.xxx:8189,最后点击修改即可

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

设置完后,https访问成功,能用443端口的国外vps要好看很多,不用加端口号,对比如下图示

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

使用体验

首先注册一个账户,默认为管理员

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

先别着急使用,看一下设置

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

支持创建安全密钥登入

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

比较重要的是启用数据库加密和禁用注册,作者的本意是仅供个人使用~其它功能咱们可以自行查看

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

数据库加密可以对存储在数据库中的敏感数据进行加密,以保护它们免受数据库入侵。加密作为选项提供,默认情况下处于禁用状态。强烈建议在加密处于打开状态时备份 .env 文件(或整个文件)的APP_KEY。

接下来导入QR码。除了直接扫描,2FAuth 也支持从以下格式导入:2FAuth (JSON)、Google Auth (QR code)、Aegis Auth (JSON,纯文本)、2FAS Auth (JSON)

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

这样导入导出就很方便,接下来我们转移至手机上进行操作。点击左上角三条横杠,选择【转移账号】

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

选择【导出账号】,默认选择所有,点击【下一页】,掏出另一块手机用2FAuth扫描出现的二维码

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

点击【扫描QR码】,扫描之后选择【全部导入】,导入完毕后回到主页即可,点击【管理】还可进行更多设置

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

效果如下

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

非活动也会自动注销

你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth

总结

 通过自行搭建2FAuth,可以把所有账户数据存储在我们的独立数据库中,能做到轻松备份和回复,即便是手机遗失也不需担心。用了小一个月,后续我的打算是双端搞起来,可以用得更加奔放你的账号该再加把锁了!Docker快速部署一款在线两步验证工具:2FAuth有需要的朋友可以抓紧部署一个~

本篇到这儿就结束啦,欢迎大伙评论区留言交流讨论;后续我也会定期分享NAS使用经验以及好用、好玩的Docker项目,喜欢的朋友记得点赞、收藏、关注NAS外网安全访问!公网IP、端口转发、域名解析、反向代理、https访问全流程记录!咱们下期再见!

展开 收起
20评论

  • 精彩
  • 最新
  • 微软那个很麻烦,还导不出来 [大囧]

    校验提示文案

    提交
    那个可以用微软账户同步,比谷歌的好一点

    校验提示文案

    提交
    当初用了一次直接放弃了 [无语]

    校验提示文案

    提交
    收起所有回复
  • 这是什么跟什么

    校验提示文案

    提交
    自己搭建的在线两步验证工具,随时随地可以用

    校验提示文案

    提交
    威联通不是带有两步验证吗?

    校验提示文案

    提交
    收起所有回复
  • 昨天刚发现mt账号莫名其妙多了一条qb里查不到的下载,今天就刷到这篇文章,吓得我赶紧去打开2fa

    校验提示文案

    提交
    这东西还是有必要开一开的,不过得备份好密钥之类

    校验提示文案

    提交
    收起所有回复
  • 微软那个为啥不要碰?

    校验提示文案

    提交
    很垃圾 [无语]

    校验提示文案

    提交
    收起所有回复
  • 万一验证器损毁了,如何找回?

    校验提示文案

    提交
    数据会独立存储在数据库文件,启用加密备份要定义APP_KEY(密钥)并且保存好,文中有提到;如果遗失密钥,没有任何解决办法

    校验提示文案

    提交
    收起所有回复
  • 可以将谷歌的转到这个上?不用改登录绑定?

    校验提示文案

    提交
    可以的 直接导出再导入

    校验提示文案

    提交
    收起所有回复
  • 一直用微软的

    校验提示文案

    提交
  • 本地部署挺好,有空试试,现在用的authenticatorpro

    校验提示文案

    提交
  • 微软的有什么问题,一直用,比google的好用

    校验提示文案

    提交
  • 大家还记得'洋葱'那个软件吗?

    校验提示文案

    提交
  • bitwarden自带2fa

    校验提示文案

    提交
  • 玩客云刷了casaos, 能用这个吗?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
221
扫一下,分享更方便,购买更轻松