लिनक्स: एलयूकेएस और कई हार्ड ड्राइव


11

मेरे पास एक डेबियन लिनक्स सिस्टम (amd64) एक RAID-1 सिस्टम एन्क्रिप्टेड डिवाइस (LVM LUKS पर) स्थापित है और एक RAID-6 का> = 4 डिस्क जहां मैं अपना डेटा (LUKS और शायद LVM) रखूंगा।

मुझे लगता है कि मूल विचार सिस्टम एन्क्रिप्टेड पार्टीशन (स्थानीय या ssh के माध्यम से बूट पर) को अनलॉक करने और RAID-6 एन्क्रिप्टेड पार्टीशन के लिए एक की / फाइल / क्रिप्टैब को स्टोर करने के लिए है। क्या यह सुरक्षा जोखिम पैदा करता है? मेरा मतलब है ... यह बहुत बेकार है अगर कोई भी मेरे सिस्टम को स्थानीय रूप से / दूरस्थ रूप से दर्ज कर सकता है और मुझे लगता है कि सर्वर पर बहुत सारी सेवाएं चल रही हैं जो "रूटिंग" (जैसे एसएसएच) की चपेट में हैं। क्या कोई विकल्प है (एसएसएच के माध्यम से विभाजन को अनलॉक करने के बाद जो कि एक समस्या हो सकती है जैसे कि बैकअप ऑपरेशन डेटा विभाजन के शुरू होने से पहले ही शुरू हो जाता है)।

एक और मशीन पर मैं बैकअप के लिए LUKS + greyhole (कोई RAID-6) के साथ कई डिस्क का उपयोग करूँगा और यह एक ही पासवर्ड से 10 गुना दर्ज करके 10 डिस्क को अनलॉक करने के लिए एक वास्तविक दर्द होगा ...


यदि कोई आपके सिस्टम में सेंध लगा सकता है और जड़ बन सकता है, तो उन्हें आपके एन्क्रिप्टेड विभाजन की कुंजी प्राप्त करने की आवश्यकता नहीं है। इसे जड़ से बचाने का कोई मतलब नहीं है (और यह विशेष हार्डवेयर के बिना संभव नहीं है जैसे कि टीपीएम या वर्चुअल मशीन में चलना)।
गिल्स एसओ- बुराई को रोकना '

माफ़ कीजियेगा ? यहां तक ​​कि अगर मैं जड़ हूं तो मुझे LUKS विभाजन को अनलॉक करने के लिए कीफाइल / पासफ़्रेज़ देना होगा। मुझे लगता है कि आपका मतलब है कि अगर कोई जड़ हो जाता है तो मेरे एन्क्रिप्टेड डेटा तक उसकी पूरी पहुंच है। दुर्भाग्य से यह केवल सच है क्योंकि एक बार एन्क्रिप्ट किए गए विभाजन को माउंट किया जाता है, तो यह कोई फर्क नहीं पड़ता कि यह एन्क्रिप्ट किया गया है या नहीं। तब वर्चुअल मशीन का क्या फायदा होगा? तो एन्क्रिप्शन को आखिर मदद क्यों करनी चाहिए? क्या SSH और इसी तरह की सेवाओं के माध्यम से रूट तक पहुंच से इनकार करने का एकमात्र समाधान है? लेकिन फिर भी अगर कोई हैकर एक सामान्य उपयोगकर्ता के रूप में सिस्टम में जाता है, तो वह आमतौर पर हर फ़ाइल तक पहुंच पढ़ता है, है न?
user51166

1
बिल्कुल, अगर कोई आपके सिस्टम पर रूट है, तो उनके पास सब कुछ है। एक वीएम का मतलब हो सकता है कि उनके पास वीएम में सब कुछ तक पहुंच है। एन्क्रिप्शन का एकमात्र उपयोग अगर कोई आपका हार्डवेयर चुराता है।
गिलेस एसओ- बुराई को रोकना '

हाँ ठीक है ... उस मामले में हम तर्क दे सकते हैं कि डेटा को स्टोर करने का एकमात्र सुरक्षित तरीका सभी नेटवर्क से डिस्कनेक्ट किए गए एन्क्रिप्टेड कंप्यूटर में है और भवन में एकीकृत है। फिर भी कोई भी एक कीबोर्ड के साथ आ सकता है और आपके सिस्टम को रिबूट किए बिना आपका डेटा चोरी कर सकता है। मैं अपने सिस्टम को इंटरनेट से अलग कर सकता हूं क्योंकि यह एक बैकअप सर्वर होगा इसलिए LAN एक्सेस की जरूरत है। फिर से ... क्या एक वीपीएन का उपयोग किया जाना चाहिए या लैन मशीनों में से एक संक्रमित हो जाता है बैकअप मशीन को भी उजागर किया जाएगा। इन समस्याओं के समाधान के लिए आप क्या करेंगे?
user51166

जवाबों:


7

आप /lib/cryptsetup/scripts/decrypt_derivedअपने crypttabलिए उपयोग कर सकते हैं स्वचालित रूप से एक डिस्क से दूसरे के लिए कुंजी का उपयोग करने के लिए।

decrypt_derived स्क्रिप्ट डेबियन के cryptsetup पैकेज का हिस्सा है।

Sda6crypt से sda5 में कुंजी जोड़ने के लिए छोटा उदाहरण:

