पासवर्ड जाने बिना LUKS फाइल सिस्टम पर पासवर्ड बदलें


30

मेरे पास एक डेबियन व्हीज़ी सर्वर है जो कुछ समय के लिए एन्क्रिप्टेड ड्राइव के साथ चल रहा है। एन्क्रिप्टेड ड्राइव ( /dev/sda5) के लिए पासवर्ड खो गया था जब मेरी एन्क्रिप्टेड पासवर्ड फ़ाइल दूषित हो गई थी।

मैं इस सर्वर को रिबूट करने में सक्षम होना चाहता हूं, लेकिन उस पासवर्ड की आवश्यकता होगी। चूंकि ड्राइव डिक्रिप्टेड स्थिति में स्पष्ट रूप से है, क्या पुराने को जाने बिना पासवर्ड बदलने का कोई तरीका है?

cryptsetup luksChangeKey /dev/sda5 मात्रा के पासवर्ड की आवश्यकता है।

मैं निश्चित रूप से rsyncसब कुछ बंद कर सकता हूं और पुनर्निर्माण कर सकता हूं , लेकिन मैं इससे बचना चाहूंगा। मैंने मेमोरी ( #cat /dev/mem | less) के माध्यम से देखा , लेकिन इसे खोजने में असमर्थ था (जो कि बहुत अच्छी बात है!)।


2
हम्म्म्म .... एक एन्क्रिप्टेड फाइलसिस्टम होने का क्या मतलब होगा अगर पासवर्ड के बिना उस तक पहुंच प्राप्त करना इतना आसान था।
एमडीपीसी

7
@mdpc: आपकी चुटकी का कोई मतलब नहीं है। उसके पास फाइलसिस्टम तक पहुंच है, क्योंकि सर्वर के आखिरी बार बूट होने पर उसके पास पासवर्ड था
जी-मैन ने

2
सिर्फ इसलिए कि आपने पासवर्ड को हैक कर लिया (और यह भ्रष्ट हो गया) मेरी टिप्पणी को अमान्य नहीं करता। सामान्य तौर पर यदि आप किसी भी प्रकार की एन्क्रिप्टेड सामग्री के लिए पासवर्ड भूल जाते हैं, तो इसे हमेशा के लिए खो देना चाहिए अन्यथा इसे पहली जगह में एन्क्रिप्ट करने का क्या मतलब था?
mdpc

3
@ mdpc वर्तमान काल, उसके पास फ़ाइल सिस्टम की वर्तमान पहुँच है।
पैट्रिक

सुपर यूजर पर समान प्रश्न: लॉउड पासवर्ड खो गया, एन्क्रिप्टेड पार्टीशन खुला (उत्तर नहीं दिया गया)।
जी-मैन कहते हैं, 'मोनिका'

जवाबों:


40

हां, आप वॉल्यूम को डिक्रिप्ट किए जाने के दौरान मास्टर कुंजी तक पहुंचकर ऐसा कर सकते हैं।

नया पासफ़्रेज़ जोड़ने के लिए त्वरित और गंदा:

device=/dev/sda5
volume_name=foo
cryptsetup luksAddKey $device --master-key-file <(dmsetup table --showkeys $volume_name | awk '{ print $5 }' | xxd -r -p)

deviceऔर volume_nameउचित रूप से सेट किया जाना चाहिए।
volume_nameडिक्रिप्टेड वॉल्यूम का नाम है, जिसे आप देखते हैं /dev/mapper


स्पष्टीकरण:

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

ऊपर दिए गए कमांड को फाड़ने देता है।

$ dmsetup table --showkeys $volume_name

यह सक्रिय रूप से डिक्रिप्ट किए गए वॉल्यूम के बारे में जानकारी का एक गुच्छा डंप करता है। आउटपुट इस तरह दिखता है:

0 200704 crypt aes-xts-plain64 53bb7da1f26e2a032cc9e70d6162980440bd69bb31cb64d2a4012362eeaad0ac 0 7:2 4096

फ़ील्ड # 5 मास्टर कुंजी है।

 

$ dmsetup table --showkeys $volume_name | awk '{ print $5 }' | xxd -r -p

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

 

$ cryptsetup luksAddKey $device --master-key-file <(...)

यह वॉल्यूम की नई कुंजी जोड़ने के लिए क्रायसिपेटअप बता रहा है। आम तौर पर इस कार्रवाई के लिए एक मौजूदा कुंजी की आवश्यकता होती है, हालांकि हम --master-key-fileयह बताने के लिए उपयोग करते हैं कि हम इसके बजाय मास्टर कुंजी का उपयोग करना चाहते हैं। शेल कमांड प्रतिस्थापन और पुनर्निर्देशन है। यह मूल रूप से अंदर सब कुछ निष्पादित करता है, आउटपुट को एक पाइप में भेजता है, और फिर उस पाइप के लिए एक पथ के साथ स्थानापन्न करता है ।
<(...)<(...)

 

तो कई ऑपरेशनों को संचालित करने के लिए पूरी कमान सिर्फ एक लाइनर है।


मुझे यकीन नहीं है कि अगर मैं कुछ गलत कर रहा हूं, लेकिन मेरा एलयूकेएस एक स्ट्रिंग नहीं दिखाता है जैसे कि आप उदाहरण में दिखा रहे हैं। यह एक छोटा सा 9 अंकों की संख्या है। इसके अलावा मेरा "रैखिक 8: 3" के रूप में दिखाता है।
SLM

@ एसएलएम यदि यह दिखा रहा है linear, तो यह एक खुला एलयूकेएस वॉल्यूम नहीं है ( volume_nameप्रदान की गई कमांड के लिए गलत मूल्य )। crypt3 क्षेत्र में एक खुला LUKS वॉल्यूम होगा । में cryptsetup luksOpen /dev/foo bar, volume_nameमान होगा bar
पैट्रिक

इसे अब पा लिया है। /dev/mapperनाम के तहत एक वॉल्यूम है luks-.....। वह वॉल्यूम जिसका आपको उपयोग करने की आवश्यकता है, LVM की नहीं, तार्किक मात्रा मैप की गई।
SLM

1
ऐसा लगता है कि dmsetup के हाल के संस्करणों के साथ प्रारूप dmsetup tableबदल गया है। कम से कम मेरे लिए मास्टर कुंजी को कॉलम में दिखाया गया है $6
करोल बबियोच

@KarolBabioch आपने संभवतः वॉल्यूम नाम निर्दिष्ट नहीं किया है?
ठंढकुट्ज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.