用户如何在 VeraCrypt 中挂载加密文件容器?

用户如何在 VeraCrypt 中挂载加密文件容器?

我有许多带有 VeraCrypt 加密文件容器的外部媒体,我希望用户能够挂载并使用它们,但不授予用户 root 权限。

然而目前 VeraCrypt 总是要求输入用户/管理员密码,显然是 sudo-ing 挂载操作:

VeraCrypt 无法安装 sodoers 中不存在的 pdebski

不在 sudoers 文件中的用户如何挂载 .hc 文件?

答案1

警告:仅当同意以下内容时才使用@Pawel Debski 解决方案:

  • 任何用户或黑客使用权到用户帐户veracryptusers团体可以运行任何命令以 root 身份通过下载一个预先准备好的容器文件,其中包含以 root 身份运行的恶意代码。

因此,使用该解决方案时,您可以考虑为 veracrypt 使用特殊用户配置文件。这样一来,sodo 就更易于使用了。

测试安全问题的步骤:

  1. 创建容器文件(ext2-4)
  2. 复制或创建二进制文件(例如 whoami)
  3. 将二进制文件所有者更改为 root
  4. 将 setuid 添加到二进制文件
  5. 使用非 root 用户帐户调用二进制文件

二进制文件将以 root 权限运行。

提示:我添加了此解决方案,因为 Pawel Debski 的警告不太显眼。只要系统有互联网连接,风险就远大于收益。

答案2

您可以允许其他用户运行 sudo 以仅访问某些程序。例如,我允许用户 www-data 运行 /sbin/ipset 以禁止试图入侵我的 Web 服务器的用户。我承认这是在运行修改版 Debian 的树莓派上进行的。

我在文件夹 /etc/sudoers.d 中创建了一个文件,文件内容如下

www-data ALL=(ALL) NOPASSWD: /sbin/ipset

答案3

我做到了。解决方案改编自此处:https://wiki.archlinux.org/index.php/TrueCrypt#Mount_volumes_as_a_normal_user以及我关于现代 sudoers 配置的另一个问题:在 /etc/sudoers.d/ 中添加本地内容,而不是直接通过 visudo 修改 sodoers 文件

  1. 创建一个名为 say 的新组veracryptusers,并赋予其使用 VeraCrypt 所需的权限,无需 root 密码。属于该组的任何用户都可以使用 VeraCrypt。

注意:戏剧性地增加了用户权限提升的攻击面,因此请确保仅将受信任的用户添加到该组。

# groupadd veracryptusers
  1. 现在让我们授予该组仅限于 VeraCrypt 的 sudo 权限:
$ sudo visudo -f /etc/sudoers.d/veracrypt
  GNU nano 2.5.3 文件:/etc/sudoers.d/veracrypt.tmp                      

# veracryptusers 组中的用户可以以 root 身份运行 veracrypt。
%veracryptusers ALL =(root)NOPASSWD:/ usr / bin / veracrypt

另请确保具有适当的权限,veracrypt并且/usr/bin不能被群组或其他人写入:

$ ls -al /usr/bin/vera*
-rwxr-xr-x1 root root 6341016 2016年10月17日 /usr/bin/veracrypt
$ ls -ald /usr/bin
德鲁克r-xr-x2 根 根 69632 lip 25 10:09 /usr/bin

否则,恶意用户可能会替换可执行文件并随心所欲地获得完全的 root 权限。

现在重新启动(或重新登录)以重新评估组成员身份,然后您就可以挂载和卸载您最喜欢的卷了。

还请务必查看以下链接中描述的权限提升漏洞,并在将用户添加到组之前考虑是否可以信任他们

答案4

那这样怎么样?我是对还是错?

只需为 veracrypt 创建一个用户并将其添加到/etc/sudoers.d

相关内容