18.13. LUKS를 사용하여 블록 장치 암호화


디스크 암호화를 사용하면 블록 장치의 데이터를 암호화하여 보호할 수 있습니다. 장치의 암호 해독된 콘텐츠에 액세스하려면 암호 또는 키를 인증으로 입력합니다. 이는 시스템에서 물리적으로 제거된 경우에도 장치의 콘텐츠를 보호하는 데 도움이 되므로 모바일 컴퓨터와 이동식 미디어에 중요합니다. LUKS 형식은 Red Hat Enterprise Linux에서 블록 장치 암호화의 기본 구현입니다.

18.13.1. LUKS 디스크 암호화

Linux Unified Key Setup-on-disk-format(LUKS)은 암호화된 장치 관리를 간소화하는 툴 세트를 제공합니다. LUKS를 사용하면 블록 장치를 암호화하고 여러 사용자 키를 활성화하여 마스터 키를 해독할 수 있습니다. 파티션의 대량 암호화의 경우 이 마스터 키를 사용합니다.

Red Hat Enterprise Linux는 LUKS를 사용하여 블록 장치 암호화를 수행합니다. 기본적으로 블록 장치를 암호화하는 옵션은 설치 중에 선택되지 않습니다. 디스크를 암호화할 옵션을 선택하면 시스템을 부팅할 때마다 시스템에서 암호를 입력하라는 메시지가 표시됩니다. 이 암호는 파티션을 해독하는 대량 암호화 키의 잠금을 해제합니다. 기본 파티션 테이블을 수정하려면 암호화할 파티션을 선택할 수 있습니다. 이는 파티션 테이블 설정에서 설정됩니다.

암호화

LUKS에 사용되는 기본 암호는 aes-xts-plain64 입니다. LUKS의 기본 키 크기는 512비트입니다. Anaconda XTS 모드가 있는 LUKS의 기본 키 크기는 512비트입니다. 다음은 사용 가능한 암호입니다.

  • AES(Advanced Encryption Standard)
  • Twofish
  • serpent

LUKS에서 수행하는 작업

  • LUKS는 전체 블록 장치를 암호화하므로 이동식 스토리지 미디어 또는 랩톱 디스크 드라이브와 같은 모바일 장치의 콘텐츠를 보호하는 데 적합합니다.
  • 암호화된 블록 장치의 기본 내용은 임의이므로 스왑 장치를 암호화하는 데 유용합니다. 이는 데이터 저장을 위해 특별히 포맷된 블록 장치를 사용하는 특정 데이터베이스에서도 유용할 수 있습니다.
  • LUKS는 기존 장치 매퍼 커널 하위 시스템을 사용합니다.
  • LUKS는 사전 공격으로부터 보호하는 암호 강화를 제공합니다.
  • LUKS 장치에는 여러 개의 키 슬롯이 포함되어 있으므로 백업 키 또는 암호를 추가할 수 있습니다.
중요

다음 시나리오에는 LUKS를 사용하지 않는 것이 좋습니다.

  • LUKS와 같은 디스크 암호화 솔루션은 시스템이 꺼져 있는 경우에만 데이터를 보호합니다. 시스템이 있고 LUKS가 디스크의 암호를 해독하면 해당 디스크의 파일을 액세스할 수 있는 모든 사용자가 사용할 수 있습니다.
  • 여러 사용자가 동일한 장치에 대한 고유한 액세스 키를 보유해야 하는 시나리오. LUKS1 형식은 8개의 키 슬롯을 제공하며 LUKS2는 최대 32개의 키 슬롯을 제공합니다.
  • 파일 수준 암호화가 필요한 애플리케이션입니다.

18.13.2. RHEL의 LUKS 버전

Red Hat Enterprise Linux에서 LUKS 암호화의 기본 형식은 LUKS2입니다. 이전 LUKS1 형식은 완전히 지원되며 이전 Red Hat Enterprise Linux 릴리스와 호환되는 형식으로 제공됩니다. LUKS2 재암호화는 LUKS1 재암호화에 비해 더 강력하고 안전한 것으로 간주됩니다.

