मैं एक फ़ाइल के अंदर एक एन्क्रिप्टेड फ़ाइल सिस्टम कैसे बनाऊं?


16

मुझे फ्लॉस्टस्टफ ब्लॉग पर यह दिलचस्प ट्यूटोरियल मिला है ।

यह बताता है कि एक खाली फ़ाइल कैसे बनाई जाए, इसे ext4 के रूप में प्रारूपित करें, और इसे एक उपकरण के रूप में माउंट करें।

मैं जानना चाहता हूं कि क्या इसे एन्क्रिप्टेड ext4 फाइल सिस्टम के रूप में बनाया जा सकता है।

मैंने पहले से बनाई गई फ़ाइल सिस्टम को प्रारूपित करने के लिए palimpsest (सिस्टम मेनू में पाई गई डिस्क उपयोगिता) का उपयोग करने की कोशिश की है, लेकिन यह काम नहीं करता क्योंकि यह फ़ाइल सिस्टम का उपयोग करता है।

अगर मैं फ़ाइल सिस्टम को अनमाउंट करने की कोशिश करता हूं, तो यह काम नहीं करेगा क्योंकि यह डिवाइस का पता नहीं लगाता है (क्योंकि यह हार्डड्राइव या यूएसबी ड्राइव की तरह वास्तविक डिवाइस नहीं है)।

तो मेरा सवाल यह है कि क्या फ़ाइल सिस्टम को शुरू से एन्क्रिप्टेड बनाने का कोई विकल्प है? मैंने इन आदेशों का उपयोग किया है:

एक खाली फ़ाइल 200Mb आकार बनाएँ:

dd if=/dev/zero of=/path/to/file bs=1M count=200

इसे ext4 बनाएं:

mkfs -t ext4 file

इसे मेरे घर के अंदर एक फ़ोल्डर में माउंट करें:

sudo mount -o loop file /path/to/mount_point

क्या कोई तरीका है जो mkfsकमांड एक एनक्रिप्टेड ext4 फाइल सिस्टम बना सकता है जो डिक्रिप्शन पासवर्ड मांग सकता है?

मैं ड्रॉपबॉक्स के अंदर फ़ाइलों को एन्क्रिप्ट करने के तरीके के रूप में इसका उपयोग करने की योजना बना रहा हूं।



यदि आप फ़ाइलों का बैकअप लेते समय उचित एन्क्रिप्शन चाहते हैं, तो आप इसके बजाय स्पाइडरऑक पर विचार करना चाह सकते हैं। अधिक सुरक्षा और कम उपद्रव।
बारूदी

जवाबों:


8

आप cryptmountएक फाइल सिस्टम को एन्क्रिप्ट करने के लिए उपयोग कर सकते हैं , भले ही फाइल सिस्टम किसी फाइल पर हो।

cryptmountमैन्युअल पृष्ठ एक बहुत ही सरल और विस्तृत विवरण की रिपोर्ट है कि मैं (संशोधित) है यहाँ है, और यह स्पष्ट रूप से एक फ़ाइल आधारित फाइल सिस्टम का उल्लेख करते हैं।

  • चरण 1 निम्नानुसार
    एक प्रविष्टि जोड़ें /etc/cryptmount/cmtab:

    mycrypt {
        dev=/media/data/mycrypt dir=/home/enzotib/mycrypt
        fstype=ext4 mountoptions=defaults cipher=twofish
        keyfile=/etc/cryptmount/mycrypt.key
        keyformat=builtin
    }
    

    /media/data/mycryptसमर्थन फ़ाइल कहाँ बनाई गई है ddऔर /home/enzotib/mycryptवांछित माउंटपॉइंट है।

  • चरण 2
    एक गुप्त डिक्रिप्शन कुंजी उत्पन्न करें

    sudo cryptmount --generate-key 32 mycrypt
    
  • चरण 3
    निम्नलिखित कमांड निष्पादित करें

    sudo cryptmount --prepare mycrypt
    

    फिर आपको कुंजी सेट करते समय उपयोग किए जाने वाले पासवर्ड के लिए कहा जाएगा

  • चरण 4
    फाइल सिस्टम बनाएं

    sudo mkfs.ext4 /dev/mapper/mycrypt
    
  • चरण 5
    निष्पादित करें

    sudo cryptmount --release mycrypt
    
  • चरण 6
    अब फाइल सिस्टम को माउंट करें

    mkdir /home/enzotib/mycrypt
    cryptmount -m mycrypt
    

    फिर इसे अनमाउंट करें

    cryptmount -u mycrypt
    

