नए 4.1 कर्नेल के साथ Ubuntu 15.04 पर ext4 एन्क्रिप्टेड विभाजन कैसे बनाएं?


11

क्या मैं ext4Ubuntu 15.04 पर कर्नेल 4.1 के साथ एक नया एन्क्रिप्टेड विभाजन बना सकता हूं ?



यह डुप्लिकेट नहीं है क्योंकि मौजूदा उत्तरों में से कोई भी कर्नेल 4.1 में जोड़े गए विशेष सुविधा के बारे में नहीं है, संदर्भ: phoronix.com/…
LiveWireBT

जवाबों:


9

पहले एक अस्वीकरण: मैंने उबंटू के साथ ऐसा नहीं किया है, लेकिन डेबियन "स्ट्रेच" के साथ एक मशीन पर कस्टम लिनक्स 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 एन्क्रिप्शन का उपयोग करने के लिए, "एन्क्रिप्ट" ध्वज को सुपर-ब्लॉक में सेट किया जाना चाहिए। जब ext4 फ़ाइल सिस्टम बनाया जाता है तो यह डिफ़ॉल्ट नहीं होता है। E2fsprogs 1.43 या बाद के "ट्यून 2 एफ़" उपयोगिता का उपयोग करके, "एन्क्रिप्ट" विकल्प सेट करें:

    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]
    

    पिछले चरण में उपयोग किए गए समान पासवर्ड दर्ज करें, और आपको विवरणकर्ता हेक्स स्ट्रिंग को याद रखने की आवश्यकता नहीं है।

  • आप add_keyसीधे भी उपयोग कर सकते हैं। यह एक फाइलसिस्टम विशिष्ट नमक का उपयोग करेगा (इसलिए उस विभाजन के अंतर्गत सभी फ़ोल्डर में समान नमक होगा)

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

आर्क विकी में लेख निम्नलिखित ब्लॉग पोस्ट को पढ़ने का सुझाव देता है, जिसके लेखक ने कुछ चरणों को सरल बनाने के लिए एक कार्यक्रम लिखा था: blog.quarkslab.com/ ...... 16.04 लिखने के समय अभी भी विकास में है और इसमें दो संबंधित कर्नेल कॉन्फ़िगरेशन हैं विकल्प सेट, e2fsprogs हालांकि अभी भी संस्करण 1.42 पर है।
लाइववायरबेट

ठीक है ... मैंने उन निर्देशों की कोशिश की और मेरा फ़ोल्डर अवरुद्ध है ... cp .. /secret/home/$USER/.मुझे मिलता है: «cp: नियमित फ़ाइल नहीं बना सकता '/secret/home/alexis/test-top-secret-image.svg': आवश्यक कुंजी नहीं उपलब्ध » । मैंने सिर्फ आपके निर्देश का पालन किया है इसलिए मुझे लगता है कि कुछ बदल गया है।
एलेक्सिस विल्के

" /usr/bin/e4crypt" का दूसरा उदाहरण "/ s" में "s" याद आ रहा है।
एलेक्सिस विल्के

3

लिनक्स 4.1 एक फाइल सिस्टम की निर्देशिकाओं को एन्क्रिप्ट करने के लिए एक नए एक्सट 4 फीचर के साथ आता है। एन्क्रिप्शन कुंजियों को कीरिंग में संग्रहीत किया जाता है। आरंभ करने के लिए, सुनिश्चित करें कि आपके पास सक्षम CONFIG_KEYSऔर CONFIG_EXT4_FS_ENCRYPTIONकर्नेल विकल्प हैं और आपके पास कर्नेल 4.1 या उच्चतर है।

सबसे पहले, आपको कम से कम संस्करण 1.43 में e2fsprogs अपडेट करने की आवश्यकता है, जो लेखन के समय अभी भी 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 के पुराने संस्करणों को चलाने में सावधानी बरतें - यह एन्क्रिप्टेड फाइलनाम को अमान्य मान लेगा।


इस उत्तर में गंभीर स्वरूपण मुद्दे थे। मैंने जहाँ तक हो सका, सुधारने की कोशिश की, लेकिन मुझे इससे कोई मतलब नहीं है कि कोई स्पष्ट रूप से मार्कडाउन फॉर्मेटिंग का उपयोग करने का प्रयास क्यों करेगा, जटिल कमांड्स को हैंडल करेगा और उसी समय आर्क विकी में एक समान संपादन भी करेगा, लेकिन फिर देखो पूर्वावलोकन में दिए गए कचरे पर और इसे वैसा ही छोड़ने का निर्णय लेते हैं। कोई संतोषजनक स्पष्टीकरण या आगे का संदर्भ नहीं है कि लाइनों को क्यों हटाया जाना है। इसके अलावा यह डिब्यूल्ड का उपयोग करने का सुझाव दिया गया है, इसका उद्देश्य यह नहीं है (गैर-विमुद्रीकृत पैकेज के साथ, डेबियन में एक प्रयोगात्मक पैकेज है) और काम नहीं करता है। -1
लाइववायरबीटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.