LUKS2 형식을 사용하면 바이너리 구조를 수정할 필요 없이 다양한 부분을 나중에 업데이트할 수 있습니다. 내부적으로는 메타데이터에 JSON 텍스트 형식을 사용하고, 메타데이터의 중복성을 제공하고, 메타데이터 손상을 감지하고, 메타데이터 복사본에서 자동으로 복구합니다.

중요

LUKS2 및 LUKS1은 디스크를 암호화하기 위해 다른 명령을 사용하므로 LUKS1만 지원하는 시스템에서 LUKS2를 사용하지 마십시오. LUKS 버전에 잘못된 명령을 사용하면 데이터가 손실될 수 있습니다.

Expand
표 18.2. LUKS 버전에 따른 암호화 명령
LUKS 버전암호화 명령

LUKS2

cryptsetup 재암호화

LUKS1

cryptsetup-reencrypt

온라인 재암호화

LUKS2 형식은 장치가 사용 중인 동안 암호화된 장치 재암호화를 지원합니다. 예를 들어 다음 작업을 수행하기 위해 장치에서 파일 시스템을 마운트 해제할 필요가 없습니다.

  • 볼륨 키 변경
  • 암호화 알고리즘 변경

    암호화되지 않은 장치를 암호화할 때 파일 시스템을 마운트 해제해야 합니다. 암호화를 간단히 초기화한 후 파일 시스템을 다시 마운트할 수 있습니다.

    LUKS1 형식은 온라인 재암호화 기능을 지원하지 않습니다.

변환

특정 상황에서 LUKS1을 LUKS2로 변환할 수 있습니다. 다음 시나리오에서는 변환이 특히 불가능합니다.

  • LUKS1 장치는 PBD(Policy-Based Decryption) Clevis 솔루션에서 사용하는 것으로 표시됩니다. cryptsetup 툴은 일부 luksmeta 메타데이터가 감지되면 장치를 변환하지 않습니다.
  • 장치가 활성 상태입니다. 변환이 가능하려면 장치가 비활성 상태여야 합니다.

18.13.3. LUKS2 재암호화 중에 데이터 보호 옵션

LUKS2는 재암호화 프로세스 중에 성능 또는 데이터 보호 우선 순위를 지정하는 여러 옵션을 제공합니다. 복원력 옵션에 대해 다음 모드를 제공하며, cryptsetup reencrypt -- resilience resilience-mode /dev/ <device_ID> 명령을 사용하여 이러한 모드를 선택할 수 있습니다. 여기서 < device_ID >를 장치의 ID로 교체할 수 있습니다.

checksum

기본 모드입니다. 데이터 보호 및 성능 균형 유지.

이 모드는 재암호화 영역에 섹터의 개별 체크섬을 저장하므로 복구 프로세스에서 LUKS2에서 다시 암호화한 섹터를 감지할 수 있습니다. 이 모드에서는 블록 장치 섹터 쓰기가 atomic이어야 합니다.

journal
가장 안전한 모드이지만 가장 느린 모드이기도 합니다. 이 모드는 바이너리 영역에 재암호화 영역을 저널링하므로 LUKS2는 데이터를 두 번 씁니다.
none
none 모드는 성능에 우선 순위를 지정하며 데이터 보호를 제공하지 않습니다. 이는 SIGTERM 신호 또는 Ctrl+C 키를 누른 사용자와 같은 안전한 프로세스 종료로부터만 데이터를 보호합니다. 예기치 않은 시스템 오류 또는 애플리케이션 오류로 인해 데이터가 손상될 수 있습니다.

LUKS2 재암호화 프로세스가 강제 종료되면 LUKS2는 다음 방법 중 하나로 복구를 수행할 수 있습니다.

자동

다음 작업 중 하나를 수행하면 다음 LUKS2 장치의 열려 있는 작업 중에 자동 복구 작업이 트리거됩니다.

  • cryptsetup open 명령을 실행합니다.
  • systemd-cryptsetup 명령을 사용하여 장치를 연결합니다.
