我们在 Windows AD 环境中为学生提供了电脑实验室,其中安装了 virtualbox 和几个虚拟机。
我们的目标是为预先构建的预定义虚拟机提供快捷方式,并完全禁止普通用户更改虚拟机或创建新的虚拟机。
Virtual Box 只有锁定 GUI 的选项锁定 Vbox Gui
还有许多其他选项可以完成这项工作 - 唯一的问题是普通用户可以编辑%USERPROFILE%\.VirtualBox\
文件夹中的 xml 配置文件。他可以解锁所有 Gui 限制,就像它们从未存在过一样。
我尝试执行以下操作:
1. Create local service account - vbx
2. Create shortcuts for vms
3. Change ownership of all related to Virtual Box folders to be owned by vbx
4. When student clicks on shortcut I use Start-Process from powershell
to start the vm on behalf of vbx user loading its creadentials from file.
e.g. $credential=Get-Credential
$credential | Export-Clixml -Path '.\vbxpass.xml'
现在我处于“先有鸡还是先有蛋”的问题之中——只是因为现在用户可以检查我的脚本并修改它来访问 xml 配置文件。
问题:如何锁定 Virtual Box?如何安全地存储服务帐户凭据?也许有更好的方法来解决这个问题?
谢谢。
答案1
值得注意的是,你可以在配置文件上设置只读限制VirtualBox.xml
,但如果其中一个限制noSelector
是
VBoxManage setextradata global GUI/Customizations noSelector,noMenuBar,noStatusBar
您将无法仅通过快捷方式(或 cli - VBoxManage startvm
)从 GUI 启动 VM。因此,要限制普通用户:
修改现有 VM 设置
使用自己的设置创建新的虚拟机
我们做了以下事情:
- 首先创建并将所有虚拟机设置为常规。
- 创建快捷方式(右键单击 -> 在桌面上创建快捷方式)
- 运行 VboxManage 限制命令
NT AUTHORITY\Authenticated Users
对您想要保护的所有文件设置只读限制或另一个符合您需求的组。主配置文件、机器文件夹中的 .vbox 文件等。但请注意,用户应该有“修改、同步”VM 文件夹内的日志文件夹的权限。
现在就是这样您可以通过快捷方式启动虚拟机,但不能修改配置,也不能以普通用户的身份创建新的虚拟机。