数据加密与隐私保护:eCryptfs vs LUKS
数据安全不仅是防黑客,还要防物理失窃。如果 NAS 被小偷偷走,硬盘被拔出来挂载到 Linux 电脑上,你的数据会直接暴露吗?
群晖 DSM 提供了两种截然不同的加密方案,选错了可能会后悔终身。
1. 两种加密技术的对决
| 特性 | 共享文件夹加密 (eCryptfs) | 整卷加密 (LUKS) [推荐] |
|---|---|---|
| 引入版本 | DSM 6.x 及以前 | DSM 7.2+ |
| 加密层级 | 文件级 (File-based) | 块级 (Block-based) |
| 文件名限制 | 受限 (最长 143 字符) | 无限制 (255 字符) |
| 性能损耗 | 较小 (AES-NI 加速) | 极小 (几乎无感) |
| NFS 协议 | 不支持 (或配置极其繁琐) | 完美支持 |
| 灵活性 | 可随时对现有文件夹开启/关闭 | 只能在创建卷时开启,不可逆 |
| 原理 | 每个文件独立加密 | 整个分区加密 |
结论: * 新买的 NAS (DSM 7.2+):闭眼选整卷加密 (Volume Encryption)。它解决了 eCryptfs 的所有痛点(文件名限制、NFS 不兼容)。 * 老机器升级:由于无法无损转换,建议新建一个加密卷,把数据迁移过去。 * 特定文件夹保护:如果你只需要加密“财务”文件夹,可以用 eCryptfs。
2. 共享文件夹加密 (eCryptfs) 实战
这是最传统的加密方式。
创建与挂载
- 控制面板 > 共享文件夹 > 新增。
- 在“加密”选项卡中,勾选 加密此共享文件夹。
- 输入密码。系统会强制你下载一个
.key文件。 - 挂载逻辑:
- 重启后:文件夹默认处于 未挂载 (Unmounted) 状态,图标上有把锁。此时通过 SMB/File Station 看到的是空的,或者根本看不到。
- 手动挂载:右键文件夹 > 加密 > 挂载 > 输入密码。
- 风险:如果你勾选了“开机自动挂载”,密钥会以明文形式存储在系统分区。如果整机被盗,加密形同虚设。
限制与坑点
- 文件名变长:加密后的文件名会被 Base64 编码,导致文件名变长。Linux 文件系统限制文件名 255 字节,加密后实际只能存约 143 个字符(中文约 40-50 个字)。如果文件名太长,写入会失败。
- 索引慢:Universal Search 索引加密文件夹时,需要先解密再索引,CPU 占用较高。
3. 整卷加密 (LUKS) 实战
这是企业级的解决方案。
创建加密卷
- 存储管理器 > 存储空间 > 创建。
- 在创建过程中,勾选 加密此存储空间。
- 系统会生成一个 恢复密钥 (Recovery Key)。
- 密钥库 (Key Vault):DSM 会自动创建一个本地密钥库来管理解锁密钥。
优势详解
- 透明性:一旦卷解锁,上面的所有共享文件夹、Docker 容器、虚拟机都像在普通卷上一样运行。你完全感觉不到加密的存在。
- 重删与压缩:Btrfs 的高级特性(重复数据删除、文件压缩)在加密卷上依然有效。
- 物理安全:如果你把密钥存在 KMIP 服务器(远程密钥服务器)上,一旦 NAS 被盗离线,因为连不上 KMIP 服务器,卷就无法解锁。
4. 密钥管理器 (Key Manager) 的高级玩法
为了解决“既要开机自动挂载(方便 Docker 启动),又要防物理失窃”的矛盾,我们可以使用 物理密钥 (Physical Key)。
USB 密钥大法
- 准备一个闲置的 U 盘。
- 控制面板 > 共享文件夹 > 密钥管理器。
- 系统分区:默认是把密钥存在硬盘里(不安全)。
- 机器密钥 (Machine Key):改为存储在 USB 闪存盘。
- 操作流程:
- 把 U 盘插在 NAS 屁股后面。
- 设置“开机自动挂载”。
- 正常使用:NAS 重启时读取 U 盘密钥,自动解锁。
- 紧急情况:当你离家远行,或者发现有陌生人闯入时,拔走 U 盘。
- 结果:此时如果 NAS 被盗或断电重启,因为没有 U 盘,所有加密数据都无法读取。
5. 云端备份的安全性
你用 Hyper Backup 备份到百度网盘或 Synology C2 时,数据安全吗?
- 客户端加密 (Client-side Encryption):
- Hyper Backup 在数据离开 NAS 之前,就会用你的密码进行 AES-256 加密。
- 这意味着:即使百度网盘的管理员,或者是 Synology 的工程师,也无法看到你的照片。
- 注意:这与 NAS 本地的加密是两码事。即使本地没加密,备份出去的数据也可以加密。
6. 紧急救援
- 忘记密码了?
- eCryptfs: 只要有
.key文件就能解密。如果密码和 key 都丢了,神仙难救(AES-256 目前无法暴力破解)。 - LUKS: 只要有恢复密钥 (Recovery Key) 就能重置密码。
- eCryptfs: 只要有
- 性能极慢?
- 检查你的 CPU 是否支持 AES-NI 指令集(控制面板 > 信息中心 > CPU)。J1900 之后的 CPU 基本都支持。如果不支持(如极老的 ARM 机型),开启加密会导致传输速度从 100MB/s 掉到 10MB/s。