수동
LUKS2 장치에서 cryptsetup repair /dev/ &lt;device_ID > 명령을 사용하여 다음을 수행합니다.

18.13.4. LUKS2를 사용하여 블록 장치의 기존 데이터 암호화

LUKS2 형식을 사용하여 아직 암호화되지 않은 장치에서 기존 데이터를 암호화할 수 있습니다. 새 LUKS 헤더가 장치의 헤드에 저장됩니다.

사전 요구 사항

  • 블록 장치에는 파일 시스템이 있습니다.
  • 데이터를 백업했습니다.

    주의

    하드웨어, 커널 또는 인적 오류로 인해 암호화 프로세스 중에 데이터가 손실될 수 있습니다. 데이터 암호화를 시작하기 전에 신뢰할 수 있는 백업이 있는지 확인합니다.

절차

  1. 암호화하려는 장치에서 모든 파일 시스템을 마운트 해제합니다. 예를 들면 다음과 같습니다.

    # umount /dev/mapper/vg00-lv00
    Copy to Clipboard Toggle word wrap
  2. LUKS 헤더 저장에 사용 가능한 공간을 만듭니다. 시나리오에 맞는 다음 옵션 중 하나를 사용합니다.

    • 논리 볼륨을 암호화하는 경우 파일 시스템의 크기를 조정하지 않고 논리 볼륨을 확장할 수 있습니다. 예를 들면 다음과 같습니다.

      # lvextend -L+32M /dev/mapper/vg00-lv00
      Copy to Clipboard Toggle word wrap
    • parted 와 같은 파티션 관리 도구를 사용하여 파티션을 확장합니다.
    • 장치의 파일 시스템을 축소합니다. ext 2, ext3 또는 ext4 파일 시스템에 resize2fs 유틸리티를 사용할 수 있습니다. XFS 파일 시스템을 축소할 수 없습니다.
  3. 암호화를 초기화합니다.

    # 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.
    Copy to Clipboard Toggle word wrap
  4. 장치를 마운트합니다.

    # mount /dev/mapper/lv00_encrypted /mnt/lv00_encrypted
    Copy to Clipboard Toggle word wrap
  5. 영구 매핑 항목을 /etc/crypttab 파일에 추가합니다.

    1. luksUUID 찾기:

      # cryptsetup luksUUID /dev/mapper/vg00-lv00
      
      a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325
      Copy to Clipboard Toggle word wrap
    2. 선택한 텍스트 편집기에서 /etc/crypttab 을 열고 이 파일에 장치를 추가합니다.

      $ vi /etc/crypttab
      
      lv00_encrypted UUID=a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325 none
      Copy to Clipboard Toggle word wrap

      a52e2cc9-a5be-47b8-a95d-6bdf4f2d9325 를 장치의 luksUUID 로 교체합니다.

    3. dracut 을 사용하여 initramfs 새로 고침 :

      $ dracut -f --regenerate-all
      Copy to Clipboard Toggle word wrap
  6. /etc/fstab 파일에 영구 마운트 항목을 추가합니다.

    1. 활성 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"
      Copy to Clipboard Toggle word wrap
    2. 선택한 텍스트 편집기에서 /etc/fstab 를 열고 이 파일에 장치를 추가합니다. 예를 들면 다음과 같습니다.

      $ vi /etc/fstab
      
      UUID=37bc2492-d8fa-4969-9d9b-bb64d3685aa9 /home auto rw,user,auto 0
      Copy to Clipboard Toggle word wrap

      37bc2492-d8fa-4969-9d9b-bb64d3685aa9 를 파일 시스템의 UUID로 교체합니다.

  7. 온라인 암호화를 다시 시작합니다.

    # 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
    Copy to Clipboard Toggle word wrap

검증

  1. 기존 데이터가 암호화되었는지 확인합니다.

    # 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
    [...]
    Copy to Clipboard Toggle word wrap
  2. 암호화된 빈 블록 장치의 상태를 확인합니다.

    # 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
    Copy to Clipboard Toggle word wrap

