IBM Cloud Docs
RHEL에서 LUKS로 전체 디스크 암호화 수행

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® 호스트에 연결하는 방법에 대한 자세한 정보는 Linux®에서 스토리지 연결의 내용을 참조하십시오.

모든 새 Block Storage for Classic 는 저장 시 제공자 관리 암호화를 사용하여 자동으로 프로비저닝됩니다. 자세한 정보는 데이터 제공자 관리 저장 시 암호화 보안을 참조하십시오.

LUKS가 수행하는 작업

  • LUKS는 전체 블록 디바이스를 암호화하므로 이동식 스토리지 매체 또는 노트북 디스크 드라이브와 같은 모바일 디바이스의 컨텐츠를 보호하는 데 적합합니다.
  • 암호화된 블록 디바이스의 기본 컨텐츠는 스왑 디바이스 암호화에 유용한 임의의 컨텐츠입니다. 암호화는 데이터 스토리지에 대해 특수하게 형식화된 블록 디바이스를 사용하는 특정 데이터베이스에도 유용할 수 있습니다.
  • LUKS는 기존 디바이스 맵퍼 커널 서브시스템을 사용합니다.
  • LUKS는 사전 첨부로부터 보호하는 비밀번호 문구 강화를 제공합니다.
  • LUKS에는 여러 개의 키 슬롯이 있으므로 사용자가 백업 키 또는 비밀번호 문구를 추가할 수 있습니다.

LUKS가 수행하지 않는 작업

  • LUKS는 많은 (9개이상) 사용자가 동일한 장치에 대한 고유 액세스 키를 가지고 있어야 하는 응용프로그램을 허용하지 않습니다.
  • LUKS는 파일 레벨 암호화가 필요한 애플리케이션에서 작동하지 않습니다. 자세한 정보는 RHEL 보안 안내서를 참조하십시오.

Endurance Block Storage for Classic를 사용한 LUKS 암호화 볼륨 설정

데이터 암호화 프로세스는 잠재적으로 성능에 영향을 줄 수 있는 호스트의 로드를 생성합니다.

  1. 쉘 프롬프트에서 루트로 다음 명령을 입력하여 필요한 패키지를 설치하십시오.

    yum install cryptsetup-luks
    
  2. 디스크 ID를 가져오십시오.

    fdisk –l | grep /dev/mapper
    
  3. 목록에서 볼륨을 찾으십시오.

  4. 블록 디바이스를 암호화하십시오.

    1. 이 명령을 통해 볼륨을 초기화하고 비밀번호 문구를 설정할 수 있습니다.

      cryptsetup -y -v luksFormat /dev/mapper/3600a0980383034685624466470446564
      
    2. YES (모두 대문자) 로 응답하십시오.

    3. 이제 디바이스는 암호화된 볼륨으로 표시됩니다.

      $ blkid | grep LUKS
      /dev/mapper/3600a0980383034685624466470446564: UUID="46301dd4-035a-4649-9d56-ec970ceebe01" TYPE="crypto_LUKS"
      
  5. 볼륨을 열고 맵핑을 작성하십시오.

    cryptsetup luksOpen /dev/mapper/3600a0980383034685624466470446564 cryptData
    
  6. 비밀번호 문구를 입력하십시오.

  7. 맵핑을 확인하고 암호화된 볼륨의 상태를 보십시오.

    $ 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
    
  8. 암호화된 디바이스의 /dev/mapper/cryptData에 랜덤 데이터를 기록하십시오. 이 조치는 외부에서 이를 무작위 데이터로 간주하도록 합니다. 즉, 사용 패턴이 노출되지 않도록 보호됩니다. 이 단계는 시간이 다소 걸릴 수 있습니다.

    shred -v -n1 /dev/mapper/cryptData
    
  9. 볼륨을 포맷하십시오.

    mkfs.ext4 /dev/mapper/cryptData
    
  10. 볼륨을 마운트하십시오.

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