16.4. 限制虚拟机用户可以使用哪些操作
在某些情况下,在 RHEL 8 上托管的虚拟机(VM)用户可以执行的默认操作可能会导致安全隐患。如果是这种情况,您可以通过配置 libvirt
守护进程配置来在主机上使用 polkit
策略工具包来限制虚拟机用户可用的操作。
流程
可选: 确保与
libvirt
相关的polkit
控制策略根据您的偏好设置。在
/usr/share/polkit-1/actions/
和/usr/share/polkit-1/rules.d/
目录中找到所有与 libvirt 相关的文件。# ls /usr/share/polkit-1/actions | grep libvirt # ls /usr/share/polkit-1/rules.d | grep libvirt
打开文件并检查规则设置。
有关读取
polkit
控制策略的语法的信息,请使用man polkit
。修改
libvirt
控制策略。要做到这一点:-
在
/etc/polkit-1/rules.d/
目录中创建一个新的.rules
文件。 将自定义策略添加到此文件中,并保存。
有关
libvirt
控制策略的更多信息和示例,请参阅libvirt
上游文档。
-
在
配置您的虚拟机,以使用由
polkit
确定的访问策略。为此,请取消对
/etc/libvirt/libvirtd.conf
文件中的access_drivers = [ "polkit" ]
行的注释。# sed -i 's/#access_drivers = \[ "polkit" \]/access_drivers = \[ "polkit" \]/' /etc/libvirt/libvirtd.conf
重新启动
libvirtd
服务。# systemctl restart libvirtd
验证
作为您要限制其虚拟机操作的用户,请执行一个受限操作。
例如,如果非特权用户被限制查看在系统会话中创建的虚拟机:
$ virsh -c qemu:///system list --all Id Name State -------------------------------
如果这个命令没有列出任何虚拟机,即使系统上有一个或多个虚拟机,则
polkit
成功地限制了非特权用户的操作。
故障排除
目前,配置
libvirt
以使用polkit
,使它不可能使用 RHEL 8 web 控制台 连接到虚拟机,因为与libvirt-dbus
服务不兼容。如果您需要在 web 控制台中对虚拟机进行精细访问控制,请创建一个自定义 D-Bus 策略。具体说明请参阅红帽知识库中的 如何在 Cockpit 中配置虚拟机的精细控制。
其它资源
-
man polkit
命令 -
有关 polkit 访问控制策略 的
libvirt
上游信息