ext4
Ubuntu 15.04 üzerinde çekirdek 4.1 ile yeni bir şifreli bölüm oluşturabilir miyim ?
ext4
Ubuntu 15.04 üzerinde çekirdek 4.1 ile yeni bir şifreli bölüm oluşturabilir miyim ?
Yanıtlar:
Öncelikle bir feragatname: Bunu Ubuntu ile yapmadım, ancak Debian "Stretch" i etkinleştirdiğim özel bir Linux 4.2.3 çekirdeği kullanılarak yüklenmiş bir makinede yaptım EXT4_FS_ENCRYPTION
.
Kmeaw tarafından verilen talimatlar benim için yayınlandığı gibi çalışmaz. Birkaç şey dışarıda bırakıldı (komut satırı parametreleri ve adımlar).
e2fsprogs
Yukarıda gösterildiği gibi güncelleyinRastgele tuzunuzu üretin. "Güvenli bir yerde" saklamak için aşağıdakileri kullandım:
head -c 16 /dev/urandom | xxd -p >~/tmp-salt.txt
echo 0x`cat ~/tmp-salt.txt` >~/.cryptoSalt
Dosya sisteminde ext4 şifrelemesi kullanmak için, süper blokta "şifreleme" bayrağının ayarlanması gerekir. Ext4 dosya sistemi oluşturulduğunda bu varsayılan değildir. E2fsprogs 1.43 veya sonraki sürümlerden "tune2fs" yardımcı programını kullanarak "şifreleme" seçeneğini ayarlayın:
sudo tune2fs -O encrypt /dev/sda4
Çekirdek değişikliği hakkında bilgi böylece dosya sistemini bağlayın veya yeniden monte edin (belki otomatiktir, ancak bunu sadece ayrı bir bölümde yaptım, bu yüzden emin değilim.)
Şifrelemenin etkinleştirilmiş olduğu dosya sisteminde bir dizin oluşturun:
sudo mkdir -p /secret/home/$USER
sudo chown $USER:$USER /secret/home/$USER
Anahtarı anahtarlıkta oluşturun ve şifrelenecek dizinin ilkesini ayarlamak için kullanın (burada sudo
komut gerekmez):
$ /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.
Her yeniden başlatmadan sonra, add_key
komut dizinin ve onun torunlarının şifresini çözmek için anahtarı ayarlamak için kullanılabilir:
$ /usr/sbin/e4crypt add_key -S s:`cat ~/.cryptoSalt`
Enter passphrase (echo disabled):
Added key with descriptor [0132fed69f946c86]
Önceki adımda kullanılan parolayı girin ve açıklayıcı hex dizesini hatırlamanız gerekmez.
Ayrıca add_key
doğrudan kullanabilirsiniz . Bu, dosya sistemine özgü bir tuz kullanır (Bu nedenle, bu bölümün altındaki tüm klasörler aynı tuza sahip olacaktır)
$ /usr/sbin/e4crypt add_key /secret/home/$USER
Added key with descriptor [0132fed69f946c86]
Key with descriptor [0132fed69f946c86] applies to /secret/home/theuser.
cp .. /secret/home/$USER/.
anladım: «cp: normal dosya oluşturamıyorum '/secret/home/alexis/test-top-secret-image.svg': Gerekli anahtar değil kullanılabilir » . Talimatlarını yeni izledim, sanırım bir şeyler değişti.
/usr/bin/e4crypt
" İfadesinin ikinci örneğinde "/ [s] bölmesindeki" s "eksik.
Linux 4.1, bir dosya sisteminin dizinlerini şifrelemek için yeni bir Ext4 özelliğiyle birlikte gelir. Şifreleme anahtarları anahtarlıkta saklanır. Başlamak için, çekirdek seçeneklerini etkinleştirdiğinizden CONFIG_KEYS
ve CONFIG_EXT4_FS_ENCRYPTION
çekirdek 4.1 veya üstü olduğundan emin olun .
Her şeyden önce, e2fsprogs'u yazma sırasında hala WIP olan en az 1.43 sürümüne güncellemeniz gerekiyor, bu yüzden git deposundan almamız gerekiyor :
$ git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
e4crypt kaynağı, kaynak kodunda ilgili bir bölümü devre dışı bırakmış, misc / e4crypt.c dosyasını düzenleyerek ve bu iki satırı 714 satırının yakınında kaldırarak etkinleştirmiştir:
printf("arg %s\n", argv[optind]);
exit(0);
Şimdi yeni e2fsprogs oluşturun ve kurun:
$ sudo apt-get install devscripts build-essential gettext texinfo pkg-config debhelper m4
$ debuild
$ sudo dpkg -i e2fsprogs_1.43-WIP_amd64.deb
Sürümünüzü şimdi kontrol edin, 1.43-WIP olmalıdır:
# e2fsck -V
e2fsck 1.43-WIP (18-May-2015)
Using EXT2FS Library version 1.43-WIP, 18-May-2015
Anahtarlarla çalışmak için keyutils
paketi yüklememiz gerekir :
$ sudo apt-get install keyutils
Şifreleyeceğimiz bir dizin oluşturalım. Şifreleme ilkesi yalnızca boş dizinlerde ayarlanabilir:
$ sudo mkdir -p /encrypted/dir
İlk önce rastgele bir tuz değeri oluşturun ve güvenli bir yerde saklayın:
$ head -c 16 /dev/random | xxd -p
877282f53bd0adbbef92142fc4cac459
Şimdi anahtarlığınıza yeni bir anahtar oluşturun ve ekleyin: bu adım, anahtarlığınızı her yıkadığınızda tekrarlanmalıdır (yeniden başlat)
$ sudo e4crypt -S 0x877282f53bd0adbbef92142fc4cac459
Enter passphrase (echo disabled):
Added key with descriptor [f88747555a6115f5]
Artık anahtarınız için bir tanımlayıcı biliyorsunuz. Anahtarlığınıza bir anahtar eklediğinizden emin olun:
$ keyctl show
Session Keyring
1021618178 --alswrv 1000 1000 keyring: _ses
176349519 --alsw-v 1000 1000 \_ logon: ext4:f88747555a6115f5
Neredeyse bitti. Şimdi bir dizin için bir şifreleme politikası ayarlayın:
$ e4crypt set_policy f88747555a6115f5 /encrypted/dir
Bu kadar. Anahtar zincirine anahtar eklemeden diske erişmeye çalışırsanız, dosya adları ve içerikleri şifreli anlamsız olarak görünür. Dosya sisteminizde eski e2fsck sürümlerini çalıştırırken dikkatli olun; şifrelenmiş dosya adlarını geçersiz kabul eder.