Linux에서 암호화 된 스왑 파일을 설정하는 방법


15

2017 경고! 수락 된 답변은 효과가있는 것처럼 보이지만 최근 커널을 사용하면 스왑을 시작하자마자 시스템이 정지한다는 것을 알았습니다. 암호화 된 스왑 파일을 사용하려고하면 실제로 제대로 스왑 파일인지 확인하십시오. 왜 시스템이 명백한 이유없이 잠금 상태를 유지했는지 알아내는 데 오랜 시간이 걸렸습니다. 암호화 된 스왑 파티션을 사용하여 다시 작동했습니다.이 파티션은 올바르게 작동합니다.


Linux에서 암호화 된 스왑 파일 (파티션 아님)을 어떻게 설정합니까? 가능합니까? 내가 찾은 모든 가이드는 암호화 된 스왑 파티션에 대해 이야기하지만 스왑 파티션이 없으며 디스크를 다시 파티션 할 필요가 없습니다.

디스크 일시 중단 지원이 필요하지 않으므로 부팅 할 때마다 임의의 키를 사용하고 싶습니다.

이미 데이터에 TrueCrypt 파일 호스팅 볼륨을 사용하고 있지만 해당 볼륨에 스왑을 넣고 싶지 않습니다. 더 나은 솔루션이 있다면 스왑 파일에 TrueCrypt를 사용하도록 설정하지 않았습니다.

내가 사용하고 아치 리눅스를 문제가있는 경우, 기본 커널.


그 점이 정확히 무엇입니까? 사용하는 동안 암호를 해독해야하며 사용하지 않을 때는 비어 있습니다.
tkbx 2019

1
encrypted swapfile첫 번째 결과 를 검색하면 rayslinux.blogspot.de/2011/01/…로
ott--

@ott 제목에서 "스왑 파일"이라고 말했지만 해당 게시물의 지시 사항을 읽으면 스왑 파티션을 명확하게 설명하고 있습니다.
CJM

@ tkbx, 요점은 컴퓨터를 끈 후 누군가가 스왑 파일에서 중요한 데이터를 복구하지 못하게하는 것입니다. (또는 누군가 내 비밀번호를 추측 할 수 없어서 라이브 CD 등으로 재부팅하고 있습니다.)
cjm

2
@ tkbx, 나는 그렇게 믿지 않습니다. 컴퓨터를 끌 때마다 기가 바이트의 데이터를 기록해야합니다. 스왑 파일의 데이터는 사용 되지 않습니다 재부팅 할 때 되지 않지만 디스크에서 지워지는 것은 아닙니다.
CJM

답변:


14

실제로, 페이지 는 파티션 설정을 설명하지만 스왑 파일과 비슷합니다.

dd if=/dev/urandom of=swapfile.crypt bs=1M count=64
loop=$(losetup -f)
losetup ${loop} swapfile.crypt
cryptsetup open --type plain --key-file /dev/urandom ${loop} swapfile
mkswap /dev/mapper/swapfile
swapon /dev/mapper/swapfile

결과:

# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/swap0                       partition       4000176 0       -1
/dev/mapper/swap1                       partition       2000084 0       -2
/dev/mapper/swapfile                    partition       65528   0       -3

swap0과 swap1은 실제 파티션입니다.


loop-AES.README 는 7.1 절에서 "파일 백업 루프를 스왑에 사용할 수 없습니다"라고 말합니다. 그게 사실이 아닌가 (또는 루프 AES에만 해당 되는가)?
CJM

그것은 장치 매퍼가 없습니다.
ott-- 2019

나는 당신으로 cryptsetup 명령을 사용하여 개정 open대신 create(맨 페이지가 사용되지 않습니다라고하는) 대신 암호를 입력하라는 메시지의 임의의 키를 사용 할 수 있습니다. 작동하는 것 같습니다.
CJM

재부팅시에도 지속되지 않는 것 같습니다 : "swapon : / dev / mapper / swapfile을 열 수 없습니다 : 해당 파일이나 디렉토리가 없습니다"
therobyouknow

6

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

다음 을 실행 하기 전에 sudo -s또는 실행해야합니다 su.

  1. 스왑 비활성화 :

    # swapoff -a
    
  2. 기존 스왑 파티션 찾기

    # lsblk
    

    다음과 같은 것을 얻을 것입니다 :

    sda3    8:3    0     8G  0 part [SWAP]
    
  3. 이전 스왑 덮어 쓰기

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

    예를 들면 다음과 같습니다.

    # dd if=/dev/zero bs=1024000 of=/dev/sda3
    
  4. fstab 설정

    # vim /etc/fstab
    

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

    #<file system>      <mount point>   <type>  <options>   <dump>  <pass>
    /dev/mapper/cswap   none            swap    pri=1,defaults  0   0
    
  5. 암호화 설정

    # ls -lF /dev/disk/by-id
    

    예를 들어 :

    ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 -> ../../sda3
    
    # vim /etc/crypttab
    
    # <name>    <device>                            <password>  <options>
      cswap     /dev/disk/by-id/ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3   /dev/urandom    swap,cipher=aes-cbc-essiv:sha256,size=256
    
  6. 활성 암호화 스왑

    # reboot
    
  7. 암호화 된 스왑 작업 확인

    예를 들면 다음과 같습니다.

    # dmsetup -C info 
    cswap      253   0 L--w    2    1      0 CRYPT-PLAIN-cswap  
    # lsblk
    ├─sda3                8:3    0     8G  0 part  
    │ └─cswap             253:0    0     8G  0 crypt [SWAP]
    # cat /proc/swaps 
    Filename                Type        Size    Used    Priority
    /dev/dm-0               partition   8385532 0       -1
    

1

dd if=/dev/zero of=/swapfile bs=8G count=1, 뒤에 mkswap /swapfile및 을 사용 swapon /swapfile하면 루트 파일 시스템에 작동중인 스왑 파일이 있어야합니다. ( dd스왑 파일에 구멍이 없는지 확인하기 위해 사용 합니다)

이것은 루프 장치 및 / 또는 crypttab을 혼란스럽게하고 스왑 파일을 이미 암호화 된 파일 시스템 안에 넣습니다. (여기서 전체 드라이브에 암호화를 사용한다고 가정합니다. /swapfile다른 곳에있는 경우 암호화 된 디렉토리의 경로를 매개 변수 앞에 추가하십시오 )

참조 man mkswapman swapon더 많은 정보를 얻을 수 있습니다.


암호화 된 홈 디렉토리에서 이와 같은 스왑 파일을 만들려고했는데 암호화 된 스왑 파일과 같은 방식으로 충돌이 발생했습니다.
fifaltra

시스템 부팅시 또는 로그인시 홈 디렉토리가 잠금 해제되어 있습니까? 로그인 할 때만 잠금 해제되면 스왑 파일을 사용할 수 없습니다. 스왑을 잠금 해제하고 시스템 부팅시 사용 가능해야합니다. 그 외에도, 사용자 홈 디렉토리에 시스템 항목을 원하지 않습니다. 그것은 사용자 물건을 위해 예약되어 있습니다.
Mio Rin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.