RHEL에서 LUKS로 전체 디스크 암호화 수행
LUKS(Linux® Unified Key Setup-on-disk-format)를 사용하여 RHEL 서버에서 파티션을 암호화할 수 있으며, 이는 모바일 컴퓨터 및 이동식 매체를 사용하는 경우에 중요합니다. LUKS는 파티션의 대량 암호화에 사용되는 메인 키를 복호화하기 위해 여러 개의 사용자 키를 허용합니다. 다음 지시사항은 RHEL 버전 RHEL6 이상에 적용 가능합니다.
이 단계에서는 서버가 형식화되지 않았거나 마운트되지 않았으며 암호화되지 않은 새 IBM Cloud® Block Storage for Classic 볼륨에 액세스할 수 있는 것으로 가정합니다. 연결에 대한 자세한 내용은 Block Storage for Classic 에 Linux® 호스트인 경우 다음 항목 중 하나를 참조하세요.
모든 새 Block Storage for Classic 는 저장 시 제공자 관리 암호화를 사용하여 자동으로 프로비저닝됩니다. 자세한 정보는 데이터 제공자 관리 저장 시 암호화 보안을 참조하십시오.
LUKS가 수행하는 작업
- LUKS는 전체 블록 장치를 암호화하므로 이동식 저장 매체나 노트북 디스크 드라이브와 같은 모바일 장치의 내용을 보호하는 데 적합합니다.
- 암호화된 블록 디바이스의 기본 컨텐츠는 스왑 디바이스 암호화에 유용한 임의의 컨텐츠입니다. 암호화는 데이터 스토리지에 대해 특수하게 형식화된 블록 디바이스를 사용하는 특정 데이터베이스에도 유용할 수 있습니다.
- LUKS는 기존의 장치 매퍼 커널 서브시스템을 사용합니다.
- LUKS는 사전 공격으로부터 보호하는 암호 강화 기능을 제공합니다.
- LUKS에는 여러 개의 키 슬롯이 있으므로 사용자가 백업 키 또는 비밀번호 문구를 추가할 수 있습니다.
LUKS가 수행하지 않는 작업
- LUKS는 많은 사용자(8명 이상)가 동일한 장치에 대해 서로 다른 액세스 키를 필요로 하는 애플리케이션을 허용하지 않습니다.
- LUKS는 파일 레벨 암호화가 필요한 애플리케이션에서 작동하지 않습니다. 더 자세한 정보는 RHEL 보안 가이드를 참고하세요.
Endurance Block Storage for Classic를 사용한 LUKS 암호화 볼륨 설정
데이터 암호화 프로세스는 잠재적으로 성능에 영향을 줄 수 있는 호스트의 로드를 생성합니다.
-
쉘 프롬프트에서 루트로 다음 명령을 입력하여 필요한 패키지를 설치하십시오.
yum install cryptsetup-luks
-
디스크 ID를 가져오십시오.
fdisk –l | grep /dev/mapper
-
목록에서 볼륨을 찾으십시오.
-
블록 디바이스를 암호화하십시오.
-
이 명령을 통해 볼륨을 초기화하고 비밀번호 문구를 설정할 수 있습니다.
cryptsetup -y -v luksFormat /dev/mapper/3600a0980383034685624466470446564
-
YES
(모두 대문자)로 응답하십시오. -
이제 디바이스는 암호화된 볼륨으로 표시됩니다.
$ blkid | grep LUKS /dev/mapper/3600a0980383034685624466470446564: UUID="46301dd4-035a-4649-9d56-ec970ceebe01" TYPE="crypto_LUKS"
-
-
볼륨을 열고 맵핑을 작성하십시오.
cryptsetup luksOpen /dev/mapper/3600a0980383034685624466470446564 cryptData
-
비밀번호 문구를 입력하십시오.
-
매핑을 확인하고 암호화된 볼륨의 상태를 확인합니다.
$ cryptsetup -v status cryptData /dev/mapper/cryptData is active. type: LUKS1 cipher: aes-cbc-essiv:sha256 keysize: 256 bits device: /dev/mapper/3600a0980383034685624466470446564 offset: 4096 sectors size: 41938944 sectors mode: read/write Command successful
-
암호화된 디바이스의
/dev/mapper/cryptData
에 랜덤 데이터를 기록하십시오. 이 작업은 외부 세계가 이것을 무작위 데이터로 인식하도록 하여 사용 패턴이 공개되지 않도록 보호합니다. 이 단계는 시간이 다소 걸릴 수 있습니다.shred -v -n1 /dev/mapper/cryptData
-
볼륨을 포맷하십시오.
mkfs.ext4 /dev/mapper/cryptData
-
볼륨을 마운트하십시오.
mkdir /cryptData
mount /dev/mapper/cryptData /cryptData
df -H /cryptData
암호화된 볼륨을 안전하게 마운트 해제 및 종료
umount /cryptData
cryptsetup luksClose cryptData
기존 LUKS 암호화된 패턴을 다시 마운트 및 마운트
$ cryptsetup luksOpen /dev/mapper/3600a0980383034685624466470446564 cryptData
Enter the password previously provided.
$ mount /dev/mapper/cryptData /cryptData
$ df -H /cryptData
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdb 202:16 0 2G 0 disk
└─xvdb1 202:17 0 2G 0 part [SWAP]
xvda 202:0 0 25G 0 disk
├─xvda1 202:1 0 256M 0 part /boot
└─xvda2 202:2 0 24.8G 0 part /
sda 8:0 0 20G 0 disk
└─3600a0980383034685624466470446564 (dm-0) 253:0 0 20G 0 mpath
└─cryptData (dm-1) 253:1 0 20G 0 crypt /cryptData
sdb 8:16 0 20G 0 disk
└─3600a0980383034685624466470446564 (dm-0) 253:0 0 20G 0 mpath
└─cryptData (dm-1) 253:1 0 20G 0 crypt /cryptData