你当前正在访问 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 权限的任何服务都有可能提升特权。

先决条件

删除 sudo 用户并准备通用 Linux 映像

建议的解决方案在不使用 sudo 用户的情况下生成 Linux 映像。

创建删除 sudo 用户的通用映像的步骤如下:

  1. 下载 Ubuntu 映像。 为 Azure 机密 VM 创建自定义映像

  2. 装载映像

    可通过多种方式来 附加磁盘,该示例使用循环设备来装载映像。 它可以是附加磁盘,也可以是装载映像的循环设备

    $imagedevice是包含映像的设备上的根文件系统分区。

    mount /dev/$imagedevice /mnt/dev/$imagedevice
    

    此过程通常用于访问和使用磁盘映像。 在这里,它用于删除 Ubuntu 映像上的 sudo 用户。

  3. Chroot 进入 vhd 文件系统以运行以下命令,其中列出了 sudo 组下的用户。

    sudo chroot /mnt/dev/$imagedevice/ getent group sudo
    
  4. 通过在 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
    
  5. 删除 sudo 权限:使用 deluser 命令删除用户的 sudo 权限,

    sudo chroot /mnt/dev/$imagedevice/ deluser -r [sudo_username]
    
  6. 重复步骤 4 以验证用户是否对 vhd 没有 sudo 权限。

  7. 卸载映像。

    umount /mnt/dev/$imagedevice
    

准备的映像不包括可用于创建机密 VM 的任何 sudo 用户。

按照步骤 为 Azure 机密 VM 创建自定义映像以创建 Azure 机密 VM。 在执行 azcopy 时,在为 Azure 机密 VM 创建自定义映像的步骤 4 中使用无管理员映像,其余步骤保持不变。