ext4
Ubuntu 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_KEYS
및 CONFIG_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를 실행하는 데주의하십시오. 암호화 된 파일 이름을 유효하지 않은 것으로 간주합니다.