收起左侧

**飞牛****NAS****因防火墙配置导致二次验证无法通过的完整修复指南**

0
回复
29
查看
[ 复制链接 ]

1

主题

0

回帖

0

牛值

江湖小虾

飞牛NAS因防火墙配置导致二次验证无法通过的完整修复指南

1 问题背景与现象

1.1 典型场景

用户在飞牛NAS上进行以下操作后,遭遇远程/本地登录失败:

· 对管理员账户启用了双重验证(二次验证),并正常使用一段时间;

· 将飞牛系统从1.1.18版本升级到1.1.20版本;

· 修改了防火墙出站规则:将默认的“出站允许”改为“出站拒绝”,仅保留了默认的两条放行策略。

【注:为何记录这次做的升级,因为修改防火墙出站规则,拒绝除飞牛NAS默认两条规则之外,其他不符合的都拒绝,这个操作我之前多次做过,我发现当我把这里设置为拒绝时,飞牛的应用中心是打不开的,但app登录,访问nas文件这些动作都是正常的,但这次刚好做了版本升级,然后再次调整拒绝了不符合默认规则的所有出站,然后出现了二次验证提示验证码不正确,无法登录的情况

1.2 故障现象

· 移动端远程登录:提示“证书过期”,点击继续后,二次验证码始终提示“验证码不正确”。

· 本地电脑浏览器登录:一开始可能成功,但重启NAS后,同样无法通过二次验证。

· 收不到紧急验证码邮件:点击“发送验证码”无反应,邮箱始终收不到邮件。

· 控制台登录(显示器直连):输入账号密码后,等待几秒会自动返回登录界面。注意:这可能是飞牛NAS的正常机制,不让用户账号通过命令行控制台登录,并非故障。

1.3 根本原因

· 防火墙出站规则被设置为**“拒绝”**,导致NAS无法连接外部网络,包括:

o 无法连接邮件服务器发送验证码邮件;

o 可能影响了与二次验证服务相关的网络通信(如时间同步、证书验证等),导致验证码验证失败。

· 二次验证本身并未损坏,只是因网络阻塞无法正常完成验证流程。

2 解决思路

通过**进入系统救援模式(单用户模式)**直接修改系统文件,禁用防火墙服务(移出开机启动),恢复网络通信。重启后即可正常通过二次验证登录。无需删除二次验证记录。

3 准备工作

· 物理机:需要连接显示器和键盘。

· 虚拟机(如VMware ESXi):通过vSphere Client打开控制台。

· 确保有系统管理员权限(知道NAS的登录密码)。

4 详细修复步骤

4.1 进入GRUB菜单并编辑启动项

对于物理机或VMware Workstation

  1. 重启NAS,在启动过程中持续点按Shift,直到出现黑底白字的GRUB菜单。
  2. 使用上下键选中默认启动项(通常是第一个),按e键进入编辑模式。

对于VMware ESXi(启动极快):

· 方法一:在重启时疯狂点按Shift,多试几次。

· 方法二:通过vSphere Client设置强制进入BIOS,然后从BIOS进入EFI Shell,再尝试正常启动并按Shift(较复杂,推荐直接疯狂点按)。

4.2 修改内核启动参数进入单用户模式

在编辑界面,找到以 linux 开头的一行(通常很长),将光标移动至行末,空一格后添加:

text

init=/bin/bash

然后按 Ctrl+X 或 F10 启动。

