Debian 기반 운영 체제에서 암호화 비밀번호를 두 번 묻는 메시지가 표시되지 않도록 방지

Debian 기반 운영 체제에서 암호화 비밀번호를 두 번 묻는 메시지가 표시되지 않도록 방지

내 친구는 완전히 암호화된 디스크(LVM을 사용하는 /와 동일한 파티션에 /boot 포함)에서 systemd 없이 데비안을 실행하고 있습니다. 부팅할 때 암호화 비밀번호를 묻는 메시지가 두 번 표시됩니다. 한 번은 grub용이고 한 번은 커널용입니다. 목표는 그녀에게 단 한 번만 메시지를 표시하는 것입니다.

내가 하나 찾았어이 가이드Arch 기반 GNU/Linux의 경우 이 문제를 해결한다고 주장합니다. 하지만 패키지 중 적어도 하나가 약간 다르기 때문에 Debian 기반 GNU/Linux에서는 작동하지 않습니다. 이 가이드의 11장에서는 드라이브 잠금이 해제된 후 커널에서 사용할 수 있는 키 파일을 만드는 방법을 설명합니다. 이렇게 하면 사용자에게 메시지가 한 번 표시됩니다. 이 단계를 Debian 기반 배포판으로 어떻게 변환합니까? 지침은 다음과 같습니다.

가이드

시작하고 루트 또는 사용자로 로그인하십시오. 그런 다음 키 파일을 생성합니다.

# dd bs=512 count=4 if=/dev/urandom of=/etc/mykeyfile iflag=fullblock

LUKS 볼륨에 삽입합니다.

# cryptsetup luksAddKey /dev/sdX /etc/mykeyfile

...메시지가 나타나면 LUKS 비밀번호를 입력하세요. /etc/mkinitcpio.confFILES 배열에 키를 포함하도록 편집합니다 .

FILES="/etc/mykeyfile"

initramfs 이미지를 처음부터 생성합니다.

# mkinitcpio -p linux-libre
# mkinitcpio -p linux-libre-lts
# mkinitcpio -p linux-libre-hardened

grub.cfg의 커널(리눅스) 줄에 다음을 추가하세요. 이제 무엇을 해야 할지 아실 겁니다. 위를 보세요! --예를 들어, root=/dev/matrix/rootvol이 가이드를 따른 경우:

# cryptkey=rootfs:/etc/mykeyfile

마지막으로, 루트 사용자라도 키 파일에 대한 읽기 액세스를 거부합니다.

# chmod 000 /etc/mykeyfile

답변1

적어도 Debian 11에서는 cryptsetup-initramfs패키지가 설치되어 있으면 해당 /usr/share/initramfs-tools/hooks/cryptroot스크립트가 파일을 구문 분석 /etc/crypttab하고 스크립트를 올바르게 읽으면 루트 파일 시스템이 컨테이너의 키 파일로 잠금 해제되어야 하는 암호화되어 있는지 자동으로 감지합니다. 키 파일은 initramfs에 자동으로 포함됩니다.

따라서 해당 단계 이후 Debian 11의 동일한 단계는 패키지가 설치되었는지 cryptsetup luksAddKey확인하고 루트가 아닌 파일 시스템에 대해 LUKS 컨테이너를 설정하는 것과 마찬가지로 루트 파일 시스템에 대한 줄에 키 파일 정의를 추가하는 것입니다.cryptroot-initramfs/etc/crypttab

예제와 동일한 이름을 사용하면 다음 crypttab줄이 됩니다.

sdX_crypt /dev/sdX /etc/mykeyfile luks

또는 견고성을 위해 LUKS 볼륨의 UUID를 사용해야 합니다.

sdX_crypt UUID=... /etc/mykeyfile luks

그런 다음 update-initramfs -u -k all.

sdX_crypt암호화가 잠금 해제되면 암호화된 콘텐츠에 액세스하는 데 사용되는 매핑된 장치의 이름입니다 . 데비안 설치 프로그램은 기본적으로 암호화된 장치의 기본 이름에 접미사를 추가하여 매핑된 장치 이름을 생성 _crypt하지만 사용자 정의할 수도 있다고 생각합니다.

친구가 LVM을 사용하므로 루트 및 파일 시스템에 대한 LVM 장치 열을 실행 lsblk하고 살펴 봐야 합니다 . 이러한 이름은 형식입니다 . 이 섹션이 필요한 다음 루트로 실행하고 지정된 VG가 포함된 PV의 이름을 찾습니다. 그것 은 비슷한 것이어야 합니다 .NAME/bootVGname-LVnameVGnamepvs/dev/mapper/sdX_crypt

후크 스크립트가 실행됩니다 update-initramfs. 여기에서 정보를 얻고 /etc/crypttab키 파일과 필요한 스크립트 조각을 자동으로 추가하여 이를 initramfs에 사용합니다.

부팅 옵션을 추가할 필요가 없습니다. 자동으로 생성된 initramfs 스크립트에 필요한 모든 매개변수가 포함됩니다.

이것댓글에 올려주신 링크물론 작동하지만 실제로 사용해야 합니다.crypttab(5)배포판의 매뉴얼 페이지가장 정확한 정보를 얻으실 수 있습니다.

/etc/mykeyfile보호 수준 을 ~ 이하 로 설정하는 chmod 600것이 좋습니다 . 설정이 도움이 될지는 모르겠지만 chmod 000시도해 볼 수 있습니다. 최악의 경우에는 다음 부팅 시 암호화 비밀번호를 두 번 입력한 다음 권한을 다시 조정하고 update-initramfs -u -k all다시 실행하면 됩니다.

관련 정보