LUKS 헤더를 저장하기 위한 여유 공간을 생성하지 않고 블록 장치에서 기존 데이터를 암호화할 수 있습니다. 헤더는 분리된 위치에 저장되며 추가 보안 계층 역할을 합니다. 절차에서는 LUKS2 암호화 형식을 사용합니다.

사전 요구 사항

  • 블록 장치에는 파일 시스템이 있습니다.
  • 데이터가 백업됩니다.

    주의

    하드웨어, 커널 또는 인적 오류로 인해 암호화 프로세스 중에 데이터가 손실될 수 있습니다. 데이터 암호화를 시작하기 전에 신뢰할 수 있는 백업이 있는지 확인합니다.

프로세스

  1. 장치의 모든 파일 시스템을 마운트 해제합니다. 예를 들면 다음과 같습니다.

    # umount /dev/<nvme0n1p1>
    Copy to Clipboard Toggle word wrap

    & lt;nvme0n1p1 >을 마운트 해제하려는 파티션에 해당하는 장치 식별자로 바꿉니다.

  2. 암호화를 초기화합니다.

    # cryptsetup reencrypt --encrypt --init-only --header </home/header> /dev/<nvme0n1p1> <nvme_encrypted>
    
    WARNING!
    ========
    Header file does not exist, do you want to create it?
    
    Are you sure? (Type 'yes' in capital letters): YES
    Enter passphrase for </home/header>:
    Verify passphrase:
    /dev/mapper/<nvme_encrypted> is now active and ready for online encryption.
    Copy to Clipboard Toggle word wrap

    교체:

    • LUKS 헤더가 분리된 파일 경로가 있는 </home/ header>입니다. LUKS 분리 헤더는 나중에 암호화된 장치의 잠금을 해제하려면 액세스할 수 있어야 합니다.
    • 암호화 후 생성된 장치 매퍼의 이름이 < nvme_encrypted >입니다.
  3. 장치를 마운트합니다.

    # mount /dev/mapper/<nvme_encrypted> /mnt/<nvme_encrypted>
    Copy to Clipboard Toggle word wrap
  4. 영구 매핑 항목을 /etc/crypttab 파일에 추가합니다.

    # <nvme_encrypted> /dev/disk/by-id/<nvme-partition-id> none header=</home/header>
    Copy to Clipboard Toggle word wrap

    & lt;nvme-partition-id&gt;를 NVMe 파티션의 식별자로 바꿉니다.

  5. dracut 을 사용하여 initramfs를 다시 생성 :

    # dracut -f --regenerate-all -v
    Copy to Clipboard Toggle word wrap
  6. /etc/fstab 파일에 영구 마운트 항목을 추가합니다.

    1. 활성 LUKS 블록 장치의 파일 시스템의 UUID를 찾습니다.

      $ blkid -p /dev/mapper/<nvme_encrypted>
      
      /dev/mapper/<nvme_encrypted>: UUID="37bc2492-d8fa-4969-9d9b-bb64d3685aa9" BLOCK_SIZE="4096" TYPE="xfs" USAGE="filesystem"
      Copy to Clipboard Toggle word wrap
    2. 텍스트 편집기에서 /etc/fstab 를 열고 이 파일에 장치를 추가합니다. 예를 들면 다음과 같습니다.

      UUID=<file_system_UUID> /home auto rw,user,auto 0
      Copy to Clipboard Toggle word wrap

      & lt;file_system_UUID >를 이전 단계에서 찾은 파일 시스템의 UUID로 바꿉니다.

  7. 온라인 암호화를 다시 시작합니다.

    # cryptsetup reencrypt --resume-only --header </home/header> /dev/<nvme0n1p1>
    
    Enter passphrase for /dev/<nvme0n1p1>:
    Auto-detected active dm device '<nvme_encrypted>' for data device /dev/<nvme0n1p1>.
    Finished, time 00m51s,   10 GiB written, speed 198.2 MiB/s
    Copy to Clipboard Toggle word wrap

