如何使用 Samba 共享加密文件夹

如何使用 Samba 共享加密文件夹

我只有加密了我的主文件夹及其所有子文件夹。其中一个子文件夹配置为 Samba 共享:

[avo-home]
    comment = Avo's Home Share
    path = /home/avo/share
    browsable = yes
    read only = no
    create mask = 0660
    directory mask = 0770
    valid users = avo

现在我注意到这个共享可以从 Windows 获得仅有的如果我使用 SSH 登录我的 Ubuntu 服务器,则无法连接到它。否则,我无法连接到它。在我加密它之前,无论 SSH 会话是否处于活动状态,它都是可用的。

如何让 Windows 客户端无需使用 SSH 登录即可使用此加密共享?

答案1

对此有几种可能的解决方案。问题是:这个文件夹是否需要加密?

未加密

如果不需要加密,最简单的解决办法如下:

将文件夹移动到 /var/avoshare:

sudo mv /home/avo/share /var/avoshare

设置软链接

ln -s /var/avoshare /home/avo/share

然后更新您的配置为

[avo-home]
comment = Avo's Home Share
path = /var/avoshare  

使用全盘加密进行加密

Ubuntu 的全盘加密解决了您的问题。缺点:我认为您需要在安装时执行此操作,因此您必须再次设置服务器。

使用 loopfs 加密

对 /var/avoshare 文件夹使用加密的 loopfs。注意:大多数命令都需要 root 权限。确保最后将挂载文件系统的所有权授予 avo。

  1. 使用 dd 创建所需大小的文件。将文件存储在某个位置,例如 /var/avoloop

  2. 用于losetup -e AES /dev/loop0 /var/avoloop为该文件设置一个循环设备

  3. 使用 ex4 格式化 loopdevicemkfs.ext4 /dev/loop0

  4. 您现在可以将该循环设备挂载在 /var/avoshare 上。您需要为此输入密码。

  5. 为了更加方便,编写一个脚本来设置加密的 loopfs,​​在启动服务器后运行该脚本。该脚本将使用losetup -e AESmount

  6. 确保在关闭机器之前卸载 /var/avoshare。查看这里了解详情。

相关内容