파일 내에 암호화 된 파일 시스템을 작성하는 방법


16

내가 발견 한 flossstuff 블로그에 흥미로운 튜토리얼을 .

빈 파일을 작성하고 ext4로 형식화 한 후 장치로 마운트하는 방법에 대해 설명합니다.

암호화 된 ext4 파일 시스템으로 만들 수 있는지 알고 싶습니다.

이미 작성된 파일 시스템을 포맷하기 위해 palimpsest (시스템 메뉴에있는 디스크 유틸리티)를 사용해 보았지만 사용중인 파일 시스템을 감지하면 작동하지 않습니다.

파일 시스템을 마운트 해제하려고하면 장치를 감지하지 못하기 때문에 작동하지 않습니다 (하드 드라이브 또는 USB 드라이브와 같은 실제 장치가 아니기 때문에).

그래서 제 질문은 파일 시스템을 처음부터 암호화하여 생성하는 옵션이 있습니까? 이 명령을 사용했습니다.

빈 파일 200Mb 크기를 만듭니다.

dd if=/dev/zero of=/path/to/file bs=1M count=200

그것을 ext4로 만드십시오 :

mkfs -t ext4 file

집 안의 폴더에 마운트하십시오.

sudo mount -o loop file /path/to/mount_point

mkfs명령이 암호 해독 암호를 요구하는 암호화 된 ext4 파일 시스템을 작성할 수 있는 방법이 있습니까?

Dropbox 내부의 파일을 암호화하는 방법으로 이것을 사용할 계획입니다.



파일을 백업 할 때 적절한 암호화를 원한다면 SpiderOak을 고려할 수 있습니다. 더 많은 보안과 적은 소란.
landroni

답변:


8

cryptmount파일 시스템이 파일에있는 경우에도 파일 시스템을 암호화하는 데 사용할 수 있습니다 .

cryptmount매뉴얼 페이지는 여기에 내가 (수정) 보고서있는 매우 간단하고 자세한 설명을 가지고 있으며, 그것은 할 명시 적으로 파일 기반의 파일 시스템을 언급.

  • 1 단계 다음과 같이에
    항목을 추가하십시오 /etc/cryptmount/cmtab.

    mycrypt {
        dev=/media/data/mycrypt dir=/home/enzotib/mycrypt
        fstype=ext4 mountoptions=defaults cipher=twofish
        keyfile=/etc/cryptmount/mycrypt.key
        keyformat=builtin
    }
    

    여기서 /media/data/mycrypt의해 생성 된 지원 파일은 dd/home/enzotib/mycrypt원하는 마운트 포인트이다.

  • 2 단계
    비밀 암호 해독 키 생성

    sudo cryptmount --generate-key 32 mycrypt
    
  • 3 단계
    다음 명령을 실행합니다

    sudo cryptmount --prepare mycrypt
    

    그런 다음 키를 설정할 때 사용되는 비밀번호를 묻는 메시지가 표시됩니다

  • 4 단계
    파일 시스템 생성

    sudo mkfs.ext4 /dev/mapper/mycrypt
    
  • 5 단계
    실행

    sudo cryptmount --release mycrypt
    
  • 6 단계
    이제 파일 시스템을 마운트하십시오

    mkdir /home/enzotib/mycrypt
    cryptmount -m mycrypt
    

    그런 다음 마운트 해제

    cryptmount -u mycrypt
    

또한 디렉토리를 암호화해야하는 경우 encfs고려해야 할 수도 있습니다.


귀하의 답변에 감사드립니다. 파일 시스템을 만들고 암호화하여 Dropbox에 업로드했습니다. 나중에 다른 PC에 해당 파일을 마운트하려고합니다. 한 가지만, sudo없이 할 수 있습니까? 파일과 파일 시스템을 내 집 (usb 또는 hardrive와 같은 미디어가 아닌)에 마운트 된 상태로 유지하려면 명령이 sudo없이 동일하거나 cryptmount에 항상 루트 권한이 필요합니까?
animaletdesequia

1
@darent : 파일 시스템 설정에서만 명령에 루트 권한이 필요한 것 같지만 이미지 파일과 마운트 지점이 사용자가 소유 한 경우 마운트 / 마운트 해제는 사용자 작업입니다. 다른 컴퓨터에서 동일한 이미지 파일을 설정하려면 , 단계를 복사 /etc/cryptmount/mycrypt.key하여 건너 뛰어야 한다고 가정합니다 --generate-key.
enzotib

