태그 보관물: 15.04

15.04

새로운 4.1 커널로 Ubuntu 15.04에서 ext4 암호화 파티션을 만드는 방법은 무엇입니까? 암호화 된 파티션을 만들 수 있습니까 ?

ext4Ubuntu 15.04에서 커널 4.1을 사용하여 새 암호화 된 파티션을 만들 수 있습니까 ?



답변

먼저 면책 조항 : 우분투로는이 작업을 수행하지 않았지만 데비안 “Stretch”가 설치된 시스템에서 사용자 정의 Linux 4.2.3 커널을 사용하여 설치 EXT4_FS_ENCRYPTION했습니다.

kmeaw 가 제공 한 지침 은 게시 된대로 정확하게 작동하지 않습니다. 몇 가지 사항이 누락되었습니다 (명령 줄 매개 변수 및 단계).

  • e2fsprogs위와 같이 업데이트
  • 임의의 소금을 생성하십시오. 다음을 사용하여 “안전한 장소”에 저장했습니다.

    head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
    echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
    
  • 파일 시스템에서 ext4 암호화를 사용하려면 수퍼 블록에 “encrypt”플래그를 설정해야합니다. 이것은 ext4 파일 시스템이 작성 될 때의 기본값이 아닙니다. e2fsprogs 1.43 이상에서 “tune2fs”유틸리티를 사용하여 “encrypt”옵션을 설정하십시오.

    sudo tune2fs -O encrypt /dev/sda4
    
  • 커널이 변경 사항을 알 수 있도록 파일 시스템을 마운트하거나 다시 마운트하십시오 (자동 일 수도 있지만 별도의 파티션에서만 수행했기 때문에 확실하지 않습니다).

  • 암호화를 사용하여 마운트 된 파일 시스템에 디렉토리를 작성하십시오.

    sudo mkdir -p /secret/home/$USER
    sudo chown $USER:$USER /secret/home/$USER
    
  • 키링에서 키를 작성하고이를 사용하여 디렉토리의 암호화 정책을 설정하십시오 ( sudo여기서는 명령이 필요하지 않음).

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    $ /usr/bin/e4crypt set_policy 0132fed69f946c86 /secret/home/$USER
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    
  • 재부팅 add_key할 때마다이 명령을 사용하여 디렉토리 및 해당 하위 항목의 암호 해독을위한 키를 설정할 수 있습니다.

    $ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
    Enter passphrase (echo disabled):
    Added key with descriptor [0132fed69f946c86]
    

    이전 단계에서 사용한 것과 동일한 암호를 입력하면 설명자 16 진 문자열을 기억할 필요가 없습니다.

  • add_key직접 사용할 수도 있습니다. 이것은 파일 시스템 고유의 소금을 사용합니다 (따라서 해당 파티션 아래의 모든 폴더는 동일한 소금을 갖습니다)

    $ /usr/sbin/e4crypt add_key /secret/home/$USER
    Added key with descriptor [0132fed69f946c86]
    Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
    

답변

Linux 4.1에는 파일 시스템의 디렉토리를 암호화하는 새로운 Ext4 기능이 포함되어 있습니다. 암호화 키는 키링에 저장됩니다. 시작하려면 활성화 CONFIG_KEYSCONFIG_EXT4_FS_ENCRYPTION커널 옵션이 있고 커널 4.1 이상이 있는지 확인하십시오 .

우선, e2fsprogs를 버전 1.43 이상으로 업데이트해야합니다. 버전 1.43은 작성시 여전히 WIP이므로 git 저장소 에서 가져와야 합니다 .

$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git

e4crypt 소스가 소스 코드에서 관련 섹션을 비활성화했습니다. misc / e4crypt.c를 편집하고 714 행 근처에서이 두 줄을 제거하여 활성화하십시오.

    printf("arg %s\n", argv[optind]);
    exit(0);

이제 새로운 e2fsprogs를 빌드하고 설치하십시오 :

$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb

지금 버전을 확인하십시오. 1.43-WIP 여야합니다.

# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
        Using EXT2FS Library version 1.43-WIP, 18-May-2015

키를 사용하려면 keyutils패키지 를 설치해야 합니다.

$ sudo apt-get install keyutils

암호화 할 디렉토리를 만들어 봅시다. 빈 디렉토리에서만 암호화 정책을 설정할 수 있습니다.

$ sudo mkdir -p /encrypted/dir

먼저 임의의 소금 값을 생성하여 안전한 장소에 보관하십시오.

$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459

이제 키링에 새 키를 생성하고 추가하십시오. 키 체인을 플러시 할 때마다이 단계를 반복해야합니다 (재부팅)

$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled):
Added key with descriptor [f88747555a6115f5]

이제 키에 대한 설명자를 알고 있습니다. 키 체인에 키를 추가했는지 확인하십시오.

$ keyctl show
Session Keyring
1021618178 --alswrv   1000  1000  keyring: _ses
 176349519 --alsw-v   1000  1000   \_ logon: ext4:f88747555a6115f5

거의 다됐다. 이제 디렉토리에 대한 암호화 정책을 설정하십시오.

$ e4crypt set_policy f88747555a6115f5 /encrypted/dir

그게 다야. 키 체인에 키를 추가하지 않고 디스크에 액세스하려고하면 파일 이름과 해당 내용이 암호화 된 횡설수설로 표시됩니다. 파일 시스템에서 이전 버전의 e2fsck를 실행하는 데주의하십시오. 암호화 된 파일 이름을 유효하지 않은 것으로 간주합니다.


답변