웹사이트 검색

Fedora Linux에서 LUKS를 사용하여 드라이브를 암호화하는 방법


이 글에서는 블록 암호화, Linux 통합 키 설정(LUKS)에 대해 간략하게 설명하고, Fedora Linux에서 암호화된 블록 장치를 생성하는 방법을 설명합니다.

장치 암호화 차단

블록 장치 암호화는 블록 장치의 데이터를 암호화하여 보호하는 데 사용되며, 데이터를 해독하려면 사용자가 액세스할 암호나 키를 제공해야 합니다. 이는 장치가 시스템에서 물리적으로 분리된 경우에도 장치의 콘텐츠를 보호하므로 추가 보안 메커니즘을 제공합니다.

루크스 소개

LUKS(Linux 통합 키 설정)는 Linux의 블록 장치 암호화 표준으로, 데이터에 대한 온디스크 형식과 암호/키 관리 정책을 설정하여 작동합니다. . 필요한 모든 설정 정보를 파티션 헤더(LUKS 헤더라고도 함)에 저장하므로 데이터를 원활하게 전송하거나 마이그레이션할 수 있습니다.

LUKSdm-crypt 모듈과 함께 커널 장치 매퍼 하위 시스템을 활용하여 장치 데이터의 암호화 및 암호 해독을 유지하는 하위 수준 매핑을 제공합니다. cryptsetup 프로그램을 사용하여 암호화된 장치 생성 및 액세스와 같은 사용자 수준 작업을 실행할 수 있습니다.

블록 장치 준비

다음 지침에서는 설치 후 암호화된 블록 장치를 생성하고 구성하는 단계를 보여줍니다.

cryptsetup 패키지를 설치합니다.

dnf install cryptsetup-luks

그런 다음 암호화하기 전에 장치를 임의의 데이터로 채우십시오. 이렇게 하면 다음 명령을 사용하여 암호화 강도가 크게 향상됩니다.

dd if=/dev/urandom of=/dev/sdb1	           [slow with high quality random data ]
OR
badblocks -c 10240 -s -w -t random -v /dev/sdb1  [fast with high quality random data]

경고: 위 명령은 기기의 기존 데이터를 모두 삭제합니다.

암호화된 장치 포맷

그런 다음 cryptsetup 명령줄 도구를 사용하여 기기를 dm-crypt/LUKS 암호화 기기로 포맷합니다.

cryptsetup luksFormat /dev/sdb1

명령을 실행한 후 다음 스크린샷에 표시된 것처럼 YES(대문자)를 입력하여 사용하기 위해 포맷할 장치에 대한 암호를 두 번 제공하라는 메시지가 표시됩니다.

작업이 성공했는지 확인하려면 다음 명령을 실행합니다.

cryptsetup isLuks /dev/sdb1 && echo Success

장치의 암호화 정보 요약을 볼 수 있습니다.

cryptsetup luksDump /dev/sdb1

해독된 콘텐츠에 대한 액세스를 허용하는 매핑 생성

이 섹션에서는 암호화된 장치의 복호화된 콘텐츠에 액세스하는 방법을 구성합니다. 커널 장치 매퍼를 사용하여 매핑을 생성합니다. 이 매핑에 대해 luk-uuid와 같은 의미 있는 이름을 만드는 것이 좋습니다(여기서 <uuid>는 기기의 LUKS UUID범용 고유 식별자).

암호화된 기기 UUID를 얻으려면 다음 명령어를 실행하세요.

cryptsetup luksUUID /dev/sdb1

UUID를 얻은 후 표시된 대로 매핑 이름을 만들 수 있습니다(앞서 만든 암호를 입력하라는 메시지가 표시됩니다).

cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

명령이 성공하면 해독된 장치를 나타내는 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c라는 장치 노드입니다.

방금 생성된 블록 장치는 암호화되지 않은 다른 블록 장치와 마찬가지로 읽고 쓸 수 있습니다. 다음 명령을 실행하면 매핑된 장치에 대한 일부 정보를 볼 수 있습니다.

dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

매핑된 장치에 파일 시스템 생성

이제 매핑된 장치에 파일 시스템을 생성하는 방법을 살펴보겠습니다. 이를 통해 매핑된 장치 노드를 다른 블록 장치처럼 사용할 수 있습니다.

매핑된 장치에 ext4 파일 시스템을 생성하려면 다음 명령을 실행합니다.

mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

위 파일 시스템을 마운트하려면 해당 파일 시스템에 대한 마운트 지점(예: /mnt/encrypted-device)을 생성한 후 다음과 같이 마운트하세요.

mkdir -p /mnt/encrypted-device
mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/

/etc/crypttab 및 /etc/fstab에 매핑 정보 추가

다음으로, 장치에 대한 매핑을 자동으로 설정하고 부팅 시 장치를 마운트하도록 시스템을 구성해야 합니다.

/etc/crypttab 파일에 다음 형식으로 매핑 정보를 추가해야 합니다.

luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c   none

위의 형식으로:

  • luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – 매핑 이름입니다.
  • UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c – 기기 이름입니다.

파일을 저장하고 닫습니다.

그런 다음 /etc/fstab에 다음 항목을 추가하여 시스템 부팅 시 매핑된 장치를 자동으로 마운트합니다.

/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  /mnt/encrypted-device  ext4 0 0

파일을 저장하고 닫습니다.

그런 다음 다음 명령을 실행하여 이 파일에서 생성된 시스템 장치를 업데이트하세요.

systemctl daemon-reload

백업 LUKS 헤더

마지막으로 LUKS 헤더를 백업하는 방법을 다루겠습니다. 이는 LUKS 헤더가 포함된 섹터가 사용자 오류 또는 하드웨어 오류로 인해 손상된 경우 암호화된 블록 장치의 모든 데이터 손실을 방지하기 위한 중요한 단계입니다. 이 작업을 통해 데이터 복구가 가능합니다.

LUKS 헤더를 백업합니다.

mkdir /root/backups  
cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

그리고 LUKS 헤더를 복원합니다.

cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

그게 다야! 이 글에서는 Fedora Linux 배포판에서 LUKS를 사용하여 블록 장치를 암호화하는 방법을 설명했습니다. 이 주제나 가이드에 관한 질문이나 의견이 있으면 아래 피드백 양식을 사용하여 당사에 문의하십시오.