有没有方法可以在公共 SMB 上面加密保存并能够方便存取文件的方法?

57 天前
 yyy134341

背景

现在有一个大家都能访问的 SMB Nas 网盘,碍于电脑硬盘容量不足,需要把部分内容迁移到 SMB 里面 因为隐私关系,因为大家都有权限 Access ,所以不希望放在 SMB 里面的文件能够给大家太轻易地打开 但是放到 SMB 的文件也是会被经常读写的,所以用压缩软件加密后丢进去、要用的时候解密拿出来也不是一个好的解决方法 来求求大家有没有什么比较无感或者比较方便能够实现?

几个想法

  1. 开一个虚拟机,将虚拟磁盘文件丢到 SMB 里,然后再在虚拟机里面开一个 SMB Server ,个人电脑就能通过 SMB 无感存取里面的文件。这样在 SMB 里就只有一个映像文件,其他使用者也没那么容易打开里面的文件。缺点是这个映像毕竟也是没有加密,别人一拿去加载到虚拟机里就能拿到所有文件
  2. 架设类似于 ownCloud 、Nextcloud 的个人云盘服务并将数据库文件丢在 SMB 里,然后通过网页或者客户端访问文件。这个没实现过,我想到的缺点是存取文件不太方便?需要查阅文件的时候还是要通过客户端/网页去下载/上传文件,这样本地就会有很多文件副本,而且文件在下载不能按需读取,比如 40G 的视频如果直接在 SMB 打开就可以边加载边播放,这种方式如果想本地播放的话好像不太行,得 40G 全部下载后才能打开

来征求大家有什么好的 idea ,感激不尽

1976 次点击
所在节点    NAS
20 条回复
fangpeishi
57 天前
试过 cryptomator 吗
xxbing
57 天前
VeraCrypt 是不是可以? 我没实验过,创建一个巨大的文件,通过 VeraCrypt 可以打开、关闭. 这个文件应该可以转移存放到远程 smb.
xxbing
57 天前
问了 ai, ai 回答: VeraCrypt 本质上是把一个加密空间映射成虚拟磁盘,加密容器文件(.hc 之类的文件)其实就是普通文件,所以它完全可以存放在远程 SMB/CIFS 网络共享里。
includewins0ck2h
56 天前
如果是 windows 系统,bitlocker 一个 vhdx 磁盘在 smb 可以吗
alfawei
56 天前
用 nas ,每个一个账号,不同权限
Opportunity
56 天前
vhdx 可以开 bitlocker 的
kokerkov
56 天前
问题来了,那为什么 samba 不设置权限管理呢?
47jm9ozp
56 天前
linux 的话用 encfs ,但你不怕别人删改你的文件吗

隐私重要内容不要放到这种地方
yyy134341
56 天前
@alfawei
@kokerkov
admin 设置的不是我设置的 我也控制不了 admin 怎么想
yyy134341
56 天前
@ooxxcc 删改倒是不怕 NAS 会有 snapshot
yyy134341
56 天前
@includewins0ck2h
@Opportunity
是指在虚拟机的那个系统里面开 bitlocker ?
Opportunity
56 天前

不需要虚拟机啊,直接用物理机不好吗?当然你要有隔离需求另说。
yyy134341
56 天前
@xxbing #2
@fangpeishi
这种其实方案挺理想的 但刚刚试了下性能 大文件 copy 写入是 50MB/s ,但小文件写入好像就只有 10MB/s ,正常 SMB 不加密拷贝的话能满速 115MB/s

CPU 是 AMD 9900x 拷贝的时候 cpu 也没占用多少 不知道是硬件问题还是软件优化还是设置问题
bsfx2
56 天前
个人认为 Cryptomator 是最优解。它的加密产物是文件,而不是一个巨大的加密磁盘镜像。
yyy134341
56 天前
@Opportunity #12 实现了一下 确实可以 性能损耗几乎无感 挺好的 感谢指导
includewins0ck2h
56 天前
@yyy134341 nas 里面新建一个 vhdx 磁盘,本地加载,然后 bitlocker 加密,远程不需要虚拟机。
HTravel
56 天前
创建域账号,每个用户一个域账号,通过域账号登陆 Windows 。然后再创建域群组,域群组里面添加域账号。域群组支持嵌套。

大公司是这样玩的,因为有 IT 部门的域管理员。你们如果比较正规的话,可以试试,十几万人的权限控制都没问题。
tsvico
56 天前
openalist + alist-encrypt
然后使用 webdav 挂载到本地
WizardLeo
56 天前
很好奇为什么单文件加解密会比整个虚拟磁盘加解密性能要差,甚至是 10 倍性能差距?
w568w
56 天前
1. 关键词:Stacked filesystem encryption ,即「在现有文件系统中储存加密文件结构,且可以通过挂载等方式无感读写的用户级别文件系统」。

除了楼上提到的 EncFS 和 cryptomator ,gocryptfs 和 CryFS 也可以看看。后三者都是支持 Windows 的。个人推荐 Cryptomator (部分功能需要付费)、gocryptfs (完全开源免费,但界面不太友好)。

不过 Cryptomator 确实速度会慢一点,原因未知,可能是加解密算法设计问题?

2. 至于 VeraCrypt 、VHDX 这种块设备级别的加密,就要看具体的软件实现了,整栈从下到上都需要支持 sequence read/write in the middle 。SMB 本身应该是支持的,VHDX 应该也是支持的。VeraCrypt 速度慢可能是将 sequence read/write 转化为 random read/write 了。

3. 只是要防止其他人看到的话,楼上介绍的权限控制方法也是可取的,0 性能损失。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1153093

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX