22.4. LUKS2를 사용하여 블록 장치의 기존 데이터 암호화
LUKS2 형식을 사용하여 아직 암호화되지 않은 장치에서 기존 데이터를 암호화할 수 있습니다. 새 LUKS 헤더가 장치의 헤드에 저장됩니다.
사전 요구 사항
- 블록 장치에는 파일 시스템이 있습니다.
데이터를 백업했습니다.
주의하드웨어, 커널 또는 사람의 오류로 인해 암호화 프로세스 중에 데이터가 손실될 수 있습니다. 데이터 암호화를 시작하기 전에 신뢰할 수 있는 백업이 있는지 확인합니다.
절차
암호화하려는 장치에서 모든 파일 시스템을 마운트 해제합니다. 예를 들면 다음과 같습니다.
# umount /dev/mapper/vg00-lv00
LUKS 헤더 저장에 사용 가능한 공간을 만듭니다. 시나리오에 맞는 다음 옵션 중 하나를 사용합니다.
논리 볼륨을 암호화하는 경우 파일 시스템의 크기를 조정하지 않고 논리 볼륨을 확장할 수 있습니다. 예를 들면 다음과 같습니다.
# lvextend -L+32M /dev/mapper/vg00-lv00
-
parted
와 같은 파티션 관리 도구를 사용하여 파티션을 확장하십시오. -
장치의 파일 시스템을 축소합니다. ext
2, ext3 또는 ext4 파일 시스템에 resize2fs
유틸리티를 사용할 수 있습니다. XFS 파일 시스템을 축소할 수 없습니다.
암호화를 초기화합니다.
# cryptsetup reencrypt --encrypt --init-only --reduce-device-size 32M /dev/mapper/vg00-lv00 lv00_encrypted /dev/mapper/lv00_encrypted is now active and ready for online encryption.
장치를 마운트합니다.
# mount /dev/mapper/lv00_encrypted /mnt/lv00_encrypted
/etc/crypttab
파일에 영구 매핑 항목을 추가합니다.luksUUID
를 찾습니다.# cryptsetup luksUUID /dev/mapper/vg00-lv00 a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325
선택한 텍스트 편집기에서
/etc/crypttab
을 열고 이 파일에 장치를 추가합니다.$ vi /etc/crypttab lv00_encrypted UUID=a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325 none
a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325 를 장치의
luksUUID
로 바꿉니다.dracut
을 사용하여 initramfs 새로 고침 :$ dracut -f --regenerate-all
영구 마운트 항목을
/etc/fstab
파일에 추가합니다.활성 LUKS 블록 장치의 파일 시스템의 UUID를 찾습니다.
$ blkid -p /dev/mapper/lv00_encrypted /dev/mapper/lv00-encrypted: UUID="37bc2492-d8fa-4969-9d9b-bb64d3685aa9" BLOCK_SIZE="4096" TYPE="xfs" USAGE="filesystem"
선택한 텍스트 편집기에서
/etc/fstab
를 열고 이 파일에 장치를 추가합니다. 예를 들면 다음과 같습니다.$ vi /etc/fstab UUID=37bc2492-d8fa-4969-9d9b-bb64d3685aa9 /home auto rw,user,auto 0
37bc2492-d8fa-4969-9d9b-bb64d3685aa9 를 파일 시스템의 UUID로 바꿉니다.
온라인 암호화를 다시 시작하십시오.
# cryptsetup reencrypt --resume-only /dev/mapper/vg00-lv00 Enter passphrase for /dev/mapper/vg00-lv00: Auto-detected active dm device 'lv00_encrypted' for data device /dev/mapper/vg00-lv00. Finished, time 00:31.130, 10272 MiB written, speed 330.0 MiB/s
검증
기존 데이터가 암호화되었는지 확인합니다.
# cryptsetup luksDump /dev/mapper/vg00-lv00 LUKS header information Version: 2 Epoch: 4 Metadata area: 16384 [bytes] Keyslots area: 16744448 [bytes] UUID: a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325 Label: (no label) Subsystem: (no subsystem) Flags: (no flags) Data segments: 0: crypt offset: 33554432 [bytes] length: (whole device) cipher: aes-xts-plain64 [...]
암호화된 빈 블록 장치의 상태를 확인합니다.
# cryptsetup status lv00_encrypted /dev/mapper/lv00_encrypted is active and is in use. type: LUKS2 cipher: aes-xts-plain64 keysize: 512 bits key location: keyring device: /dev/mapper/vg00-lv00
추가 리소스
-
cryptsetup(8)
,cryptsetup-reencrypt(8)
,lvextend(8)
,resize2fs(8)
및parted(8)
도움말 페이지