本系列导航:
你的NAS里存着你的照片、文件、密码,甚至可能还有个人的敏感数据。一旦被入侵,后果远比想象中严重——这不像普通电脑中毒重装一下系统那么简单,NAS被攻破意味着数据直接暴露甚至被勒索。因此安全配置不是可选项,而是必须项。
网络安全是NAS安全的第一道防线,也是最容易被忽视的一环。很多用户只关注NAS本身的功能配置,却忘了思考一个根本问题:你的NAS暴露在网络上吗?
1.系统安全
1.1.端口映射与DMZ
端口映射和DMZ是两种将内网服务暴露到公网的方式。
端口映射是将路由器的某个公网端口转发到内网NAS的对应端口上。比如你把公网的5000端口映射到NAS的5000端口,那么任何人通过你的公网IP加上5000端口就能直接访问你的NAS。
DMZ则更激进——它将内网中的一台设备完全暴露在公网上,相当于这台设备的所有端口都被映射了出去。这是最危险的做法,除非你清楚自己在做什么,否则绝对不要把NAS放入DMZ。
这两种方式的共同问题是:你的NAS直接暴露在互联网上,任何人都可以尝试访问它。互联网上的扫描器会自动发现开放端口,然后对SSH、Web管理界面等进行暴力破解。群晖和威联通的远程访问服务都曾曝出过严重漏洞(如CVE-2022-27596等),即使你按时更新系统,也可能在补丁发布前的窗口期内被攻击。
一句话:如果你必须使用端口映射,务必配合IP白名单、HTTPS、非标准端口等多重防护措施,但仍无法完全消除0day漏洞的攻击风险。
1.2.VPN:更安全的远程访问方案
与其想办法让暴露更安全,不如从根本上不暴露——这就是VPN的思路。
VPN(虚拟专用网络)在你的设备和家庭网络之间建立一条加密隧道,远程访问时你的设备就像直接连在了家里一样,NAS的所有端口都不需要对公网开放。
目前NAS远程访问的主流VPN方案如下:
| 方案 | 特点 | 适用场景 |
|---|---|---|
| WireGuard | 代码仅约4000行,攻击面极小,现代密码学,内核态运行 | 追求极简和高安全性 |
| OpenVPN | 开源方案,历史悠久,经过广泛安全审计,但配置较复杂 | 已有基础设施或兼容性要求高的环境 |
这两种方案的性能都远超家用宽带上传速度,在实际使用中不会成为瓶颈,选择时更多应关注易用性和安全性。
1.3.防火墙:iptables
如果你的NAS运行在Linux系统上(大多数NAS系统都基于Linux),iptables是管理网络流量进出规则的核心工具。通过配置iptables,你可以精确控制哪些流量被允许、哪些被拒绝。
几个基本原则:
- 默认拒绝所有入站流量,只开放明确需要的端口。不要为了图方便放行全部端口
- 仅允许必要的出站流量,防止NAS被入侵后向外发起攻击
- 保护管理端口,SSH和Web管理界面只允许来自内网或VPN隧道的访问,禁止公网直连
- 定期检查规则,确保没有被意外修改或添加的规则
特别提醒:配置防火墙规则时务必小心,一条规则写错就可能把自己也拦在门外。建议先通过控制台(显示器直连)而非SSH进行调试,确保规则正确无误后再远程操作。或者设置一个定时任务,在配置后几分钟自动重置防火墙规则,万一把自己锁在外面也不至于无法挽回。
如果你觉得iptables的语法过于晦涩,UFW(Uncomplicated Firewall)是一个更友好的前端工具,用简单的命令就能实现同样的效果。
1.4.SSH安全
SSH是远程管理NAS的常用方式,也是被暴力破解最多的目标之一。几个必须做的安全配置:
- 禁用密码登录,只允许密钥认证。密码再复杂也可能被暴力破解,但RSA/Ed25519密钥几乎不可能被猜中
- 修改默认SSH端口。22端口是扫描器的首要目标,换一个非标准端口可以过滤掉大部分自动化的暴力破解脚本
- 禁止root用户直接登录。即使密钥泄露,攻击者也无法直接获得最高权限
- 限制登录尝试次数和频率。配合fail2ban等工具,连续失败后自动封禁IP
1.5.HTTPS/TLS加密
如果你的NAS通过公网提供服务(即使是通过端口映射),HTTPS是必须的。没有HTTPS的情况下,你的账号密码、文件内容全部以明文在网络上传输,任何中间节点都可以截获。
实现HTTPS的关键是SSL/TLS证书。好消息是Let’s Encrypt提供免费的证书,有效期90天,且大多数NAS系统和反向代理工具都支持自动续签,配置一次就不用再管。2025年起,Let’s Encrypt还开始支持IP SSL证书,即使你没有域名,只要有公网IP也能获得受信任的免费证书。
如果使用内网穿透(如Frp),可以在穿透服务端配合Nginx反向代理实现端到端的HTTPS加密,确保数据从你的设备到NAS的整条链路上都是加密的。
1.6.系统更新与安全补丁
及时安装安全补丁是防御已知漏洞的最基本手段。飞牛NAS曾曝出路径穿越漏洞,影响超过30万台设备,攻击者可以读取私钥、执行命令,大量设备因此变成DDoS肉鸡。而在此之前群晖、威联通等品牌也曾多次出现严重安全漏洞。这些案例说明,不更新的NAS就像一扇没上锁的门。
但更新本身也存在风险——大版本升级可能引入兼容性问题,跨多个版本跳跃升级更可能导致数据异常。因此更新应该遵循以下原则:
- 安全补丁及时安装,不要拖延,补丁修复的漏洞可能正在被利用
- 大版本升级逐步进行:先更新到当前大版本的最后一个小版本,再更新到下一个大版本的最后一个版本,以此类推,逐步升级到最新版本。例如从版本1.0升级到3.0,正确的路径是1.0→1.x(最后一个)→2.x(最后一个)→3.0,而不是直接从1.0跳到3.0
- 每次升级前完整备份数据,确保出问题时可以回滚
- 关注厂商公告,了解当前设备的大版本支持周期。群晖已宣布DSM 7.3将是部分旧机型的最后大版本,之后只提供2-3年的安全补丁
2.数据安全
数据是NAS存在的全部意义。前面的硬件选型、系统安全做得再好,如果数据丢了,一切归零。
2.1.数据备份
在讲备份策略之前,必须先澄清一个广泛存在的误区:
RAID不是备份。
RAID提供的是高可用性——硬盘坏了数据不丢,阵列继续工作。但RAID无法防御以下任何一种情况:
- 人为误删:你删除了一个文件,RAID会在所有硬盘上同步删除
- 勒索病毒:加密了你的文件,RAID会在所有硬盘上同步加密
- 系统故障:NAS系统崩溃或配置出错,RAID也救不了你
- 物理灾难:火灾、水淹、被盗,RAID跟着NAS一起消失
简单说,RAID防的是硬件故障,备份防的是一切意外。两者是不同层面的防护,不能互相替代。
3-2-1备份原则
这是业界公认的最基本备份规则,任何备份策略都应该以此为框架:
- 3份副本:1份原始数据 + 2份备份
- 2种介质:备份存储在至少两种不同的存储介质上
- 1份异地:至少1份备份存放在异地(云端或其他物理地点)
对个人NAS用户来说,严格执行完整的3-2-1可能成本较高,但至少应该做到以下基础:NAS本地一份 + 外接硬盘定期备份一份 + 关键数据云端同步一份。这不需要很高的成本,但能应对绝大多数意外。
快照:防误删和勒索的利器
快照(Snapshot)记录了文件系统在某个时间点的完整状态。当你误删了文件或者遭到勒索病毒攻击时,可以一键将文件系统回滚到快照时刻的状态,恢复速度极快——通常只需要几秒到几分钟。
快照基于写时复制(Copy-on-Write)技术,创建快照几乎不占用额外空间,只有数据发生变化时才会记录差异。因此建议对重要共享文件夹每小时自动拍摄一次快照,存储成本很低,但防护效果显著。
需要注意的是,快照和原始数据存储在同一块硬盘上。如果硬盘本身损坏,快照也会随之消失。因此快照是对误删和勒索的有效防护,但不能替代异地备份。
备份层级
综合以上概念,NAS的数据防护可以理解为层层递进的防线:
| 层级 | 方式 | 防护范围 |
|---|---|---|
| RAID冗余 | 硬盘故障时数据不丢,服务不中断 | 单块或多块硬盘损坏 |
| 快照 | 误删或勒索后快速回滚 | 人为误操作、勒索病毒 |
| 本地备份 | 定期备份到外接硬盘 | 硬盘故障、误删、系统崩溃 |
| 异地/云备份 | 备份到云端或异地设备 | 火灾、盗窃等物理灾难 |
常用备份方案
外接硬盘定期备份
最简单也最可靠的备份方式。用一块移动硬盘定期连接NAS,将重要数据备份过去,备份完成后拔下来存放在安全的地方。这种方式天然满足”2种介质”和”1份异地”(如果你把硬盘放在别处的话)的要求。成本极低,操作简单,适合所有用户。
云同步
将关键数据同步到云端存储(如阿里云OSS、Backblaze B2等),实现异地备份。好处是数据存放在远程,不怕物理灾难;缺点是上传速度受限于宽带带宽,大量数据首次同步可能需要较长时间,且长期使用有持续的存储费用。
常用的云同步工具包括rsync(通用Linux)、Rclone(支持数十种云存储后端)、各NAS品牌自带的云同步套件等。
Nextcloud同步
如果你的NAS上部署了Nextcloud,它同时也是一个很好的备份工具。Nextcloud的桌面和移动客户端支持将服务器上的文件同步到本地,保留一份完整副本。这意味着你的数据同时存在于NAS和你的电脑/手机上——相当于自动实现了本地+远程双备份。
Nextcloud还支持版本控制和回收站功能,误删文件或误改内容都可以恢复历史版本。对于已经在使用Nextcloud做文件管理的用户来说,不需要额外配置备份策略,客户端的本地副本就是天然的备份。
2.2.RAID方案介绍
上一节我们明确了RAID不是备份,但RAID在NAS中仍然是不可或缺的基础设施——它通过将数据分布在多块硬盘上来提供冗余,确保单块甚至多块硬盘故障时数据不丢失、服务不中断。
传统RAID级别
| 级别 | 最少硬盘 | 可用容量 | 容错能力 | 读性能 | 写性能 |
|---|---|---|---|---|---|
| RAID 0 | 2 | N×单盘 | 无,一块坏全丢 | 最快 | 最快 |
| RAID 1 | 2 | 1×单盘 | 1块 | 快 | 一般 |
| RAID 5 | 3 | (N-1)×单盘 | 1块 | 快 | 一般(校验开销) |
| RAID 6 | 4 | (N-2)×单盘 | 2块 | 快 | 较慢(双校验) |
| RAID 10 | 4 | (N/2)×单盘 | 每镜像组1块 | 最快 | 快 |
RAID 0将数据分块后并行写入所有硬盘,速度最快,容量利用率100%,但没有任何冗余——任何一块盘坏了数据全部丢失。NAS场景下不建议对重要数据使用RAID 0。
RAID 1是两块硬盘互为镜像,写入时同时写两份。优点是一块盘坏了另一块可以直接接管,恢复简单;缺点是容量利用率只有50%,4块盘也只能用2块的容量。适合双盘位NAS或存放极重要的数据。
RAID 5是最常见的NAS RAID方案。数据分块存储的同时,校验信息分散在所有硬盘上。它兼顾了容量利用率和容错能力——N块硬盘提供N-1块的可用空间,同时允许一块硬盘故障。读性能优秀,写入时需要计算校验数据,有一定开销。
RAID 6在RAID 5的基础上增加了第二组校验信息,允许同时两块硬盘故障。代价是多牺牲一块盘的容量,写入性能也更慢(双重校验计算)。在大容量硬盘时代,这个额外安全性越来越重要——后面会解释原因。
RAID 10先做镜像(RAID 1),再做条带化(RAID 0),兼具两者的优点:读写性能都很快,容错能力好(只要不是同一镜像组的两块盘同时坏)。缺点是容量利用率只有50%,且至少需要4块硬盘。
大容量硬盘时代的RAID困境
随着单块硬盘容量越来越大(16TB、20TB甚至更大),RAID 5面临一个越来越严峻的问题:重建时间。
当RAID 5中有一块硬盘故障,需要用剩余硬盘上的校验数据重建出故障盘的内容。这个过程需要读取所有剩余硬盘的全部数据——如果是4块16TB硬盘,重建过程需要读取48TB的数据。以机械硬盘100MB/s左右的读取速度计算,重建可能需要数天甚至更长时间。
这数天里,阵列处于脆弱状态——如果再有另一块硬盘在这期间故障,所有数据就全部丢失了。而大容量硬盘在长时间高负载重建过程中,发生第二块故障的概率并不低。
因此,对于使用大容量硬盘的NAS(单盘8TB以上),越来越多用户开始倾向选择RAID 6,用牺牲一块盘容量和写入性能的代价,换取同时容忍两块盘故障的安全性。
不过,如果你能做到定期检查硬盘的SMART信息(后续的定期维护一节会详细介绍),这个问题也没有那么可怕。硬盘在物理损坏之前,SMART数据通常会出现异常征兆——比如重分配扇区计数增长、寻道错误率升高等。一旦发现异常,你可以在硬盘尚未实际损坏之前,主动通过热替换的方式将其更换出去。这样整个操作过程中阵列始终保持完整,不存在重建期间第二块盘故障的风险。前提是你确实在定期检查,而不是等硬盘坏了才发现。
RAID5的在线更换与扩容
RAID 5有一个非常实用的能力:在线更换硬盘。这意味着你不需要停机,就可以对存储池进行维护和扩容。
故障盘更换:当RAID 5中某块硬盘故障时,你可以直接拔出故障盘(热插拔),插入一块新盘,阵列会自动利用校验数据在新盘上重建数据。整个过程不需要停机,NAS继续正常工作,只是重建期间性能会有所下降。如果你提前配置了热备盘(Hot Spare),更换流程可以更加自动化——热备盘会立即顶替故障盘开始重建,你只需要在方便时再插入新盘替换热备盘即可。
在线扩容:如果你觉得容量不够了,可以逐块将硬盘替换为更大容量的硬盘。每换一块,阵列就自动在新盘上重建数据。等所有硬盘都换完后,在阵列层将可用空间扩展到新的容量,然后再对分区表和文件系统进行扩容,才能让新增的空间真正可用。整个过程同样不需要停机。
需要注意,更换硬盘时建议使用同型号同规格的硬盘,新盘最好提前做72小时的老化测试,避免将一块有隐患的盘直接投入阵列。
2.3.定期维护
NAS买回来装好不是结束,而是一个长期维护过程的开始。很多NAS的数据丢失并不是因为黑客攻击或硬件突然损坏,而是因为主人从未检查过硬盘状态,直到硬盘彻底报废才发现一切都来不及了。
SMART信息检查
SMART(Self-Monitoring, Analysis and Reporting Technology)是硬盘内置的自监测系统,可以实时记录硬盘的各项运行指标。通过定期检查SMART信息,你可以在硬盘物理损坏之前发现异常征兆,提前采取行动。
以下几个SMART属性需要重点关注:
| 属性 | 含义 | 危险信号 |
|---|---|---|
| 重新分配扇区计数(ID:05) | 硬盘发现坏道后将数据迁移到备用扇区的次数 | 不为0且在增长,应立即备份数据并更换硬盘 |
| 待分配扇区(ID:197) | 发现疑似坏道但尚未重映射的扇区数 | 大于0需警惕,持续增长应立即更换 |
| 不可纠正错误(ID:198) | 无法通过ECC纠正的读取错误次数 | 任何非零值都意味着数据有丢失风险 |
| 寻道错误率(ID:01) | 磁头定位到目标磁道时的错误频率 | 持续升高说明磁头老化或机械臂故障 |
| 通电时间(ID:09) | 硬盘累计通电运行的总时间 | 超过40000小时(约4.5年7×24运行)进入高故障率区间 |
建议每月检查一次SMART信息。可以通过NAS系统的图形界面查看(如群晖的存储管理器→健康报告),也可以通过命令行一键查看所有硬盘的SMART信息:
1 | lsblk -d -o NAME | grep -E '^(sd|hd|nvme|vd)' | xargs -I {} sudo smartctl -a "/dev/{}" |
这条命令会自动识别所有存储设备并逐个输出详细的SMART数据(需要先安装smartmontools)。如果想只看健康状态摘要,将-a替换为-H即可。具体的命令解析可以参考这篇文章。
检查时不要只看通电时间——二手硬盘的通电时间容易被篡改,需要综合多项指标判断。
需要强调的是,前面提到的RAID 5热替换策略,正是建立在定期检查SMART信息的基础上的。如果你每月检查一次,发现异常后有充足的时间在硬盘实际损坏前完成热替换,阵列永远不会处于降级状态。
系统盘占用与清理
如果你的NAS使用了单独的SSD作为系统盘,需要定期检查系统盘的占用情况。系统盘空间不足可能导致系统运行异常、无法安装更新,甚至影响Docker容器的正常运行。
常见的空间占用来源:
- Docker镜像和容器数据:长期运行的容器会产生大量日志和缓存,定期清理无用的镜像和容器
- 系统日志:如果日志没有配置自动轮转,可能会持续增长
- 临时文件:系统更新、应用安装过程中产生的临时文件,更新完成后应清理
建议每月检查一次系统盘占用,设置磁盘使用率告警(比如超过80%时提醒)。
温度监控
温度是影响硬件寿命的关键因素。CPU长时间高温运行会加速老化甚至导致降频,硬盘在高温下故障率会显著上升。
需要关注的温度指标:
- CPU温度:正常使用下应在40-70°C之间,超过80°C需要关注散热问题
- 硬盘温度:机械硬盘正常运行温度在30-50°C之间,超过55°C属于偏高,长期高温会加速盘片老化和磁头磨损
如果发现温度异常,常见原因包括:散热硅脂老化、机箱风道不畅、风扇故障、环境温度过高。NAS通常放在角落容易忽略散热,建议夏季高温时额外关注。
另外,如果你的NAS是DIY方案,在选择散热风扇时有一个容易踩的坑:不要盲目追求高端静音风扇。很多静音风扇为了降低噪音,采用了更精密的轴承和更低的转速,代价是耐用性大幅下降——如果使用环境灰尘较大,这些风扇会坏得很快。NAS需要7×24小时运行,对风扇的可靠性要求远高于静音表现。选择耐用性好的工业风扇,比选择标榜”极致静音”的消费级风扇更明智。
阵列完整性检查
即使硬盘没有报告任何错误,数据在存储过程中也可能发生静默损坏(位翻转)——数据从硬盘读出来时,某些位的值已经悄悄变了,但硬盘自己不会告诉你。对于传统RAID来说,这种损坏无法被检测和修复。
如果你的NAS使用了ZFS或Btrfs文件系统,它们内置了数据校验机制,可以通过定期执行Scrub来检测并修复静默损坏:
- ZFS:执行
zpool scrub命令 - Btrfs:执行
btrfs scrub start命令
建议每月或每季度执行一次完整的Scrub,这个过程会读取所有数据并校验完整性,根据数据量大小可能需要数小时到一天不等。执行期间阵列性能会有所下降,建议安排在空闲时段运行。
如果你使用的是传统RAID(如mdadm),无法进行数据层面的完整性校验,那就更需要依赖前面提到的备份策略来兜底了。
这里补充一个关于mdadm的小知识:mdadm识别硬盘是根据存储在硬盘中的UUID实现的,与硬盘在系统中显示的设备名(如sda、sdb)或者硬盘插在哪根SATA数据线上无关。所以如果你重启后发现硬盘的设备名变了(比如原来的sda变成了sdc),或者你把硬盘换了一个SATA接口,都不用担心——mdadm仍然能正确识别并组装阵列,不会影响数据安全。
2.4.故障处理
无论你的防护做得多好,故障总有可能发生。关键不在于故障会不会来,而在于故障来了之后你怎么处理。错误的操作可能让可恢复的数据彻底丢失,正确的应对则能把损失降到最低。
首要原则:不要慌,不要乱动
NAS出问题时,最容易犯的错误就是急于修复而做出错误操作。以下几条铁律需要牢记:
- 听到硬盘异响,立即断电。咔嗒声、金属摩擦声意味着磁头可能已经损坏,继续通电只会让磁头划伤盘片,造成不可逆的数据丢失
- 不要反复重启。如果NAS无法启动,反复重启可能会加重硬盘损坏
- 不要在故障盘上直接读写数据。如果需要恢复数据,先做镜像备份,在镜像上操作,保护原盘
- 多盘故障时不要尝试重建RAID。如果RAID阵列中两块或更多硬盘同时故障,重建操作会覆盖数据,让恢复变得不可能
常见故障及处理
NAS无法访问
这是最常见的故障,但原因可能完全不同:
- 检查网络连接——网线是否松动,路由器端口指示灯是否正常,能否通过IP地址ping通NAS
- 检查防火墙和端口——确认管理端口(群晖默认5000/5001,威联通默认8080)没有被防火墙拦截
- 检查系统日志——NAS管理界面中通常有日志中心,查看错误信息定位原因
- 重启设备——如果能正常访问管理界面,尝试通过系统菜单正常重启;如果完全无法访问,长按电源键强制关机再重新开机
存储池降级/硬盘故障
如果你的NAS报告存储池状态异常或某块硬盘故障:
- 立即检查故障硬盘的SMART信息,确认是逻辑故障还是物理故障
- 如果是逻辑故障(坏道、文件系统错误),可以尝试使用系统自带的修复工具
- 如果是物理故障(异响、无法识别),立即断电该盘,准备更换
- 在RAID冗余保护下(如RAID 1/5/6),更换故障盘后阵列会自动重建,数据不会丢失。重建期间避免高负载IO
- 更换前确保已备份数据——虽然RAID重建理论上不会丢数据,但重建过程中如果再出故障就是灾难
系统无法启动
- 检查是否是系统盘故障(如果有独立系统盘),尝试更换系统盘重装系统,数据盘不受影响
- 检查是否有硬盘故障导致系统分区损坏,这种情况在长期异常关机后可能出现
- 如果是固件/系统更新导致的问题,尝试进入安全模式或回滚到上一版本
- 如果以上都无法解决,可以考虑恢复出厂设置——但这会清除系统配置(不会删除数据盘上的文件),操作前确认数据可以通过其他方式访问
对于使用mdadm的DIY NAS,还有一种常见情况:mdadm在阵列不完整时不会强行启动,而Ubuntu由于长时间无法挂载阵列中的文件系统,通常会进入救援模式。看到黑屏命令行不要慌,这并不是系统坏了。使用lsblk检查是否有缺失的硬盘,如果发现有盘缺失,再用smartctl根据序列号判断具体是哪块硬盘不见了,然后检查对应的SATA接口是否松动。很多时候只是接口松了,重新插紧重启就能恢复。
数据恢复的底线
当故障超出了你的处理能力,最重要的事情是保护好现场:
- 不要尝试用各种软件工具反复扫描故障盘
- 不要尝试重建RAID阵列
- 不要格式化或初始化任何硬盘
如果数据确实重要,及时寻求专业数据恢复服务。物理故障(异响、无法识别)需要无尘室开盘恢复,逻辑故障(误删、格式化)可以通过专业软件处理。无论哪种情况,越早处理,恢复的可能性越大。
2.5.断电保护
NAS在运行过程中突然断电,可能导致正在写入的数据损坏、文件系统错误,严重时甚至引发RAID阵列降级。UPS(不间断电源)可以在断电后为NAS提供一段时间的电力供应,让系统有足够的时间安全关机,避免数据损失。
选择UPS时根据NAS的实际功耗来匹配容量,一般选择能提供10-15分钟续航的型号就足够完成安全关机了。配合NAS或系统的自动关机脚本(检测到UPS切换到电池供电后延时关机),可以在无人值守的情况下也能从容应对断电。预算充足的话建议配置,预算有限的话至少确保NAS接在有浪涌保护功能的插座上。