주:
- 이 사용지침서는 Oracle 제공 무료 실습 환경에서 제공됩니다.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마치면 사용자의 클라우드 환경과 관련된 값으로 대체합니다.
Oracle Linux에서 LUKS를 사용하여 드라이브 암호화
소개
Oracle Linux에는 블록 장치에서 암호화를 처리하는 장치 매퍼 암호화(dm-crypt
) 및 LUKS(Linux Unified Key Setup)가 포함되어 있습니다.
이 실습에서는 Linux 커널에 포함된 장치 매퍼 지원에서 dm-crypt
모듈을 활용하는 LUKS를 사용하여 장치를 암호화하는 프론트엔드 도구에 초점을 맞춥니다.
목표
cryptsetup
설치- 암호화된 볼륨 생성
- 암호화된 볼륨 마운트
요구 사항
사용 가능한 디스크가 있고 Oracle Linux에 완전히 패치가 적용된 설치 시스템입니다.
랩 환경 설정
주: 무료 실습 환경을 사용하는 경우 Oracle Linux Lab Basics에서 연결 및 기타 사용 지침을 참조하십시오.
-
아직 연결되지 않은 경우 터미널을 열고 ssh를 통해 ol-node01 인스턴스에 연결합니다.
ssh oracle@<ip_address_of_instance>
-
블록 볼륨이 존재하는지 확인합니다.
lsblk -f
무료 연습 환경의 출력에는 기본 OS를 포함하는
sda
블록 장치와 이 연습에서 사용하는sdb
블록 장치가 표시됩니다.-f
옵션을 사용하면 파일 시스템 유형(FSTYPE) 및 블록 UUID(범용 고유 식별자)가 표시됩니다.
암호화 패키지 설치
-
시스템에서 아직 사용할 수 없는 경우
cryptsetup
도구를 설치합니다.cryptsetup
가 설치되어 있는지 확인합니다.sudo dnf list --installed cryptsetup
설치되지 않은 경우
cryptsetup
를 설치합니다.sudo dnf -y install cryptsetup
주: 무료 실습 환경에는 이미
cryptsetup
툴이 설치되어 있습니다.
LUKS로 볼륨 암호화
LUKS 및 dm-crypt
는 블록 장치, RAID, LVM 물리적 볼륨 및 스왑에서도 작동합니다. 암호화된 후에는 적절한 자격 증명으로만 부트 또는 마운트 시 이러한 장치의 데이터에 액세스할 수 있습니다.
무료 실습 환경에서는 이 단계에 대해 미리 분할된 디스크 /dev/sdb1
를 제공합니다.
-
디스크를 암호화합니다.
sudo cryptsetup -y -v luksFormat /dev/sdb1
YES
를 입력하여 계속하고 문장암호를 두 번 제공합니다. 문장암호는 다음을 포함해야 합니다.- 최소 8 문자
- 1자리
- 대문자 1개
- 1개의 특수 문자
- 비딕셔너리 기반 단어
중요: 입력한 비밀번호는 나중에 사용되므로 기억해야 합니다.
예제 출력:
[oracle@ol-node01 ~]$ sudo cryptsetup -y -v luksFormat /dev/sdb1 WARNING! ======== This will overwrite data on /dev/sdb1 irrevocably. Are you sure? (Type 'yes' in capital letters): YES Enter passphrase for /dev/sdb1: Verify passphrase: Key slot 0 created. Command successful.
-
암호화된 볼륨을 엽니다.
이 단계에는 이름을 지정할 수 있는 대상이 필요합니다.
mysecrets
를 사용합니다.sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
요청 시 이전 단계에서 생성한 것과 동일한 문장암호를 입력합니다.
예제 출력:
[oracle@ol-node01 ~]$ sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets Enter passphrase for /dev/sdb1: Key slot 0 unlocked. Command successful.
-
블록 장치를 다시 확인합니다.
lsblk -f
이제 장치
/dev/sdb1
에 FSTYPE이 crypto_LUKS로 표시되고 암호화된 장치 볼륨의 매핑mysecrets
가 표시됩니다.
암호화된 볼륨 포맷
암호화된 볼륨에 데이터를 추가하기 전에 형식을 지정해야 합니다. xfs, ext3, ext4 등과 같은 다양한 파일 시스템을 선택할 수 있습니다.
-
파일 시스템을 만듭니다.
sudo mkfs.xfs /dev/mapper/mysecrets
암호화된 볼륨 마운트
-
마운트 지점을 만듭니다.
sudo mkdir -p /u01/my_secret_storage
-
볼륨을 마운트합니다.
sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage
출력에는 SELinux 경고가 표시됩니다.
예제 출력:
[oracle@ol-node01 ~]$ sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage/ mount: /u01/my_secret_storage does not contain SELinux labels. You just mounted an file system that supports labels which does not contain labels, onto an SELinux box. It is likely that confined applications will generate AVC messages and not be allowed access to this file system. For more details see restorecon(8) and mount(8). mount: /dev/mapper/mysecrets mounted on /u01/my_secret_storage.
이를 위해서는 마운트 지점의 SELinux 보안 컨텍스트에 대한 레이블을 재지정해야 합니다.
sudo restorecon -vvRF /u01/my_secret_storage
mount
명령을 다시 실행합니다.sudo mount -v -o remount /u01/my_secret_storage
-
마운트된 볼륨을 표시합니다.
lsblk
예제 출력:
[oracle@ol-node01 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 46.6G 0 disk |-sda1 8:1 0 100M 0 part /boot/efi |-sda2 8:2 0 1G 0 part /boot `-sda3 8:3 0 45.5G 0 part |-ocivolume-root 252:0 0 35.5G 0 lvm / `-ocivolume-oled 252:1 0 10G 0 lvm /var/oled sdb 8:16 0 50G 0 disk `-sdb1 8:17 0 2G 0 part `-mysecrets 252:2 0 2G 0 crypt /u01/my_secret_storage
LUKS 볼륨 세부정보 표시
LUKS 헤더, 데이터 세그먼트, 키 슬롯 및 버전 정보를 봅니다.
-
LUKS 세부정보를 덤프합니다.
sudo cryptsetup luksDump /dev/sdb1
예제 출력:
LUKS header information Version: 2 Epoch: 3 Metadata area: 16384 [bytes] Keyslots area: 16744448 [bytes] UUID: 4ccea398-5864-45a9-b274-173c8ebc3356 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] Keyslots: 0: luks2 Key: 512 bits Priority: normal Cipher: aes-xts-plain64 Cipher key: 512 bits PBKDF: argon2i Time cost: 10 Memory: 1048576 Threads: 4 Salt: ee d2 c7 5b 05 43 0f 0a 12 60 da b5 87 19 4a 6f 06 57 a2 31 b1 dd bb 60 74 53 95 b2 ca 2f ad 4b AF stripes: 4000 AF hash: sha256 Area offset:32768 [bytes] Area length:258048 [bytes] Digest ID: 0 Tokens: Digests: 0: pbkdf2 Hash: sha256 Iterations: 243628 Salt: 89 6c 8b aa 37 af 58 e9 26 49 c5 e5 db 2d 54 ea f8 7a c2 89 0e ab ed 48 74 a5 23 d7 b0 e6 9c 87 Digest: 4a 2b 25 76 c5 85 1a 6c a9 28 0c ee d0 c7 76 eb e1 4c ee 9c 5b 9a e2 d0 95 6e 1f 6e bb 1b 03 d1
자세한 내용은 cryptsetup(8)
설명서 페이지, Oracle 설명서 또는 업스트림 FAQ를 참조하십시오.
추가 정보
기타 관련 리소스 참조:
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 보다 무료 학습 컨텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.
제품 설명서는 Oracle Help Center를 참조하십시오.
Encrypt Drives using LUKS on Oracle Linux
F60522-01
July 2022
Copyright © 2022, Oracle and/or its affiliates.