Yeni 4.1 çekirdeği ile Ubuntu 15.04'te ext4 şifreli bölüm nasıl oluşturulur?


Yanıtlar:


9

Ö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).

  • e2fsprogsYukarıda gösterildiği gibi güncelleyin
  • Rastgele 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 sudokomut 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_keykomut 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_keydoğ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.
    

Arch wiki'deki makale, yazarı aşağıdaki adımlardan bazılarını basitleştirmek için bir program yazan aşağıdaki blog gönderisini okumayı önermektedir: blog.quarkslab.com/… 16.04 yazılırken hala geliştirilmekte ve karşılık gelen iki çekirdek yapılandırmasına sahiptir. seçenekler ayarlanırsa, e2fsprogs hala 1.42 sürümündedir.
LiveWireBT

Eh ... Bu talimatları denedim ve klasörüm engellendi ... 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.
Alexis Wilke

" /usr/bin/e4crypt" İfadesinin ikinci örneğinde "/ [s] bölmesindeki" s "eksik.
Alexis Wilke

3

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_KEYSve 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 keyutilspaketi 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.


Bu yanıtta ciddi biçimlendirme sorunları vardı. Elimden geldiğince geliştirmeye çalıştım, ancak birisinin neden açık bir şekilde biçimlendirme formatını kullanmaya, karmaşık komutları ele almaya ve aynı zamanda Arch wiki'de benzer bir düzenleme yapmaya çalıştığını anlamıyorum. önizlemede görüntülenen çöpte ve olduğu gibi bırakmaya karar verin. Hatların neden kaldırılması gerektiği konusunda tatmin edici bir açıklama veya daha fazla referans yoktur. Ayrıca, debuild'i amaçlanmayan bir şekilde kullanması önerilir (debianized bir paket ile Debian'da deneysel bir paket vardır) ve çalışmaz. -1
LiveWireBT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.