系统会跳过所有服务,直接进入一个 root shell(提示符为 root@(none):/#)。

4.3 重新挂载根文件系统为可读写

默认情况下根分区是只读挂载的,执行:

bash

mount -o remount,rw /

4.4 禁用防火墙服务(移出开机启动)

飞牛NAS的防火墙服务通常由 security_service.service 管理。执行以下命令将其开机启动链接移走(相当于禁用自启):

bash

# 查看服务链接是否存在

ls -l /etc/systemd/system/multi-user.target.wants/security_service.service

# 如果存在,将其重命名(备份)

mv /etc/systemd/system/multi-user.target.wants/security_service.service /etc/systemd/system/multi-user.target.wants/security_service.service.bak

如果服务名不同,可使用 find 搜索:

bash

find /etc/systemd/system -name "*security*" -o -name "*firewall*" 2>/dev/null

4.5 重启系统

由于当前环境不是由systemd作为init进程,reboot命令可能无效。可选择以下任一方式重启:

· 方法一: 通过虚拟机管理程序强制重启(如vSphere控制台的“重启”按钮)。

· 方法二: 使用Magic SysRq触发重启(依次输入):

bash

echo 1 > /proc/sys/kernel/sysrq

echo b > /proc/sysrq-trigger

· 方法三: 尝试 reboot -f(可能仍会失败,我试了成功,不妨一试)。

重启后,NAS将正常引导,防火墙服务已被禁用,网络恢复,应能顺利通过二次验证登录。

5 登录后的恢复与正确配置

5.1 恢复防火墙服务(可选)

如果需要重新启用防火墙,请按以下步骤操作:

5.1.1 恢复服务开机启动

bash

# 将备份文件移回原位

mv /etc/systemd/system/multi-user.target.wants/security_service.service.bak /etc/systemd/system/multi-user.target.wants/security_service.service

# 启动防火墙服务

systemctl start security_service.service

# 设置开机自启

systemctl enable security_service.service

5.1.2 配置合理的防火墙规则(极其重要)

· 入站规则(Inbound:默认拒绝,但必须开放必要的端口(如Web管理端口5666、SSH端口22、文件共享端口等)。可限制来源IP为内网段以提高安全性。

· 出站规则(Outbound设置为**“默认允许”**(关键点)。确保NAS能正常访问外网,以便发送邮件、同步时间、更新系统等,避免再次锁死。

· 具体操作路径:系统设置 安全 防火墙,在Web界面中添加相应规则并保存。

5.2 验证二次验证与邮箱功能

· 尝试再次通过身份验证器App获取验证码并登录,确保一切正常。

· 测试紧急邮箱:在个人设置中点击“发送验证码”,确认能收到邮件。若收不到,请检查邮箱授权码配置(需使用邮箱授权码而非密码),并确保防火墙出站规则允许SMTP等端口。

5.3 验证网络功能

· 在NAS上执行 ping baidu.com 或更新软件源,确认网络连通。

6 故障预防建议

· 防火墙出站规则务保持**“默认允许”**,除非你对网络通信有非常清晰的理解。出站限制极易导致系统服务异常。

· 配置紧急邮箱时,务必使用正确的授权码,并测试发送功能,确保这是可靠的备用通道。

· 重大变更前备份系统(特别是数据库目录/var/lib/postgresql和防火墙配置文件)。

· 若需二次验证,请确保系统时间准确(可开启NTP同步),因为验证码基于时间。

7 常见问题解答

Q**:为什么只禁用防火墙服务就恢复了,而不需要删除二次验证记录?**
A:因为二次验证本身没有损坏,只是防火墙阻塞了验证所需的网络通信(如时间同步、证书**销列表检查等)。恢复网络后验证码即能正常通过。

Q**:如果禁用防火墙后依然无法通过二次验证怎么办?**
A:可能是系统时间严重错误,导致验证码不匹配。可在单用户模式下执行 date 查看时间,如果偏差过大,可以手动修正(如 date -s "2026-02-27 12:00:00")后再重启。如仍有问题,可考虑删除二次验证记录(步骤见下文备选方案)。

备选方案:删除二次验证记录(仅当二次验证本身损坏时使用)

如果确定二次验证无法恢复,可在单用户模式下执行以下SQL删除记录(需先确认PostgreSQL版本及UID):

bash

su - postgres

/usr/lib/postgresql/15/bin/postgres --single -D /var/lib/postgresql/15/main trim

# 在提示符下执行:

DELETE FROM user_security_setting WHERE uid=1000;

# Ctrl+D退出,然后 exit

8 结语

通过上述步骤,你可以从“防火墙锁死导致二次验证失败”的困境中恢复。本指南已在实际案例中验证有效,但操作时仍需谨慎

收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则