웹사이트 검색

Linux에서 'Cryptsetup' 도구를 사용하여 암호화된 파일 시스템 및 스왑 공간을 설정하는 방법 - 3부


LFCE(Linux Foundation Certified Engineer의 약자)는 Linux 시스템에서 네트워크 서비스를 설치, 관리 및 문제 해결하는 데 필요한 교육을 받고 전문 지식을 갖추고 있으며 시스템 아키텍처의 설계, 구현 및 지속적인 유지 관리.

LFCE(Linux Foundation 인증 프로그램)를 소개합니다.

암호화의 기본 개념은 신뢰할 수 있는 사람만 중요한 데이터에 액세스할 수 있도록 허용하고 컴퓨터/하드 디스크가 분실되거나 도난당할 경우 해당 데이터가 잘못된 사람의 손에 들어가지 않도록 보호하는 것입니다.

간단히 말해서, 키는 귀하의 정보에 대한 접근을 "잠그"하는 데 사용됩니다. 따라서 시스템이 실행 중일 때 해당 정보를 사용할 수 있고 인증된 사용자가 잠금을 해제할 수 있습니다. 이는 사람이 디스크 내용을 검사하려고 하면(자신의 시스템에 연결하거나 LiveCD/DVD/USB로 시스템을 부팅하여) 실제 파일 대신 읽을 수 없는 데이터만 찾을 수 있음을 의미합니다.

이 기사에서는 표준 커널 수준 암호화 도구인 dm-crypt(device mapper and cryptographic의 약자)를 사용하여 암호화된 파일 시스템을 설정하는 방법에 대해 설명합니다. dm-crypt는 블록 수준 도구이므로 전체 장치, 파티션 또는 루프 장치를 암호화하는 데만 사용할 수 있습니다(일반 파일이나 디렉터리에서는 작동하지 않음).

암호화를 위한 드라이브/파티션/루프 장치 준비

선택한 드라이브(/dev/sdb)에 있는 모든 데이터를 지울 것이므로 먼저 해당 파티션에 포함된 중요한 파일의 백업을 전에 계속 진행합니다.

/dev/sdb에서 모든 데이터를 삭제하세요. 여기서는 dd 명령을 사용할 예정이지만 shred와 같은 다른 도구를 사용해도 수행할 수 있습니다. 다음으로, LFCS 시리즈의 4부 - Linux에서 파티션 및 파일 시스템 생성의 설명에 따라 이 장치에 /dev/sdb1 파티션을 생성하겠습니다.

dd if=/dev/urandom of=/dev/sdb bs=4096 
암호화 지원 테스트

더 진행하기 전에 커널이 암호화 지원으로 컴파일되었는지 확인해야 합니다.

grep -i config_dm_crypt /boot/config-$(uname -r)

위 이미지에 설명된 대로 암호화를 설정하려면 dm-crypt 커널 모듈을 로드해야 합니다.

Cryptosetup 설치

Cryptsetupdm-crypt를 사용하여 암호화된 파일 시스템을 생성, 구성, 액세스 및 관리하기 위한 프런트엔드 인터페이스입니다.

aptitude update && aptitude install cryptsetup 		[On Ubuntu]
yum update && yum install cryptsetup 				[On CentOS] 
zypper refresh && zypper install cryptsetup 			[On openSUSE]

암호화된 파티션 설정

cryptsetup의 기본 작동 모드는 LUKS(Linux 통합 키 설정)이므로 계속 사용하겠습니다. LUKS 파티션과 암호를 설정하는 것부터 시작하겠습니다.

cryptsetup -y luksFormat /dev/sdb1

위의 명령은 다음과 같이 나열될 수 있는 기본 매개변수를 사용하여 cryptsetup을 실행합니다.

cryptsetup --version

암호, 해시 또는 매개변수를 변경하려면 –암호를 사용할 수 있습니다. < b>–hash 및 –key-size 플래그는 각각 /proc/crypto에서 가져온 값을 사용합니다.

