다음을 통해 공유


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. vhd 파일 시스템에 Chroot하여 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단계에서 관리자 기능이 없는 이미지를 사용하고 나머지 단계는 동일하게 유지됩니다.