기존 Debian 12에 암호화된 SWAP 파티션을 설정하는 방법

기존 Debian 12 시스템에서 스왑 파티션을 암호화하는 것은 메모리 페이지, 암호, 문서 조각 및 기타 임시 데이터가 평문으로 디스크에 기록되는 것을 방지하려는 경우에 유용합니다. 최대 절전 모드가 필요 없는 시스템의 경우 , Debian에서는 간단한 설계 방식을 제시합니다. 스왑 파티션을 일반 dm-crypt로 암호화하고 부팅할 때마다 새로운 임의 암호화 키를 생성하는 것입니다.

이 가이드는 해당 설계를 따릅니다. 데비안 12 "북웜", 전용 스왑 파티션 , 그리고 시스템d를 초기화 시스템으로 사용한다고 가정합니다. 블록 장치 경로에 오류가 발생하면 잘못된 파티션에 덮어쓰기가 발생할 수 있으므로 명령어는 의도적으로 보수적으로 작성되었습니다. 먼저 결정 지점을 읽고 예제 값을 맹목적으로 복사하지 말고 자신의 장치 식별자로 대체하십시오.

Debian의 cryptsetup 문서에서는 암호화된 스왑에 대해 구체적으로 설명하고 스왑을 비활성화하고 파티션을 추가하고 매핑된 장치로 변경한 다음 스왑을 다시 활성화하는 것을 권장합니다 /etc/crypttab. /dev/urandomDebian /etc/fstabcryptsetup README를 참조하십시오 . Debian 12의 crypttab(5) 매뉴얼 에서도 crypttab 필드와 일반 dm-crypt 옵션에 대해 설명합니다.

랜덤 키 암호화 스왑을 사용해야 할까요?

암호화된 스왑 공간이 필요하고 최대 절전 모드가 필요하지 않을 때 사용하십시오. 암호화 키는 부팅할 때마다 새로 생성되므로 종료 후에는 이전 스왑 영역의 내용을 읽을 수 없게 됩니다. 이는 대부분의 데스크톱 및 서버 환경에서 요구하는 보안 특성입니다.

최대 절전 모드, 디스크 절전 모드, 하이브리드 절전 모드 또는 절전 후 최대 절전 모드를 사용하는 경우 이 설정을 그대로 사용하지 마십시오. 최대 절전 모드 재개에는 다음 부팅 시 동일한 최대 절전 모드 이미지를 복호화해야 합니다. 새로운 임의 키를 사용하면 이것이 불가능합니다. Debian은 임의 키 교환을 재개 장치로 사용할 수 없다고 명시적으로 언급합니다. Debian 12의 systemd hibernate-resume 문서 에서도 재개 기능이 영구적인 재개 장치에 의존한다고 나와 있습니다.

최대 절전 모드가 필요한 경우, 적절한 잠금 해제 및 재개 구성을 갖춘 LUKS 기반 스왑 장치와 같은 영구 암호화 설계를 사용하십시오. 이는 이 가이드와는 다른 설정이며 의도적으로 이 가이드의 범위를 벗어납니다.

스왑 영역이 이미 디스크 암호화로 보호되고 있습니까?

변경하기 전에 반드시 확인하십시오. 스왑 논리 볼륨이 이미 LUKS로 암호화된 컨테이너 내에 있는 경우, dm-crypt 계층을 추가하면 복잡성만 증가시키면서 실질적인 이점은 거의 없을 수 있습니다.

swapon --show
lsblk -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PARTUUID

표시된 장치를 살펴보고 swapon --show해당 장치의 상위 항목을 추적하세요 lsblk. 일반적인 암호화되지 않은 레이아웃에서는 /dev/sda3유형이 직접 표시될 수 있습니다 swap. 암호화된 LVM 설치에서는 crypto_LUKS상위 항목 아래에 스왑이 표시될 수 있습니다.

Debian 12 터미널에서 swapon, lsblk, blkid 명령어를 실행했을 때 기존 스왑 파티션과 해당 파티션의 PARTUUID 출력 결과를 보여주는 그림입니다.
변경 작업을 진행하기 전에 활성 스왑 파티션과 안정 파티션 식별자를 확인하십시오. 여기에 표시된 장치 이름과 식별자는 예시일 뿐입니다.

이 문서에서는 암호화되지 않은 전용 스왑 파티션을 변환하는 방법에 대해 다루고 있으므로 이러한 구분이 중요합니다 . 만약 swapon --show스왑 파일이라고 표시되면 스왑 파일 전용 절차를 사용하십시오. 스왑이 이미 암호화된 저장소 내에 있는 경우, 두 번째 계층이 실제로 필요한지 먼저 판단해야 합니다.

스왑 기능을 끄기 전에 무엇을 기록해야 할까요?

정확한 파티션 경로, 크기 및 PARTUUID를 기록하십시오 . PARTUUID는 파티션 테이블 항목을 식별하며 파티션 내부의 스왑 서명이 암호화된 데이터로 대체된 후에도 계속 유용합니다.

예를 들어:

sudo blkid /dev/sda3
ls -l /dev/disk/by-partuuid/

출력 결과에 다음과 같은 값이 포함될 수 있습니다.

PARTUUID="11111111-2222-3333-4444-555555555555"

아래 예시에서 해당하는 안정 경로는 다음과 같습니다.

/dev/disk/by-partuuid/11111111-2222-3333-4444-555555555555

디스크 열거 방식이 변경될 수 있다는 점 에 의존하지 마십시오 /dev/sda3. 또한 이전 스왑 파일 시스템의 UUID를 장기적인 소스 식별자로 사용하지 마십시오. 암호화된 스왑 설정은 매핑된 암호화 장치에서 스왑 서명을 다시 생성하므로 이전 원시 스왑 UUID는 기본 파티션에 대한 올바른 영구 식별자가 아닙니다.

1. 시스템을 안전하게 준비하는 방법은 무엇입니까?

cryptsetup이 설치되어 있지 않으면 설치하고, 편집할 두 개의 설정 파일을 백업하십시오.

sudo apt update
sudo apt install cryptsetup
sudo cp -a /etc/crypttab /etc/crypttab.before-encrypted-swap 2>/dev/null || true
sudo cp -a /etc/fstab /etc/fstab.before-encrypted-swap

해당 항목이 아직 /etc/crypttab존재하지 않더라도 문제없습니다. 설정을 편집할 때 생성하면 됩니다.

다음으로, 스왑을 비활성화하는 짧은 시간 동안 시스템에 충분한 사용 가능한 메모리가 있는지 확인하십시오. 그런 다음 변환할 스왑 파티션만 비활성화합니다. swapoff -a여러 개의 스왑 영역이 있는 시스템보다 동일한 장치를 사용하는 것이 더 안전합니다.

sudo swapoff /dev/sda3
swapon --show
Debian 12 터미널 화면 그림으로, 스왑 영역이 비활성화되고 cryptsetup 패키지가 설치되는 과정을 보여줍니다.
암호화를 적용하기 전에 대상 스왑 영역을 비활성화하십시오. 스왑 장치가 여러 개인 시스템에서는 불필요하게 모든 장치를 비활성화하는 대신 원하는 장치에서만 작업을 수행하십시오.

mkswap이 시점 이후로는 원시 파티션에서 실행하지 마십시오 . 스왑 서명은 암호화된 매퍼 장치에 생성해야 하며, 암호화되지 않은 백업 파티션에 생성해서는 안 됩니다.

2. /etc/crypttab에는 무엇이 들어가야 합니까?

암호화된 스왑 매핑에 대한 항목을 생성하거나 편집 /etc/crypttab하고 추가합니다. 다음은 Debian cryptsetup 문서에 따른 절차입니다.

cswap /dev/disk/by-partuuid/11111111-2222-3333-4444-555555555555 /dev/urandom plain,cipher=aes-xts-plain64,size=256,swap

예시로 제시된 PARTUUID를 사용자의 시스템에 맞는 PARTUUID로 교체하십시오.

각 필드는 다음을 의미합니다.

  • cswap매퍼 이름이며, 생성합니다 /dev/mapper/cswap.
  • 두 번째 필드는 실제 기본 스왑 파티션입니다.
  • /dev/urandom매핑이 생성될 때마다 새로운 임의 키를 제공합니다.
  • plain영구적인 LUKS 헤더 대신 일반 dm-crypt를 선택합니다.
  • cipher=aes-xts-plain64,size=256기본값이 변경될 수 있으므로, plain-dm-crypt 매개변수를 명시적으로 지정합니다.
  • swap이 매핑된 장치가 스왑 영역이므로 적절하게 초기화되어야 함을 cryptsetup 통합 기능에 알려줍니다.
데비안 12에서 GNU nano를 사용하여 안정적인 PARTUUID 경로와 /dev/urandom을 사용하는 cswap 매핑으로 /etc/crypttab 파일을 편집하는 방법을 보여주는 그림입니다.
crypttab 항목은 활성화될 때마다 /dev/urandom에서 가져온 새 키를 사용하여 cswap이라는 이름의 임시 암호화 매핑을 생성합니다.

Debian의 crypttab 매뉴얼은 일반 dm-crypt가 LUKS와 달리 헤더에 암호, 해시 또는 키 크기 메타데이터를 저장하지 않는다고 경고합니다. 따라서 암호와 키 크기를 명시적으로 기록하는 것이 유용합니다. 매뉴얼에는 discard보안상의 문제점도 설명되어 있지만, 백업 장치가 SSD라는 이유만으로 해당 기능을 추가하기 전에 보안 위험을 충분히 고려해야 한다는 점을 유의해야 합니다.

3. /etc/fstab 파일에 어떤 변경 사항이 있습니까?

에서 암호화되지 않은 이전 스왑 라인을 찾으세요 /etc/fstab. UUID, 장치 경로 또는 다른 영구 식별자를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

UUID=OLD-SWAP-UUID none swap sw 0 0

매핑된 암호화 장치로 교체하십시오.

/dev/mapper/cswap none swap sw 0 0

두 항목을 모두 활성화 상태로 두지 마십시오. 원시 파티션과 스왑 파티션 모두 /dev/mapper/cswap스왑으로 활성화된 경우 파티션 암호화의 목적이 무의미해지고 부팅 시 활성화에 혼란이 발생할 수 있습니다.

Debian 12에서 GNU nano를 사용하여 /etc/fstab 파일을 시각화한 그림입니다. 기존의 raw swap 항목이 비활성화되고 /dev/mapper/cswap이 swap으로 구성되어 있습니다.
fstab 파일은 암호화된 매퍼 장치를 가리켜야 하며, 원래의 raw 스왑 파티션을 가리키면 안 됩니다.

Debian의 fstab(5) 매뉴얼은 스왑 항목 형식을 정의하고 swapon(8) 은 스왑으로 표시된 항목이 활성화되는 방법을 설명합니다.

4. 재부팅하기 전에 어떻게 활성화하고 확인하나요?

두 파일을 모두 저장한 후 암호화된 매핑을 시작하고 스왑 항목을 활성화합니다. Debian의 cryptsetup 설명서에서는 다음과 같이 사용합니다.

sudo cryptdisks_start cswap
sudo swapon -a

이제 세 가지 레이어를 모두 확인하십시오.

swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS

정상적인 결과는 스왑이 /dev/mapper/cswap원래 파티션이 아닌 다른 곳에서 실행되고 있음을 보여줘야 합니다. cryptsetup status cswap또한 매핑이 활성 상태임을 보고해야 합니다.

설치된 시스템에 해당 패키지가 없는 경우 cryptdisks_start, 임의로 파괴적인 명령을 실행하지 마십시오. cryptsetup패키지가 설치되어 있는지, 그리고 crypttab 구문이 유효한지 다시 확인하십시오. 아래의 재개 구성을 완료한 후 일반적인 Debian 부팅 프로세스가 매핑을 생성하도록 할 수도 있습니다. Debian 12는 systemd 생성기를 사용하여 crypttab 및 fstab 구성을 부팅 시 단위로 변환합니다.

5. 최대 절전 모드 재개 기능을 비활성화해야 합니까?

예, 해당 파티션이 시스템의 절전 모드 해제 장치로 구성된 경우입니다. 임의의 키로는 이전 키로 기록된 최대 절전 모드 이미지를 복호화할 수 없습니다. 데비안의 암호화된 스왑 관련 지침은 기존의 절전 모드 해제 스왑 파티션을 임의 키로 암호화된 스왑으로 변환할 때 절전 모드 해제 기능을 비활성화하도록 명시적으로 안내하고 있습니다.

현재 구성을 확인하세요:

grep -R "^[[:space:]]*RESUME=" /etc/initramfs-tools/conf.d/ 2>/dev/null

방금 변환한 스왑 파티션을 가리키는 것이라면, 재개 설정을 '없음'으로 변경하십시오.

echo "RESUME=none" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo update-initramfs -u

이 부분이 중요한 점입니다 update-initramfs -u. 일반적인 부팅 후 스왑 항목이 변경되었다는 이유만으로 initramfs를 다시 빌드할 필요는 없습니다. 하지만 initramfs가 사용하려고 시도할 수 있는 오래된 최대 절전 모드 재개 대상을 제거할 때는 initramfs를 업데이트해야 합니다.

재부팅 테스트: 설정이 제대로 작동했음을 어떻게 증명할 수 있을까요?

실제 활성화가 성공적으로 완료되고 구성 파일이 올바른 경우에만 재부팅하십시오.

sudo reboot

시스템이 응답하면 다음 명령을 실행하세요.

swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS
cat /proc/swaps

핵심 성공 기준은 간단합니다.

  • /dev/mapper/cswap스왑으로 활성화되어 있습니다.
  • 원본 백업 파티션은 활성 스왑으로 직접 나열되지 않습니다.
  • cryptsetup status cswap활성 상태인 일반 dm-crypt 매핑을 보고합니다.
  • 이 기기는 스왑 암호를 묻지 않고 부팅되며, 임의 키가 자동으로 생성됩니다.

두 번 재부팅하여 매핑 동작을 비교해 볼 수도 있습니다. 이 설계의 핵심은 암호화 키가 일시적이라는 점입니다. 매핑을 다시 생성한 후에는 이전 부팅 시의 스왑 영역 내용을 복구할 수 없습니다.

만약 기계가 비상 모드로 전환되면 어떻게 될까요?

가장 흔한 원인은 잘못된 백업 장치 경로, 오타 /etc/crypttab또는 /etc/fstab여전히 이전의 raw swap을 가리키는 줄입니다. 복구 모드로 부팅하거나 복구 환경을 사용하여 루트 파일 시스템을 읽기/쓰기 모드로 마운트하고 필요한 경우 백업을 복원하십시오.

유용한 점검 사항은 다음과 같습니다.

sudo cryptsetup status cswap
systemctl status systemd-cryptsetup@cswap.service
systemctl status dev-mapper-cswap.swap
journalctl -b -u systemd-cryptsetup@cswap.service

특이한 매퍼 이름의 경우 유닛 이름이 다르게 이스케이프될 수 있으므로 systemctl list-units '*cryptsetup*'정확한 서비스 이름이 명확하지 않은 경우 이스케이프 처리를 사용하십시오.

SSD 폐기는 어떻게 처리하나요?

단순히 이론적인 SSD 성능 향상만을 위해 기본적으로 discard 기능을 활성화하지 마십시오. Debian의 crypttab 문서에 따르면 암호화된 장치를 통해 discard 요청을 전달하는 것은 보안에 문제가 될 수 있습니다. Debian의 swapon 설명서에서도 discard 기능이 일부 SSD에서 성능을 향상시킬 수 있지만, 대부분의 경우 그렇지 않다고 언급합니다. discard 기능이 필요한 경우, 먼저 스토리지 모델과 보안 위협 모델을 평가한 후 신중하게 추가하십시오.

루트 파일 시스템이 암호화되지 않은 경우 암호화된 스왑은 여전히 ​​유용할까요?

네, 하지만 그 한계를 이해해야 합니다. 암호화된 스왑은 스왑 파티션에 기록된 메모리 페이지를 보호합니다. 암호화되지 않은 루트 또는 홈 파일 시스템에 저장된 파일, 셸 기록, 애플리케이션 캐시, 크래시 덤프, 임시 파일 또는 로그는 암호화하지 않습니다. 디스크 도난으로 인한 데이터 노출을 광범위하게 방지하려면 전체 디스크 또는 파일 시스템 암호화가 더 완벽한 보호 방법입니다.

최종 체크리스트

  • 대상이 스왑 파일이 아닌, 암호화되지 않은 전용 스왑 파티션인지, 또는 암호화된 상위 장치에 의해 이미 보호되고 있지 않은지 확인하십시오.
  • 다음과 같은 안정적인 파티션 경로를 기록하십시오 /dev/disk/by-partuuid/....
  • dm-crypt를 구성하기 전에 raw swap을 비활성화하십시오.
  • random-key plain-dm-crypt 항목을 에 추가합니다 /etc/crypttab.
  • /etc/fstab오직 만 가리 키세요 /dev/mapper/cswap.
  • 매핑을 활성화하고 재부팅하기 전에 확인하십시오.
  • 이전 스왑이 재개 장치였다면 설정 RESUME=none후 실행하세요 update-initramfs -u.
  • 재부팅 후 암호화된 매퍼만 스왑으로 활성화되어 있는지 확인하십시오.

최대 절전 모드를 지원하지 않는 Debian 12 시스템의 경우, 이 접근 방식은 구성 크기를 최소화하고 영구적인 스왑 키를 저장하지 않아도 되도록 합니다. 핵심은 "어떤 암호화 명령을 실행해야 하는가?"가 아니라, 임의 키 스왑 방식이 전원 관리 요구 사항에 부합하는지 여부입니다. 이 부분이 결정되면, 나머지는 원시 스왑 파티션에서 매 부팅 시 안전하게 다시 생성되는 dm-crypt 매핑으로의 제어된 마이그레이션 과정입니다.

댓글 남기기

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.

리눅스에 Cisco Packet Tracer를 설치하는 방법

리눅스에 Cisco Packet Tracer를 설치하는 방법

Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.

XFCE 4에서 듀얼 패널을 설정하는 방법

XFCE 4에서 듀얼 패널을 설정하는 방법

각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.