다음으로 LUKS 파티션을 열어야 합니다(앞서 입력한 암호를 입력하라는 메시지가 표시됩니다). 인증이 성공하면 암호화된 파티션을 /dev/mapper 내에서 지정된 이름으로 사용할 수 있습니다.

cryptsetup luksOpen /dev/sdb1 my_encrypted_partition

이제 파티션을 ext4로 포맷하겠습니다.

mkfs.ext4 /dev/mapper/my_encrypted_partition

암호화된 파티션을 마운트하기 위한 마운트 지점을 생성합니다. 마지막으로 마운트 작업이 성공했는지 확인하고 싶을 수도 있습니다.

mkdir /mnt/enc
mount /dev/mapper/my_encrypted_partition /mnt/enc
mount | grep partition

암호화된 파일 시스템에 대한 쓰기 또는 읽기가 완료되면 간단히 마운트 해제하세요.

umount /mnt/enc

다음을 사용하여 LUKS 파티션을 닫습니다.

cryptesetup luksClose my_encrypted_partition
암호화 테스트

마지막으로 암호화된 파티션이 안전한지 확인합니다.

1. LUKS 파티션을 엽니다.

cryptsetup luksOpen /dev/sdb1 my_encrypted_partition

2. 비밀번호 문구를 입력하세요

3. 파티션 마운트

mount /dev/mapper/my_encrypted_partition /mnt/enc

4. 마운트 지점 내에 더미 파일을 생성합니다.

echo “This is Part 3 of a 12-article series about the LFCE certification” > /mnt/enc/testfile.txt

5. 방금 생성한 파일에 액세스할 수 있는지 확인합니다.

cat /mnt/enc/testfile.txt

6. 파일 시스템을 마운트 해제합니다.

umount /mnt/enc

7. LUKS 파티션을 닫습니다.

cryptsetup luksClose my_encrypted_partition

8. 파티션을 일반 파일 시스템으로 마운트해 보십시오. 오류가 표시되어야 합니다.

mount /dev/sdb1 /mnt/enc

추가 보안을 위해 스왑 공간을 암호화합니다.

암호화된 파티션을 사용하기 위해 앞서 입력한 암호는 열려 있는 동안 RAM 메모리에 저장됩니다. 누군가 이 키를 손에 넣을 수 있다면 그는 데이터의 암호를 해독할 수 있을 것입니다. 최대 절전 모드 동안 RAM의 내용이 스왑 파티션에 보관되기 때문에 랩톱의 경우 특히 쉽습니다.

도둑이 키 사본에 액세스할 수 없도록 하려면 다음 단계에 따라 스왑 파티션을 암호화하십시오.

1 스왑으로 사용할 파티션을 적절한 크기(여기서는 /dev/sdd1)로 생성하고 앞서 설명한 대로 암호화합니다. 편의를 위해 이름을 '스왑'으로 지정하세요.'

2.스왑으로 설정하고 활성화하세요.

mkswap /dev/mapper/swap
swapon /dev/mapper/swap

3. 다음으로 /etc/fstab에서 해당 항목을 변경합니다.

/dev/mapper/swap none        	swap	sw          	0   	0

4. 마지막으로 /etc/crypttab을 편집하고 재부팅하세요.

swap               /dev/sdd1         /dev/urandom swap

시스템 부팅이 완료되면 스왑 공간의 상태를 확인할 수 있습니다.

cryptsetup status swap

요약

이 기사에서는 파티션 및 스왑 공간을 암호화하는 방법을 살펴보았습니다. 이 설정을 사용하면 데이터가 상당히 안전해집니다. 자유롭게 실험해 보시고 궁금한 점이나 의견이 있으면 언제든지 문의해 주세요. 아래 양식을 사용하시면 됩니다. 귀하의 의견을 매우 기쁘게 생각합니다!