Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.9. 암호화

4.9.1. LUKS 디스크 암호화 사용

Linux Unified Key Setup-on-disk-format (또는 LUKS)을 사용하면 Linux 컴퓨터의 파티션을 암호화할 수 있습니다. 이는 모바일 컴퓨터 및 이동식 미디어에 대해 특히 중요합니다. LUKS는 여러 사용자 키를 사용하여 파티션의 대량 암호화에 사용되는 마스터 키를 해독할 수 있습니다.

LUKS 개요

LUKS의 기능
  • LUKS는 전체 블록 장치를 암호화하므로 이동식 스토리지 미디어 또는 랩탑 디스크 드라이브와 같은 모바일 장치의 콘텐츠를 보호하기에 적합합니다.
  • 암호화된 블록 장치의 기본 내용은 임의적입니다. 이렇게 하면 스왑 장치를 암호화하는 데 유용합니다. 이는 데이터 저장을 위해 특별히 포맷된 블록 장치를 사용하는 특정 데이터베이스에서도 유용할 수 있습니다.
  • LUKS는 기존 장치 매퍼 커널 하위 시스템을 사용합니다.
  • LUKS는 사전 공격으로부터 보호하는 암호 강화를 제공합니다.
  • LUKS 장치에는 여러 개의 키 슬롯이 포함되어 있어 사용자가 백업 키 또는 암호를 추가할 수 있습니다.
LUKS에서 수행할 수 없는 작업:
  • LUKS는 많은(8 이상) 사용자가 동일한 장치에 고유한 액세스 키를 보유해야 하는 시나리오에 적합하지 않습니다.
  • LUKS는 파일 수준 암호화가 필요한 애플리케이션에 적합하지 않습니다.
중요
LUKS와 같은 디스크 암호화 솔루션은 시스템이 꺼져 있을 때만 데이터를 보호합니다. 시스템이 있고 LUKS가 디스크의 암호를 해독하면 해당 디스크의 파일은 일반적으로 액세스할 수 있는 모든 사용자가 사용할 수 있습니다.

4.9.1.1. Red Hat Enterprise Linux의 LUKS 구현

Red Hat Enterprise Linux 7은 LUKS를 사용하여 파일 시스템 암호화를 수행합니다. 기본적으로 파일 시스템을 암호화하는 옵션은 설치 중에 확인되지 않습니다. 하드 드라이브를 암호화하기 위한 옵션을 선택하면 컴퓨터를 부팅할 때마다 암호를 입력하라는 메시지가 표시됩니다. 이 암호는 파티션 암호를 해독하는 데 사용되는 대량 암호화 키를 "unlocks"합니다. 기본 파티션 테이블을 수정하려면 암호화할 파티션을 선택할 수 있습니다. 이는 파티션 테이블 설정에서 설정됩니다.
LUKS에 사용되는 기본 암호( cryptsetup --help참조)는 aes-cbc-essiv:sha256(ESSIV - Encrypted Salt-Sector Initialization Vector)입니다. 설치 프로그램 Anaconda 는 기본 XTS 모드(aes-xts-plain64)를 사용합니다. LUKS의 기본 키 크기는 256비트입니다. Anaconda (XTS 모드)가 있는 LUKS의 기본 키 크기는 512비트입니다. 사용 가능한 암호는 다음과 같습니다.

4.9.1.2. 수동으로 디렉터리 암호화