इसके अलावा, यदि आपको किसी निर्देशिका को क्रिप्ट करने की आवश्यकता है, तो encfsध्यान में रखने योग्य हो सकता है।


आपके उत्तर के लिए धन्यवाद, मैंने फ़ाइल सिस्टम बनाया है, एन्क्रिप्ट किया है और ड्रॉपबॉक्स पर अपलोड किया है। बाद में मैं दूसरे पीसी में उस फाइल को माउंट करने की कोशिश करूंगा। बस एक काम, क्या यह बिना सूद के किया जा सकता है? अगर मैं फ़ाइल और फाइल सिस्टम को अपने घर के अंदर रखना चाहता हूं (USB या हार्डड्राइव की तरह मीडिया में नहीं) तो कमांड बिना sudo के समान होंगे या क्या cryptmount को हमेशा रूट विशेषाधिकारों की आवश्यकता होती है?
पशुपालक

1
@darent: ऐसा लगता है कि कमांड को केवल फाइल सिस्टम सेटअप में रूट विशेषाधिकारों की आवश्यकता है, लेकिन माउंटिंग / अनमाउंटिंग एक उपयोगकर्ता कार्रवाई है, बशर्ते छवि-फ़ाइल और माउंटपॉइंट उपयोगकर्ता के स्वामित्व में हों। दूसरी मशीन पर एक ही इमेज-फाइल सेटअप करने के लिए, मुझे लगता है कि आपको कॉपी, /etc/cryptmount/mycrypt.keyऔर --generate-keyस्टेप को छोड़ देना चाहिए ।
enzotib

मुझे अंतिम चरण में यह त्रुटि मिलती है: $ sudo cryptmount -m encriptat लक्ष्य के लिए पासवर्ड दर्ज करें "encriptat": e2fsck 1.41.14 (22-Dec-2010) fsck.ext4: Sperterococ कोई vàlid, प्रोवेंस एल्लस de còpia de seguretat। .. fsck.ext4: सुपर-ब्लॉक एन इंट्रैक्टर ओबीर / देव / मैपर / एनस्क्रिप्टैट में खराब मैजिक नंबर
एनिमेटडेसक्विया

1
@ संस्करण: आपने चरण 4 में दिखाए गए अनुसार फ़ाइल सिस्टम बनाया है? क्या आप "एनक्रिप्ट" के साथ "माइक्रिप्ट" नाम के प्रतिस्थापन में सुसंगत रहे हैं?
16

क्षमा करें, त्रुटि इसलिए थी क्योंकि इसके बजाय (sudo mkfs.ext4 / dev / mapper / mycrypt) मैं टाइप कर रहा था (sudo mkfs.ext4 mycript)। मैं सीधे फाइल पर कविता कर रहा था, डिवाइस नहीं। अब यह सही काम करता है। और इस संदेश के प्रारूप के बारे में खेद है, पता नहीं क्यों मैं लाइनों को अलग नहीं कर सकता (यदि मैं इसे दर्ज करता हूं तो एक नई लाइन बनाने के बजाय टिप्पणी प्रकाशित करता है, शायद एक फ़ायरफ़ॉक्स गड़बड़ ...) चीयर्स! संपादित करें: अब मैंने आपके उत्तर को पढ़ा, एनस्क्रिप्ट नाम एक समस्या नहीं थी (बस अपनी पोस्ट को अनुकूलित किया और फ़ाइलों को साहा नामों के साथ रखा, लेकिन यह सभी संगत है)। एवरिथिंग अब ठीक काम कर रहा है, धन्यवाद फिर से :)
animaletdesequia 17

