내 Debian Linux 시스템에서는 설치 중에 디스크 암호화(일반 Debian 설치 중에 제공되는 암호화)를 사용하기로 결정했습니다. 시스템이 부팅될 때 암호를 입력해야 하며 그러면 "실제" 부팅이 시작됩니다.
누군가 이 암호화가 어떻게 수행되는지 설명할 수 있습니까? 파일 시스템 레이아웃 이전에 발생합니까, 아니면 이후에 발생합니까? 디스크 암호화를 위해 Linux에서 사용 가능한 모든 파일 시스템을 사용할 수 있습니까?
이것/etc/mtab/Linux에서 사용하는 것보다 더 복잡한 것은 디스크 암호화와 관련이 있다고 생각하지만 실제로는 확실하지 않습니다. 이것은 (내 생각에) 나와 관련된 콘텐츠입니다./etc/mtab:
/dev/sda1 /boot ext2 rw,relatime,errors=continue 0
/dev/mapper/archon-root / ext4 rw,noatime,errors=remount-ro,user_xattr,commit=300,barrier=1,data=ordered 0 0
rootfs / rootfs rw 0 0
/boot가 ext2인 이유와 /가 ext-4인 이유를 정말로 이해하지 못합니다./dev/매퍼.
/boot 자체가 ext4를 사용할 수 있습니까?
ZFS를 사용할 수 있거나 사용 중이며 여전히 암호화를 제공합니까?
답변1
/boot
암호화되지 않았습니다(BIOS는 이를 해독할 수 없습니다...). ext4일 수도 있지만 꼭 필요한 것은 아닙니다. 일반적으로 작성되지 않습니다. BIOS는 MBR에서 GRUB를 읽고 GRUB는 /boot에서 커널 및 initramfs의 나머지 부분을 읽습니다. initramfs는 비밀번호를 묻는 메시지를 표시합니다. (아마도 cryptsetup
LUKS 헤더를 사용하고 있을 것입니다.)
암호화는 하나의 레이어에서 수행됩니다.다음과 같은파일 시스템. dm-crypt(cryptsetup에서 사용하는 저수준 커널 백엔드)라는 것을 사용하고 있습니다. 여기서 "dm"은 "Device Mapper"를 나타냅니다. 또한 커널 장치 매퍼 계층에 의해 구현되는 LVM을 사용하는 것 같습니다. 기본적으로 다음과 같은 스토리지 스택이 있습니다.
1. /dev/sda2 (guessing it's 2, could be any partition other than 1)
2. /dev/mapper/sda2_crypt (dm-crypt layer; used as a PV for VG archon)
3. LVM (volume group archon)
4. /dev/mapper/archon-root (logical volume in group archon)
5. ext4
명령을 사용하여 이러한 항목을 모두 찾을 수 있습니다 dmsetup
. 예를 들어 dmsetup ls
목록에 어떤 Device Mapper 장치가 있는지 알려줄 것입니다. dmsetup info
일부 세부 사항이 제공되고 dmsetup table
매핑 계층에서 수행되는 변환에 대한 기술적 세부 사항이 제공됩니다.
작동 방식은 dm-crypt 레이어(위의 #2)가 암호화를 수행하여 데이터를 "매핑"하는 것입니다. 따라서 /dev/mapper/sda2_crypt에 기록된 모든 내용은 /dev/sda2(실제 하드 드라이브)로 전달되기 전에 암호화됩니다. /dev/sda2에서 오는 모든 것은 /dev/mapper/sda2_crypt로 나가기 전에 해독됩니다.
따라서 모든 상위 계층은 이 암호화를 투명하게 사용합니다. 이를 사용하는 첫 번째 상위 계층은 LVM입니다. LVM을 사용하여 디스크를 논리 볼륨으로 나누고 있습니다. 루트 파일 시스템에 대해 (적어도) root라는 파일 시스템이 있습니다. 이는 일반 블록 장치이므로 다른 장치처럼 사용할 수 있습니다. 원시 데이터까지 포함하여 원하는 파일 시스템을 거기에 넣을 수 있습니다. 데이터는 암호화되어 전달됩니다.
알아야 할 사항(맨페이지 등 확인):
/etc/crypttab
- LVM(일부 중요한 명령:
lvs
,pvs
,lvcreate
,lvextend
) cryptsetup
답변2
Debian 설정 및 기타 많은 배포판에서는 다음을 사용합니다.크립트 설정/LUKS전체 디스크 암호화.
전체 디스크 암호화는 온디스크 파티션을 암호화하고 암호화/암호 해독을 캡슐화하여 암호화된 파티션이 시스템의 나머지 부분에 일반 블록 수준 장치로 표시되도록 합니다. 그런 다음 블록 장치를 원하는 일반 파일 시스템(ext2/3/4, xfs, jfs, btrfs)으로 포맷할 수 있습니다.커널 3.2 이상). 파일 시스템은 암호화되지 않은 데이터를 정상적으로 디스크에 기록합니다. 그런 다음 LUKS 하위 시스템은 물리적 장치에 쓰기 전에 이 데이터를 암호화합니다. 역방향 읽기. 이는 파일 시스템, 애플리케이션 및 사용자에게 투명합니다. 실제로 그러한 디스크에 기록된 모든 내용은 암호화됩니다. 디스크를 외부에서 검사해 보면 임의의 정크가 있는 것을 볼 수 있습니다.
물리 분할은 /dev/mapper/<a unique name here>
의 장치 에 매핑됩니다 /etc/crypttab
. 귀하의 암호문은 다음과 같습니다:
archon-root /dev/sda2 none
실제 파티션을 암호화하고 /dev/sda2
암호화된 장치에 매핑합니다 /dev/mapper/archon-root
. 그러면 당신의 /etc/fstab
유언장이 설치될 것입니다매핑된장비 또는 기타 필요한 것 /dev/mapper/archon-root
./
Solaris의 ZFS에는 내장된 암호화가 포함되어 있습니다. Linux에서는 그렇지 않습니다. zfs를 기대하고 있어요~해야 한다Cryptstup/LUKS 파티션에서 작동하지만 이것이 문제를 드러낼지는 모르겠습니다. 완전한 ZFS/ZRaid 보호를 받으려면 설정이 확실히 어려울 수 있습니다. 다른 파일 시스템은 이 설정에서 잘 작동합니다. 사실 그들은 그것을 전혀 모르고 있습니다. ZFS는 대부분의(btrfs 제외) 다른 파일 시스템보다 기본 디스크에 대해 훨씬 더 많은 작업을 수행합니다.
부팅 파티션은 ext4여야 합니다. 그러나 부팅 파티션은 부트로더(grub)에서 읽어야 하고 (내가 아는 한) 암호화 지원이 없기 때문에 Cryptsetup/LUKS를 사용하여 암호화할 수 없습니다. 커널이 로드되어 init 프로세스를 시작하면 암호화된 장치를 열 때 비밀번호를 묻는 메시지가 표시됩니다.