주의
다음 절차에 따라 암호화할 파티션의 모든 데이터가 제거됩니다. 당신은 모든 정보를 손실 할 수 있습니다! 이 절차를 시작하기 전에 외부 소스에 데이터를 백업하십시오!
  1. 쉘 프롬프트에서 root로 다음을 입력하여 실행 수준 1을 입력합니다.
    telinit 1
  2. 기존 /home 을 마운트 해제합니다.
    umount /home
  3. 이전 단계의 명령이 실패하면 fuser 를 사용하여 /home 프로세스 hogging /home 을 찾아 종료합니다.
    fuser -mvk /home
  4. /home 이 더 이상 마운트되지 않았는지 확인합니다.
    grep home /proc/mounts
  5. 파티션을 임의의 데이터로 채웁니다.
    shred -v --iterations=1 /dev/VG00/LV_home
    이 명령은 장치의 순차적 쓰기 속도로 진행되며 완료하는 데 시간이 걸릴 수 있습니다. 암호화되지 않은 데이터가 사용 된 장치에 남아 있지 않도록하고 임의의 데이터 대신 암호화된 데이터를 포함하는 장치의 부분을 난독화하는 것이 중요합니다.
  6. 파티션을 초기화합니다.
    cryptsetup --verbose --verify-passphrase luksFormat /dev/VG00/LV_home
  7. 새로 암호화된 장치를 엽니다.
    cryptsetup luksOpen /dev/VG00/LV_home home
  8. 장치가 있는지 확인합니다.
    ls -l /dev/mapper | grep home
  9. 파일 시스템을 생성합니다.
    mkfs.ext3 /dev/mapper/home
  10. 파일 시스템을 마운트합니다.
    mount /dev/mapper/home /home
  11. 파일 시스템이 표시되는지 확인합니다.
    df -h | grep home
  12. /etc/crypttab 파일에 다음을 추가합니다.
    home /dev/VG00/LV_home none
  13. /etc/fstab 파일을 편집하여 /home 에 대한 이전 항목을 제거하고 다음 행을 추가합니다.
    /dev/mapper/home /home ext3 defaults 1 2
  14. 기본 SELinux 보안 컨텍스트를 복원합니다.
    /sbin/restorecon -v -R /home
  15. 머신을 재부팅합니다.
    shutdown -r now
  16. /etc/crypttab 의 항목을 통해 컴퓨터에서 부팅 시 luks 암호를 요청합니다.
  17. root로 로그인하여 백업을 복원합니다.
이제 컴퓨터가 꺼지면 모든 데이터가 안전하게 정지될 수 있는 암호화된 파티션이 있습니다.

4.9.1.3. 기존 장치에 새 암호 추가

다음 명령을 사용하여 기존 장치에 새 암호를 추가합니다.
cryptsetup luksAddKey device
인증을 위해 기존 passprases 중 하나를 입력하라는 메시지가 표시되면 새 암호를 입력하라는 메시지가 표시됩니다.

4.9.1.4. 기존 장치에서 암호 제거

다음 명령을 사용하여 기존 장치에서 암호를 제거합니다.
cryptsetup luksRemoveKey device
제거하려는 암호를 입력하라는 메시지가 표시되고 인증을 위해 나머지 암호 중 하나에 대해 메시지가 표시됩니다.

4.9.1.5. Anaconda에서 암호화된 블록 장치 생성

시스템을 설치하는 동안 암호화된 장치를 만들 수 있습니다. 이를 통해 암호화된 파티션으로 시스템을 쉽게 구성할 수 있습니다.
블록 장치 암호화를 사용하도록 설정하려면 개별 파티션, 소프트웨어 RAID 배열 또는 논리 볼륨을 만들 때 자동 파티션 또는 Encrypt 확인란을 선택할 때 암호화 확인란을 선택합니다. 파티션을 완료하면 암호화 암호를 입력하라는 메시지가 표시됩니다. 이 암호는 암호화된 장치에 액세스하는 데 필요합니다. 기존 LUKS 장치가 있고 설치 프로세스 초기에 올바른 암호를 제공한 경우 암호 항목 대화 상자에는 확인란도 포함됩니다. 이 확인란을 선택하면 기존에서 암호화된 각 블록 장치에서 사용 가능한 슬롯에 새 암호를 추가할 수 있음을 나타냅니다.
참고
자동 파티셔닝 화면에서 암호화 시스템 확인란을 선택한 다음 사용자 지정 레이아웃 만들기를 선택하면 블록 장치가 자동으로 암호화되지 않습니다.
참고
Kickstart를 사용하여 새로 암호화된 각 블록 장치에 대해 별도의 암호를 설정할 수 있습니다.