검증

  1. 분리된 헤더와 함께 LUKS2를 사용하여 블록 장치의 기존 데이터가 암호화되었는지 확인합니다.

    # cryptsetup luksDump </home/header>
    
    LUKS header information
    Version:       	2
    Epoch:         	88
    Metadata area: 	16384 [bytes]
    Keyslots area: 	16744448 [bytes]
    UUID:          	c4f5d274-f4c0-41e3-ac36-22a917ab0386
    Label:         	(no label)
    Subsystem:     	(no subsystem)
    Flags:       	(no flags)
    
    Data segments:
      0: crypt
    	offset: 0 [bytes]
    	length: (whole device)
    	cipher: aes-xts-plain64
    	sector: 512 [bytes]
    [...]
    Copy to Clipboard Toggle word wrap
  2. 암호화된 빈 블록 장치의 상태를 확인합니다.

    # cryptsetup status <nvme_encrypted>
    
    /dev/mapper/<nvme_encrypted> is active and is in use.
      type:    LUKS2
      cipher:  aes-xts-plain64
      keysize: 512 bits
      key location: keyring
      device:  /dev/<nvme0n1p1>
    Copy to Clipboard Toggle word wrap

18.13.6. LUKS2를 사용하여 빈 블록 장치 암호화

LUKS2 형식을 사용하여 암호화된 스토리지에 사용할 수 있는 빈 블록 장치를 암호화할 수 있습니다.

사전 요구 사항

  • 빈 블록 장치입니다. lsblk 와 같은 명령을 사용하여 해당 장치에 실제 데이터(예: 파일 시스템)가 없는지 확인할 수 있습니다.

프로세스

  1. 파티션을 암호화된 LUKS 파티션으로 설정합니다.

    # cryptsetup luksFormat /dev/nvme0n1p1
    
    WARNING!
    ========
    This will overwrite data on /dev/nvme0n1p1 irrevocably.
    Are you sure? (Type 'yes' in capital letters): YES
    Enter passphrase for /dev/nvme0n1p1:
    Verify passphrase:
    Copy to Clipboard Toggle word wrap
  2. 암호화된 LUKS 파티션을 엽니다.

    # cryptsetup open /dev/nvme0n1p1 nvme0n1p1_encrypted
    
    Enter passphrase for /dev/nvme0n1p1:
    Copy to Clipboard Toggle word wrap

    이렇게 하면 파티션 잠금을 해제하고 장치 매퍼를 사용하여 새 장치에 매핑됩니다. 암호화된 데이터를 덮어쓰지 않으려면 이 명령은 /dev/mapper/device_mapped_name 경로를 사용하여 장치가 암호화된 장치이고 LUKS를 통해 처리됨을 커널에 알립니다.

  3. 암호화된 데이터를 파티션에 쓸 파일 시스템을 생성합니다. 이 파티션은 장치 매핑된 이름을 통해 액세스해야 합니다.

    # mkfs -t ext4 /dev/mapper/nvme0n1p1_encrypted
    Copy to Clipboard Toggle word wrap
  4. 장치를 마운트합니다.

    # mount /dev/mapper/nvme0n1p1_encrypted mount-point
    Copy to Clipboard Toggle word wrap

검증

  1. 빈 블록 장치가 암호화되었는지 확인합니다.

    # cryptsetup luksDump /dev/nvme0n1p1
    
    LUKS header information
    Version:       	2
    Epoch:         	3
    Metadata area: 	16384 [bytes]
    Keyslots area: 	16744448 [bytes]
    UUID:          	34ce4870-ffdf-467c-9a9e-345a53ed8a25
    Label:         	(no label)
    Subsystem:     	(no subsystem)
    Flags:       	(no flags)
    
    Data segments:
      0: crypt
    	offset: 16777216 [bytes]
    	length: (whole device)
    	cipher: aes-xts-plain64
    	sector: 512 [bytes]
    [...]
    Copy to Clipboard Toggle word wrap
  2. 암호화된 빈 블록 장치의 상태를 확인합니다.

    # cryptsetup status nvme0n1p1_encrypted
    
    /dev/mapper/nvme0n1p1_encrypted is active and is in use.
      type:    LUKS2
      cipher:  aes-xts-plain64
      keysize: 512 bits
      key location: keyring
      device:  /dev/nvme0n1p1
      sector size:  512
      offset:  32768 sectors
      size:    20938752 sectors
      mode:    read/write
    Copy to Clipboard Toggle word wrap

