你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
强化 Linux 映像以移除 sudo 用户
适用于: ✔️ Linux 映像
本“操作方法”演示了从 Linux 映像中删除 sudo 用户并在 Azure 中部署机密虚拟机(机密 VM)的步骤。
本文的目的是为机密 VM 部署创建无管理员 Linux 映像。 删除来宾管理员具有巨大的安全价值,可减少 OS 中的管理员权限。
了解 Unix/Linux 系统中不同类型的用户:
管理员用户(sudoer):具有额外权限的常规用户。 这些用户可以执行修改系统配置的某些任务。
常规用户:常规用户是非管理员用户。 他们无权修改系统配置或安装系统范围的软件。
在无管理员 Linux 映像的上下文中,目的是在没有 sudo 用户的情况下部署系统。
注意
仅配置可确保防止将用户添加到 sudo 组。 具有根权限或 sudo 权限的任何服务都有可能提升特权。
先决条件
- 如果还没有 Azure 订阅,可以在开始前创建一个免费 Azure 帐户。
- Ubuntu 映像 - 可以从Azure 市场中选择一个。
删除 sudo 用户并准备通用 Linux 映像
建议的解决方案在不使用 sudo 用户的情况下生成 Linux 映像。
创建删除 sudo 用户的通用映像的步骤如下:
下载 Ubuntu 映像。 为 Azure 机密 VM 创建自定义映像
装载映像
可通过多种方式来 附加磁盘,该示例使用循环设备来装载映像。 它可以是附加磁盘,也可以是装载映像的循环设备。
$imagedevice是包含映像的设备上的根文件系统分区。
mount /dev/$imagedevice /mnt/dev/$imagedevice
此过程通常用于访问和使用磁盘映像。 在这里,它用于删除 Ubuntu 映像上的 sudo 用户。
Chroot 进入 vhd 文件系统以运行以下命令,其中列出了 sudo 组下的用户。
sudo chroot /mnt/dev/$imagedevice/ getent group sudo
通过在 sudoers.d 主目录和 /etc/passwd、/etc/shadow 文件中列出用户来验证步骤 3。 如果有具有 sudo 权限的用户,则会在此处列出这些用户。
sudo ls /mnt/dev/$imagedevice/etc/sudoers.d sudo cat /mnt/dev/$imagedevice/etc/passwd sudo cat /mnt/dev/$imagedevice/etc/shadow
删除 sudo 权限:使用 deluser 命令删除用户的 sudo 权限,
sudo chroot /mnt/dev/$imagedevice/ deluser -r [sudo_username]
重复步骤 4 以验证用户是否对 vhd 没有 sudo 权限。
卸载映像。
umount /mnt/dev/$imagedevice
准备的映像不包括可用于创建机密 VM 的任何 sudo 用户。
按照步骤 为 Azure 机密 VM 创建自定义映像以创建 Azure 机密 VM。 在执行 azcopy 时,在为 Azure 机密 VM 创建自定义映像的步骤 4 中使用无管理员映像,其余步骤保持不变。