LUKS 및 루프 장치

LUKS 및 루프 장치

저는 LUKS/dm-crypt/cryptsetup, 특히 암호화된 파일 컨테이너를 생성하는 방법에 대한 많은 튜토리얼을 읽었습니다.

첫 번째 단계는 dd.

그런 다음 일부 튜토리얼에서는 파일을 /dev/loop0루프 장치에 매핑하고 포맷하며, 다른 튜토리얼에서는 루프 장치에 매핑하지 않고 파일을 직접 포맷합니다.

내 질문: 루프 장치 단계가 필요합니까? 차이점은 무엇입니까?

답변1

dd또는 fallocate(또는 head기타 몇 가지 도구)을 사용하여 컨테이너 역할을 할 파일을 만들 수 있습니다. 그런 다음 Vincent Yu가 말했듯 cryptsetup이 루프 설정/해체를 처리할 수 있습니다.

fallocate -l 100M mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup -y luksFormat mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup luksOpen mypath/filecontainer filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo mkfs -t ext4 /dev/mapper/filecontainer
sync
sudo cryptsetup luksClose filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script

디버그 출력에서 ​​항목 에 대해 sudo losetup을 기록해 둡니다 . 너AUTOCLEAR = 1filecontainer~할 수 있었다대신 에 열광 loopdev=$(sudo losetup -f); mount -o loop <etc>하지만 cryptsetup처리하도록 놔두는 것은방법더 좋아.

cryptsetup luksOpen containerfile mappedname핵심은 먼저 기본적으로 마운트되도록 하는 것입니다 /dev/mapper/mappedname(다음으로 시작하는 전체 경로를 제공하면 /대신 거기에 마운트될 것이라고 믿습니다. 그런 다음 /dev/mapper/mappedname대상을 포맷하고 filecontainer그렇지 않으면 암호화 엔진을 우회하고 암호화되지 않은 루프백 파일을 생성하게 됩니다.

답변2

루프 장치를 직접 관리하지 않는 경우 에서는 cryptsetup자동으로 루프 장치를 설정하고 더 이상 필요하지 않을 때 닫습니다. 따라서 둘 사이에는 차이가 없습니다. cryptsetup항상 루프 장치에서 작동합니다. 보다 man cryptsetup:

루프백 장치 사용에 대한 참고 사항

Cryptsetup은 일반적으로 블록 장치(디스크 파티션 또는 LVM 볼륨)에서 직접 사용됩니다. 그러나 장치 인수가 파일인 경우 cryptsetup은 루프백 장치를 할당하고 이를 이 파일에 매핑하려고 시도합니다. 이 모드에는 루프 자동 지우기 플래그(루프 장치가 마지막 닫을 때 자동으로 지워짐)를 지원하는 Linux 커널 2.6.25 이상이 필요합니다. 물론, 언제든지 파일을 루프 장치에 수동으로 매핑할 수 있습니다. 예를 보려면 cryptsetup FAQ를 참조하세요.

장치 매핑이 활성화되면 상태 명령 출력에서 ​​루프 백업 파일을 볼 수 있습니다. losstup(8)도 참조하세요.

관련 정보