18.13.7. 웹 콘솔에서 LUKS 암호 구성

시스템의 기존 논리 볼륨에 암호화를 추가하려면 볼륨 포맷을 통해서만 이 작업을 수행할 수 있습니다.

사전 요구 사항

  • RHEL 8 웹 콘솔을 설치했습니다.
  • cockpit 서비스를 활성화했습니다.
  • 사용자 계정이 웹 콘솔에 로그인할 수 있습니다.

    자세한 내용은 웹 콘솔 설치 및 활성화를 참조하십시오.

  • cockpit-storaged 패키지가 시스템에 설치됩니다.
  • 암호화 없이 기존 논리 볼륨을 사용할 수 있습니다.

프로세스

  1. RHEL 8 웹 콘솔에 로그인합니다.

    자세한 내용은 웹 콘솔에 로그인 을 참조하십시오.

  2. 패널에서 스토리지를 클릭합니다.
  3. 스토리지 테이블에서 암호화할 스토리지 장치에 대한 메뉴 버튼을 클릭하고 포맷 을 클릭합니다.
  4. 암호화 필드에서 암호화 사양, LUKS1 또는 LUKS2 를 선택합니다.
  5. 새 암호를 설정하고 확인합니다.
  6. 선택 사항: 추가 암호화 옵션을 수정합니다.
  7. 형식 설정 완료.
  8. 형식 을 클릭합니다.

18.13.8. 웹 콘솔에서 LUKS 암호 변경

웹 콘솔의 암호화된 디스크 또는 파티션에서 LUKS 암호를 변경합니다.

사전 요구 사항

  • RHEL 8 웹 콘솔을 설치했습니다.
  • cockpit 서비스를 활성화했습니다.
  • 사용자 계정이 웹 콘솔에 로그인할 수 있습니다.

    자세한 내용은 웹 콘솔 설치 및 활성화를 참조하십시오.

  • cockpit-storaged 패키지가 시스템에 설치됩니다.

프로세스

  1. RHEL 8 웹 콘솔에 로그인합니다.

    자세한 내용은 웹 콘솔에 로그인 을 참조하십시오.

  2. 패널에서 스토리지를 클릭합니다.
  3. 스토리지 테이블에서 암호화된 데이터가 있는 디스크를 선택합니다.
  4. 디스크 페이지에서 Keys 섹션으로 스크롤하여 편집 버튼을 클릭합니다.
  5. 암호 변경 대화 상자 창에서 다음을 수행합니다.

    1. 현재 암호를 입력합니다.
    2. 새 암호를 입력합니다.
    3. 새 암호를 확인합니다.
  6. 저장을 클릭합니다.

18.13.9. 명령줄을 사용하여 LUKS 암호 변경

명령줄을 사용하여 암호화된 디스크 또는 파티션에서 LUKS 암호를 변경합니다. cryptsetup 유틸리티를 사용하면 다양한 구성 옵션 및 기능으로 암호화 프로세스를 제어하고 기존 자동화 워크플로에 통합할 수 있습니다.

사전 요구 사항

  • sudo 를 사용하여 관리 명령을 입력할 수 있는 루트 권한 또는 권한이 있습니다.

프로세스

  1. LUKS 암호화된 장치에서 기존 암호를 변경합니다.

    # cryptsetup luksChangeKey /dev/<device_ID>
    Copy to Clipboard Toggle word wrap

    & lt;device_ID& gt;를 장치 지정자로 바꿉니다(예: sda ).

    여러 개의 키 슬롯이 구성된 경우 작업할 슬롯을 지정할 수 있습니다.

    # cryptsetup luksChangeKey /dev/<device_ID> --key-slot <slot_number>
    Copy to Clipboard Toggle word wrap

    & lt;slot_number >를 수정할 키 슬롯 수로 바꿉니다.

  2. 현재 암호와 새 암호를 삽입합니다.

    Enter passphrase to be changed:
    Enter new passphrase:
    Verify passphrase:
    Copy to Clipboard Toggle word wrap
  3. 새 암호를 확인합니다.

    # cryptsetup --verbose open --test-passphrase /dev/<device_ID>
    Copy to Clipboard Toggle word wrap

