1. 问题背景与场景还原
上周五深夜处理服务器告警时,我需要登录南墙WAF控制台调整防护策略,却突然发现忘记了管理员密码。更糟糕的是,之前绑定的FreeOTP双因素认证应用也被我误删了。这意味着我既无法通过常规密码登录,也失去了二次验证的能力。作为企业级Web应用防火墙的核心管理系统,这种情况直接导致安全策略无法及时更新,可能影响业务系统的正常防护。
南墙WAF作为国产化安全产品中的佼佼者,其双因素认证机制原本是安全性的重要保障。FreeOTP作为开源的OTP生成器,与各类安全设备兼容性良好。但当这两个安全措施同时失效时,反而成了运维人员的"噩梦"。下面我将详细记录整个恢复过程的技术细节和避坑要点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 密码重置的官方途径验证
2.1 常规密码找回流程分析
首先尝试通过官方提供的密码找回功能:
- 访问登录页面的"忘记密码"链接
- 输入注册邮箱和验证码后,系统提示"重置链接已发送"
- 检查邮箱发现未收到任何邮件(包括垃圾箱)
- 联系邮件服务商确认无拦截记录
关键发现:南墙WAF的邮件服务依赖于内置的Postfix服务,需检查SMTP服务状态。通过服务器命令行执行
systemctl status postfix发现服务处于inactive状态。
2.2 服务端密码重置方案
当邮件服务不可用时,可通过数据库直接修改密码哈希值:
- 通过SSH登录WAF主机(需服务器物理访问权限)
- 进入PostgreSQL数据库:
sudo -u postgres psql wafdb - 执行密码更新SQL:
sql复制UPDATE auth_user SET password='pbkdf2_sha256$260000$HASH$...' WHERE username='admin';
- 密码哈希值可通过Django的
make_password()函数生成
操作风险:直接修改数据库可能违反安全合规要求,建议操作前备份数据库并记录审计日志。
3. FreeOTP恢复的工程技术细节
3.1 OTP机制原理剖析
FreeOTP基于RFC 6238的TOTP标准,其核心参数包括:
- 密钥种子(Base32编码)
- 时间步长(默认30秒)
- 哈希算法(通常为SHA