마지막 단계에서이 오류가 발생합니다. $ sudo cryptmount -m encriptat 대상 "encriptat"의 암호를 입력하십시오. .. fsck.ext4 : 수퍼 블록의 악의적 인 마법 / dev / mapper / encriptat
animaletdesequia

1
@darent : 4 단계와 같이 파일 시스템을 만들었습니까? "mycrypt"라는 이름을 "encriptat"으로 바 꾸었습니까?
enzotib

죄송합니다, 오류는 (sudo mkfs.ext4 / dev / mapper / mycrypt) 대신 (sudo mkfs.ext4 mycript)를 입력했기 때문에 발생했습니다. 나는 장치가 아니라 파일에 직접 찔렀다. 이제는 완벽하게 작동합니다. 그리고이 메시지의 형식에 대해 죄송합니다. 왜 내가 줄을 분리 할 수 ​​없는지 모르겠습니다 (Enter 키를 누르면 새로운 줄을 만드는 대신 주석을 게시합니다. 어쩌면 파이어 폭스 글리치 ...) 건배! 편집 : 이제 귀하의 답변을 읽었습니다. encriptat 이름은 문제가되지 않았습니다 (단지 게시물을 수정하고 카탈로니아 어 이름으로 파일을 넣었지만 모두 일관성이 있습니다). Everithing은 이제 다시 작동합니다. :)
animaletdesequia

7

다음 단계에 따라 파일 시스템이 내부에 암호화 된 파일을 작성하십시오.

1. 주어진 크기의 파일을 만드는 가장 빠른 방법은 다음과 같습니다

fallocate -l 128M /path/to/file

2. dm-crypt 도구를 사용하여 파일 내에 LUKS (Linux Unified Key Setup) 파티션을 만듭니다 .

cryptsetup -y luksFormat /path/to/file

파일이 암호화 된 컨테이너인지 확인할 수 있습니다.

/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00

3. 암호화 된 컨테이너를 엽니 다.

cryptsetup luksOpen /path/to/file data

data장치 매퍼 볼륨 이름입니다. 다른 이름을 선택할 수 있습니다.

이것은 LUKS 장치를 열고 우리가 제공 한 이름에 매핑합니다. /dev/mapper/data .

4. 작성 ext4이 장치에 파일 시스템을 :

mkfs.ext4 /dev/mapper/data

5. 그런 다음 마운트 지점을 만듭니다.

mkdir /path/to/mount

6. 그리고 거기에 장치를 마운트하십시오 :

mount /dev/mapper/data /path/to/mount

7. 파일 시스템을 마운트 해제하고 LUKS 장치를 닫으려면 다음을 수행하십시오.

umount /path/to/mount
cryptsetup luksClose data

이제 ext4 파일 시스템이있는 LUKS 컨테이너를 암호화했습니다. 사용하려면 간단히 3 단계와 6 단계를 반복하십시오. 완료되면 7 단계를 호출하십시오.

이 기사 는 나에게 매우 도움이되었다.

또한 언젠가는 컨테이너 공간이 부족합니다. 암호화 된 컨테이너 파일 크기가 128MB이고 크기를 512MB로 늘리고 싶다고 가정하십시오. 용량늘리 려면 다음 단계를 수행하십시오.

1. LUKS 장치를 마운트 해제하고 닫습니다 (위 목록의 7 단계 참조).

2. 컨테이너 파일 크기를 늘리십시오.

 dd if=/dev/zero of=/path/to/file bs=384M count=1 oflag=append conv=notrunc

3. LUKS 장치를 엽니 다.

cryptsetup luksOpen /path/to/file data

4. 컨테이너 파일 크기와 일치하도록 LUKS 장치의 크기를 조정하십시오. 매뉴얼 페이지에서 :

--size (섹터 단위)를 지정하지 않으면 기본 블록 장치의 크기가 사용됩니다.

그래서 당신은 할 수 있습니다 :

cryptsetup resize data

5. 그런 다음에서 ext4 파일 시스템의 크기를 조정 :

e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data

6. 이제 파일 시스템을 다시 마운트 할 수 있습니다 :

mount /dev/mapper/data /path/to/mount

1
이 답변이 가장 좋고 최신 답변이라고 생각합니다. 정답으로 선택해야합니다!
yurtesen

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