검증

  1. 새 암호가 장치의 잠금을 해제할 수 있는지 확인합니다.

    Enter passphrase for /dev/<device_ID>:
    Key slot <slot_number> unlocked.
    Command successful.
    Copy to Clipboard Toggle word wrap

storage 역할을 사용하여 Ansible 플레이북을 실행하여 LUKS로 암호화된 볼륨을 생성하고 구성할 수 있습니다.

사전 요구 사항

프로세스

  1. 중요한 변수를 암호화된 파일에 저장합니다.

    1. 자격 증명 모음을 생성합니다.

      $ ansible-vault create ~/vault.yml
      New Vault password: <vault_password>
      Confirm New Vault password: <vault_password>
      Copy to Clipboard Toggle word wrap
    2. ansible-vault create 명령이 편집기를 열고 < key > : < value > 형식으로 중요한 데이터를 입력합니다.

      luks_password: <password>
      Copy to Clipboard Toggle word wrap
    3. 변경 사항을 저장하고 편집기를 종료합니다. Ansible은 자격 증명 모음의 데이터를 암호화합니다.
  2. 다음 콘텐츠를 사용하여 플레이북 파일(예: ~/playbook.yml )을 생성합니다.

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      vars_files:
        - ~/vault.yml
      tasks:
        - name: Create and configure a volume encrypted with LUKS
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.storage
          vars:
            storage_volumes:
              - name: barefs
                type: disk
                disks:
                  - sdb
                fs_type: xfs
                fs_label: <label>
                mount_point: /mnt/data
                encryption: true
                encryption_password: "{{ luks_password }}"
    Copy to Clipboard Toggle word wrap

    플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의 /usr/share/ansible/roles/rhel-system-roles.storage/README.md 파일을 참조하십시오.

  3. 플레이북 구문을 확인합니다.

    $ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  4. Playbook을 실행합니다.

    $ ansible-playbook --ask-vault-pass ~/playbook.yml
    Copy to Clipboard Toggle word wrap

검증

  1. LUKS 암호화된 볼륨의 luksUUID 값을 찾습니다.

    # ansible managed-node-01.example.com -m command -a 'cryptsetup luksUUID /dev/sdb'
    
    4e4e7970-1822-470e-b55a-e91efe5d0f5c
    Copy to Clipboard Toggle word wrap
  2. 볼륨의 암호화 상태를 확인합니다.

    # ansible managed-node-01.example.com -m command -a 'cryptsetup status luks-4e4e7970-1822-470e-b55a-e91efe5d0f5c'
    
    /dev/mapper/luks-4e4e7970-1822-470e-b55a-e91efe5d0f5c is active and is in use.
      type:    LUKS2
      cipher:  aes-xts-plain64
      keysize: 512 bits
      key location: keyring
      device:  /dev/sdb
    ...
    Copy to Clipboard Toggle word wrap
  3. 생성된 LUKS 암호화된 볼륨을 확인합니다.

    # ansible managed-node-01.example.com -m command -a 'cryptsetup luksDump /dev/sdb'
    
    LUKS header information
    Version:        2
    Epoch:          3
    Metadata area:  16384 [bytes]
    Keyslots area:  16744448 [bytes]
    UUID:           4e4e7970-1822-470e-b55a-e91efe5d0f5c
    Label:          (no label)
    Subsystem:      (no subsystem)
    Flags:          (no flags)
    
    Data segments:
      0: crypt
            offset: 16777216 [bytes]
            length: (whole device)
            cipher: aes-xts-plain64
            sector: 512 [bytes]
    ...
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat