데비안에서 무작위로 키를 사용하여 암호화 된 스왑 파티션을 만드는 방법은 무엇입니까?


8

GNU / Linux 시스템에 어떤 종류의 블록 장치 암호화가 구현되어 있다면, 스왑 파티션을 암호화하는 것도 가능합니다. 해독 된 데이터는 언제든지 스왑에 일반 텍스트로 기록 될 수 있기 때문입니다.

"crypttab"에 대한 데비안 맨 페이지를 보면 부팅시 무작위로 키가 지정된 스왑 파티션을 만드는 예를 볼 수 있으므로 부팅이 진행되고 시스템 자체에만 알려지면 키가 무작위로 설정됩니다.

# Encrypted swap device
cswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap

이 예에서, 스왑 장치는 종래의 개발 경로에 의해 참조된다. /dev/sda6

예를 들어 USB 드라이브가 연결되어있는 경우 부팅시 절대 장치 경로가 변경되고 다시 할당 될 수 있습니다. /dev/sda6예상 한 것과 다른 파티션 이되어서 사용자가 무작위로 스왑 데이터를 덮어 쓴 다면 사용자는 매우 불만 스러울 것입니다 !!

대체 (UUID를해야하지 변화와 같은) 장치 경로 대신 UUID를 사용 솔루션이 될 것 같다 그래서 /dev/sda6함께/dev/disk/by-uuid/<whatever the uuid of dev/sda6 is>

그러나 ... 여기에 문제가 있습니다 : cryptsetup이 부팅시 암호화 된 스왑 파티션을 다시 만들 때마다 새로운 UUID를 생성합니다! 도!

따라서이 암호화 된 파일 시스템의 UUID를 어떻게 든 보존해야합니다. cryptsetup은 --offset스위치 로이 작업을 수행 하여 LUKS 헤더와 UUID를 보존 할 수 있다고 생각 합니다.

이 URL을 찾았습니다 : https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS#Using_UUIDs_with_encrypted_swap_partitions

누구든지 데비안 OS에서 아치 리눅스에 대해 설명 된 솔루션을 구현하는 방법을 알고 있습니까? 문서에 언급 된 init 스크립트가 데비안 OS에 존재하지 않는 것 같습니다

감사!

편집 다음 명령을 사용하여 ecryptfs 를 사용 하여 동일한 끝 (암호화 된 스왑 공간)을 얻을 수 있습니다 ecryptfs-setup-swap . 블록 장치 암호화를 설정하는 문제없이. 이 AskUbuntu 쿼리를 살펴보십시오


"하나는 ecryptfs를 사용하여 같은 목적을 달성 할 수있다 ...] 아니요, 당신을 위해 / 를 ecryptfs-setup-swap구성하는 도우미 일뿐 입니다. 로 파일 수준의 드라이버가 해당 오프 농장, 그래서 그것은, 전체 파티션을 처리하지 않습니다 . 이 방법이 더 사용자 친화적 인 것을 알 수 있지만 궁극적으로는 다른 것을 달성하지 못합니다. 어쨌든이 방법 (UUID 포함)의 단점으로 인해 첫 번째 원칙에서 방금 수행 한 것보다 혼란 스럽습니다. dm-cryptcrypttabecryptfsdm-crypt
underscore_d

답변:


6

부팅시 cryptsetup이 암호화 된 스왑 파티션을 다시 만들 때마다 새로운 UUID를 생성합니다! 도!

/ etc / crypttab에서 / dev / disk / by-UUID 대신 / dev / disk / by-id를 사용 하여 스왑 파티션을 참조하십시오. 예를 들어, swap에 대한 / etc / fstab 항목은 다음과 같습니다.

#<file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/cswap none swap sw 0 0

그러면 / etc / crypttab의 올바른 해당 항목은 다음과 같습니다.

# <name> <device> <password> <options>
cswap /dev/disk/by-id/ata-SAMSUNG_SSD_830_Series_S0XYNEAC762041-part5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256

위의 장치는 / dev / disk / by-id로 참조되며 CLI에서 다음을 입력하여 드라이브를 찾을 수 있습니다.

ls -lF /dev/disk/by-id

by-id 이름은 모델과 일련 번호를 모두 나타냅니다. 이는 다른 장치와 겹치지 않을 가능성이
큽니다

... 궁금한 독자의 이익을 위해 매우 좋은 것입니다. 암호화 된 스왑을 구성하고 싶지 않다면 /dev/sdaN언젠가 다른 디스크를 연결하고 커널 이름 지정 순서가 바뀌었고 스왑이 아닌 파티션 중 하나가 휴지통에있는 것을 알 수 있습니다. UUID도 좋을 것이지만, 핵심 문제는 파티션의 처음 몇 바이트에 저장되어 있기 때문에 여기서 논의되는 불용성 닭과 계란 시나리오를 얻는 것입니다.
underscore_d

3

내 / etc / crypttab에서

# <target name>  <source device>        <key file>   <options>
swap             /dev/mapper/cswap      /dev/random  swap

여기서 / dev / mapper / cswap은 LVM에서 만든 논리 볼륨으로, 드라이브 문자 이름에 관계없이 논리 볼륨 이름을 올바르게 할당합니다. 또한 스왑 파티션의 크기를 쉽게 조정할 수 있습니다.


0

init 파일을 무시하고 나머지 솔루션을 구현하십시오. 그것은 init 스크립트의 비트가 당신을 보호하기 위해 존재하는 것처럼 보입니다. 데비안은 그런 식으로 당신을 보호하지 못하거나, 부팅 할 때 오류 메시지를 보내서 올바른 위치로 안내 할 것입니다.

또한 IIRC 데비안과 ArchLinux는 / etc / crypttab에 대해 다른 형식을 가지고 있음에주의해야합니다.


답변 주셔서 감사합니다. 예, 아치 스크립트가 파티션이 스왑 파티션으로 보이는지 확인하기 위해 온전한 검사임을 동의합니다. 그러나 스왑이 아닌 파티션이 사용되도록 USB 드라이브를 꽂은 상태에서 재부팅하는 것을 상상하고 있습니다. 나는 진짜 눈물을 흘릴 것 같아 ... 내가 얻을 수있는 모든 위생 검사에 감사합니다!
Geeb

UUID를 사용하여 처음부터 찾을 수 있기 때문에 이런 일이 발생하지 않아야합니다. 따라서 스왑 파티션 만 있으면됩니다.
idupree

0

ecryptfs-setup-swap을 실행하거나 수동으로 실행하십시오.

이 구성은 부팅시 임의로 생성 된 키를 사용하며 하드 디스크에 대한 최대 절전 모드를 지원하지 않습니다! 존경하는 DE 전원 관리 유틸리티를 통해 최대 절전 모드를 비활성화하고 데이터 손실을 피하려면 긴급시 종료로 설정하십시오!

관리자 / 루트 계정으로 전환

각 명령에 대한 su root 또는 sudo

스왑 비활성화

스왑 오프 -a

기존 스왑 파티션 찾기

lsblk

예 : sda3 8 : 3 0 8G 0 부분 [SWAP]

이전 스왑 덮어 쓰기

dd if = / dev / zero bs = 1024000 of = / dev / sda <#>

예 : dd if = / dev / zero bs = 1024000 of = / dev / sda3

FSTAB 설정

vim / etc / fstab

기존 SWAP 장치를 crypttab 맵퍼 이름으로 교체하십시오 : / dev / mapper / cswap

기존 UUID = d03f3d8e-7888-48a5-b3cc-41de8dbbcfdc 스왑 스왑 기본값 00

새로운

/ dev / mapper / cswap none swap pri = 1, 기본값은 0 0

암호화 설정

ls -lF / dev / disk / by-id

예 : ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3-> ../../sda3

vim / etc / crypttab

cswap / dev / disk / by-id / ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 / dev / urandom 스왑, 암호 = aes-cbc-essiv : sha256, 크기 = 256

활성 암호화 스왑

컴퓨터를 재부팅

암호화 된 스왑 작업 확인

dmsetup -C 정보

예 : cswap 253 0 L--w 2 1 CRYPT-PLAIN-cswap

lsblk

예 ├─sda3 8 : 3 0 8G 0 부분
│ └─cswap 253 : 0 8G 0 암호 [SWAP]

고양이 / proc / swaps

예 : 파일 이름 유형 크기 우선 순위 / dev / dm-0 파티션 8385532 0 -1

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.