[!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
# 日志通道定义日志条目去向
# 'daillaoxiongb2c y' 为默认记录模式,/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_DRbobyai IVER=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 # 内置验证系统
二、配置
(一)反向代理
打开:群晖 -> 控制面板 -> 登录门户 -> 高级
(二)端口转发
打开:Lucky -> 端口转发 -> 添加转发规则
(三)使用
网址:https://域名:端口
第一次访问需要注册
必须 注册 为本站用户, 登录 后才可以发表评论!