/lib/cryptsetup/scripts/decrypt_derived sda6crypt > /path/to/mykeyfile
cryptsetup luksAddKey /dev/sda5 /path/to/mykeyfile
ls -la /dev/disk/by-uuid/ | grep sda5
echo "sda5crypt UUID=<uuid> sda6crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived" >> /etc/crypttab
shred -u /path/to/mykeyfile # remove the keyfile

जैसा कि आजकल किसी फ़ाइल को वास्तव में हटाना बहुत मुश्किल है, यह सुनिश्चित करें कि एन्क्रिप्टेड ड्राइव पर / पाथ / टू / मायकीफाइल है ( sda6cryptमेरे उदाहरण में एक अच्छा समाधान होगा)।

सामान्य तौर पर, आप उपयोगकर्ता स्थान फाइलसिस्टम एन्क्रिप्शन जैसे कि के माध्यम से एक अतिरिक्त सुरक्षा परत जोड़ सकते हैं encfs


इस तरह मुझे डिस्क पर कीफाइल को स्टोर करने की आवश्यकता नहीं होनी चाहिए। वह अच्छा रहेगा। हालाँकि आपको लगता है कि यह परेशानी के लायक है (यानी एन्क्रिप्टेड रूट डिवाइस पर कीफाइल को स्टोर करना "सुरक्षित रूप से पर्याप्त है")? मैं एक राय पूछ रहा हूं क्योंकि मुझे कुछ संदेह है। सलाह के लिये धन्यवाद।
user51166

समाधान के साथ decrypt_derivedएकमात्र लाभ है, कि कोई कुंजी फ़ाइल नहीं है। यदि कोई रूट एक्सेस प्राप्त कर सकता है, तो आप आमतौर पर वैसे भी खो जाते हैं। एक स्क्रिप्ट चलाने की तुलना में एक महत्वपूर्ण फ़ाइलों को पढ़ना एक घुसपैठिए के लिए थोड़ा आसान हो सकता है। अधिक सुरक्षा पाने के लिए, आप TOMOYO Linux, AppAmor, SMACK, SELinux, grsecurity, ... का उपयोग करके अपने सिस्टम को सख्त कर सकते हैं, लेकिन यह अतिरिक्त प्रयास करता है। और सवाल अगर यह मूल्य है तो अधिक महत्वपूर्ण है। कृपया यह सुनिश्चित करना न भूलें कि इस मामले के लिए कुंजी या एक अलग कुंजी का बैकअप होना चाहिए कि ड्राइव दुर्घटनाग्रस्त हो जाती है जहां कुंजी को / से संग्रहीत किया जाता है।
जोफेल

मैंने ग्रामसुरक्षा या इसी तरह के सॉफ्टवेयर्स का उपयोग करने की योजना बनाई है (शुरुआत में नहीं, लेकिन जब मेरे पास समय होगा तो मैं इसे सुरक्षित कर लूंगा)। मैं केवल पासवर्ड का उपयोग करने के बारे में सोच रहा हूं और यदि संभव हो तो keyfiles नहीं। अच्छी तरह से पासवर्ड रैम में संग्रहीत किया जाएगा, इसलिए मुझे लगता है कि आप इसके बारे में भी बहस कर सकते हैं।
user51166

कहीं भी एक कुंजी फ़ाइल को हटाने का कोई अच्छा तरीका नहीं है, पूरे फाइल सिस्टम को अधिलेखित करने की कमी (और शायद तब भी नहीं अगर डिस्क विफल हो जाती है)। एक जर्नलिंग फाइलसिस्टम चीजों को स्पष्ट रूप से बदतर नहीं बनाता है।
गिल्स एसओ- बुराई को रोकना '

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

1

जोफल्स उत्तर के आधार पर, यहां एक ही उदाहरण है, लेकिन बिना किसी फ़ाइल में कुंजी को स्टोर किए बिना। कुंजी को एक नामित पाइप में पारित किया जाता है, जो डिस्क में कुछ भी संग्रहीत नहीं करता है।

आप /lib/cryptsetup/scripts/decrypt_derivedअपने crypttab में एक डिस्क से दूसरे के लिए स्वचालित रूप से कुंजी का उपयोग करने के लिए उपयोग कर सकते हैं । decrypt_derivedस्क्रिप्ट डेबियन के cryptsetup पैकेज का हिस्सा है।

Sda6crypt से sda5 में कुंजी जोड़ने के लिए संशोधित उदाहरण:

mkfifo fifo
/lib/cryptsetup/scripts/decrypt_derived sda6crypt > fifo &
cryptsetup luksAddKey /dev/sda5 fifo
rm fifo

ls -la /dev/disk/by-uuid/ | grep sda5
echo "sda5crypt UUID=<uuid> sda6crypt luks,initramfs,keyscript=/lib/cryptsetup/scripts/decrypt_derived" >> /etc/crypttab

keyscriptविकल्प केवल तभी काम करता है crypttabडेबियन के मूल cryptsetup उपकरण द्वारा संसाधित किया जाता है, systemd reimplementation वर्तमान में इसका समर्थन नहीं करता। यदि आपका सिस्टम systemd (जो कि ज्यादातर सिस्टम है) का उपयोग करता है, तो आपको सिस्टम के initramfsशुरू होने से पहले क्रिप्टसैप्टअप टूल्स द्वारा प्रोसेसिंग को फोर्स करने की जरूरत होती है।

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