Sunday, February 15, 2015

LUKS ( Linux Unified Key Setup) Encryption Block Devices


           အခုပြောမည့်အကြာင်းကတော့ Linux မှာအသုံးပြုနိုင်တဲ့ Block Level Encryption 
ဖြစ်တဲ့ LUKS encryption method ဖြစ်ပါတယ်။ Servers Environment ထက်စာရင် ဥပမာ အနေနဲ့ 
Linux OS သုံးထားတဲ့ ကိုယ့်ရဲ့ laptop တစ်လုံးပျောက်ခဲ့ရင် အခုပြောမယ့် encryption method ကို 
အသုံးပြုပြီး Secure ဖြစ်အောင်လုပ်ထားနိုင်ပါတယ်။ ဒါဆိုရင် ထို laptop ကို ပျောက်သွားခဲ့လျှင်လဲ 
အထဲမှာရှိတဲ့ Data တွေကို တစ်ခြားသူက ရရှိနိုင်မည် မဟုတ်ပါ။ Windows မှာ ဆိုရင်တော့ BitLocker 
Encryption ကိုအသုံးပြုနိုင်ပါတယ်။

           LUKS သည် block devices level encryption  ဖြစ်သည့်အတွက် OS တင် ကတည်းက the 
 whole disks တစ်ခုလုံးကို encrypt လုပ်နိုင်ပါတယ်။ နောက်ပြီး Removable 
devices, Standard partition disk type, LVM type နဲ့ Software RAID type တွေမှာပါ 
သတ်မှတ်နိုင်ပါတယ်။


           အခု tutorial မှာ vm ထဲကို harddisk တစ်ခုထည့်ပြီး mount လုပ်ကာ ထို partition ပိုင်းပေါ်မှာ LUKS encryption သတ်မှတ် ပြမှာ ဖြစ်ပါတယ်။ အောက်က ပုံတွေမှာ partition ပိုင်းပြီး #ext4 နဲ့ format ရိုက်ထား သည်အထိ ပြထားပါတယ်။


   
           ပုံမှန်အားဖြင့်တော့ LUKS ကိုသုံးဖို့အတွက် package က OS မှာ ပါပြီးသားဖြစ်ပါတယ်။ အကယ်၍ မပါခဲ့ရင် အပေါ်က ပုံမှာ ပြထားတဲ့ package ကို install လုပ်ပေးရမှာ ဖြစ်ပါတယ်။

          ကျန်တဲ့အပိုင်းကတော့ ပုံမှန်ရိုးရိုး Harddisk  တစ်ခုကို LUKS ဖြင့် မသတ်မှတ်ခင် Standard partition ပိုင်းထားတာဖြစ်ပါတယ်။
     




 #cryptsetup luksFormat 


             အရင်ဆုံး #cryptsetup luksFormat command ဖြင့် "/dev/sdb1" ကို သတ်မှတ်မည် ဖြစ်ပါတယ်။ Encrypt လုပ်မှာလား မေးတဲ့အခါ "YES" အကြီးဖြင့် ရေးမှရပါမယ်။ ထို့နောက် "passphrase" key ထည့်ပေးရမှာဖြစ်ပါတယ်။






#cryptsetup luksOpen 


               ပြီးလျှင် #cryptsetup luskOpen command ဖြင့် အသုံပြုးရမည်ဖြစ်သည်။ luksOpen လုပ်ရတွင် actual device "/dev/sdb1" နေရာမှာ တစ်ခြား name တစ်ခု ဒီနေရာမှာ တော့ "secret" လို့ ပေးထားပါတယ်။ Name က optional ပါ စ်တ်ကြိုက်သတ်မှတ် နိုင်ပါတယ်။ 






# vim /etc/crypttab


                ထို့နောက် LUKS ကို အလုပ်လုပ်ရန်အတွက် "/etc/crypttab" ထဲမှာ သတ်မှတ်လိုက်သော encrypt device name "secret" နဲ့ actual physical device ကို သတ်မှတ်ရပါမယ်။








Use #mkfs to format encrypted partition


         ပြီးလျှင်တော့ #mkfs command ဖြင့် encrypted device ကို စတင်အသုံးပြုနိုင်အောင် format ချပေး ရပါမယ်။ ပြီးလျှင် တော့ "/etc/fstab" ထဲမှာ အသုံးပြုနိုင်အောင် mount လုပ်ပေးရပါမယ်။ ဒီနေရာ မှာ တစ်ခု သတိထားရမှာက #mkfs နှင့် format ရိုက်တာက "/dev/sdb1" ကိုမဟုတ်ပဲ "secret" ကိုလုပ်ရမှာပါ။


#cryptsetup status

   
            #cryptsetup statusနဲ့ ကြည့်လျှင့် အခု mount လုပ်ထားတဲ့ "/opt/lukstest" သည်encryption active ဖြစ်နေတာကို ပြနေပါတယ်။




           အခု စက်ကို reboot ချပြီး ပြန်တက်လာတဲ့ အချိန်မှာ LUKS ဖြင့် encrypt လုပ်ထားတဲ့ partition အတွက် password  လာတောင်း နေပြီ ဖြစ်ပါတယ်။ 




Adding Key File to "/etc/crypttab"


           အကယ်၍များ အခုလိုမျိုး boot တက်တဲ့အခါ password မတောင်းချင်လျှင် "/etc/crypttab" ထဲမှာ password ကို ကြိုပေးထားလို့ ရပါတယ်။ အောက် ပုံမှာ လုပ်ပြထားပါတယ်။ ပုံထဲမှာ ပါတဲ့ "redhat"ဆိုတာ က ကျွန်တော် သတ်မှတ် ထားတဲ့ password ပါ။










#cryptsetup luksAddKey


                "/etc/crypttab" ထဲမှာ password ရေးထားတဲ့ file ကို ထည့်ပြီးပြီ ဆိုရင်တော့ #crypsetup luksAddKey command နဲ့ keyfile ထည့်ထားတာကို သိအောင် လုပ်ရပါမယ်။ 




             ပြီးသွားပြီ ဆိုရင်တော့ နောက်တစ်ခါ စက် reboot ချရင် password လာတောင်းမှာမဟုတ် တော့ပါ။













Share:

0 comments:

Post a Comment