7

अंदर फ़ाइल सिस्टम के साथ एक एन्क्रिप्टेड फ़ाइल बनाने के लिए अगले चरणों का पालन करें:

1. दिए गए आकार की फ़ाइल बनाने का सबसे तेज़ तरीका है:

fallocate -l 128M /path/to/file

2. डीएम-क्रिप्ट टूल्स का उपयोग करके फ़ाइल के भीतर एलयूकेएस (लिनक्स यूनिफाइड की सेटअप) विभाजन बनाएँ :

cryptsetup -y luksFormat /path/to/file

आप जाँच सकते हैं कि फ़ाइल एन्क्रिप्टेड कंटेनर है:

/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00

3. खुला एन्क्रिप्टेड कंटेनर:

cryptsetup luksOpen /path/to/file data

dataडिवाइस मैपर वॉल्यूम नाम है। आप अन्य नाम चुन सकते हैं।

यह LUKS डिवाइस को खोलता है, और इसे एक नाम के लिए मैप करता है जिसे हम आपूर्ति करते हैं, हमारे मामले में एक फ़ाइल बनाते हैं /dev/mapper/data

4.ext4 इस डिवाइस पर फाइल सिस्टम बनाएं :

mkfs.ext4 /dev/mapper/data

5. फिर आरोह बिंदु बनाएँ:

mkdir /path/to/mount

6. और वहाँ डिवाइस माउंट:

mount /dev/mapper/data /path/to/mount

7. फाइल सिस्टम को बंद करने और LUKS डिवाइस को बंद करने के लिए:

umount /path/to/mount
cryptsetup luksClose data

अब आपने L4KS कंटेनर को ext4 फाइल सिस्टम के अंदर एन्क्रिप्ट किया है। जब आप इसका उपयोग करना चाहते हैं तो बस चरण 3 और 6 को दोहराएं। जब आप कॉल चरण 7 समाप्त कर लें।

यह लेख मेरे लिए बहुत उपयोगी था।

इसके अलावा एक दिन आपका कंटेनर अंतरिक्ष से बाहर चला जाएगा। मान लीजिए एन्क्रिप्टेड कंटेनर फ़ाइल का आकार 128 एमबी है और हम इसका आकार बढ़ाकर 512 एमबी करना चाहते हैं। अपनी क्षमता बढ़ाने के लिए इन चरणों का पालन करें:

1. अनमाउंट करें और LUKS डिवाइस को बंद करें (उपरोक्त सूची में चरण 7 देखें)।

2. कंटेनर फ़ाइल का आकार बढ़ाएँ:

 dd if=/dev/zero of=/path/to/file bs=384M count=1 oflag=append conv=notrunc

3. LUKS डिवाइस खोलें।

cryptsetup luksOpen /path/to/file data

4. कंटेनर फ़ाइल आकार से मिलान करने के लिए LUKS डिवाइस का आकार बदलें। मैन पेज से:

यदि - आकार (क्षेत्रों में) निर्दिष्ट नहीं है, तो अंतर्निहित ब्लॉक डिवाइस के आकार का उपयोग किया जाता है।

तो आप बस:

cryptsetup resize data

5. फिर ext4 फाइल सिस्टम का आकार बदलें:

e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data

6. अब आप फाइल सिस्टम को वापस माउंट कर सकते हैं:

mount /dev/mapper/data /path/to/mount

1
मुझे लगता है कि यह उत्तर सबसे अच्छा है और सबसे ज्यादा जवाब देने वाला है। इसे सही उत्तर के रूप में चुना जाना चाहिए!
21

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.