ফেডোরা লিনাক্সে LUKS ব্যবহার করে কীভাবে ড্রাইভগুলি এনক্রিপ্ট করা যায়


এই নিবন্ধে, আমরা ব্লক এনক্রিপশন, লিনাক্স ইউনিফাইড কী সেটআপ (LUKS) সম্পর্কে সংক্ষেপে ব্যাখ্যা করব এবং ফেডোরা লিনাক্সে একটি এনক্রিপ্ট করা ব্লক ডিভাইস তৈরির নির্দেশাবলী বর্ণনা করব।

ব্লক ডিভাইস এনক্রিপশনটি এনক্রিপ্ট করে কোনও ব্লক ডিভাইসে ডেটা সুরক্ষিত করতে ব্যবহৃত হয় এবং ডেটা ডিক্রিপ্ট করার জন্য, ব্যবহারকারীকে অ্যাক্সেসের জন্য একটি পাসফ্রেজ বা কী সরবরাহ করতে হবে। এটি অতিরিক্ত সুরক্ষা ব্যবস্থা দেয় কারণ এটি সিস্টেম থেকে শারীরিকভাবে বিচ্ছিন্ন হয়ে থাকলেও এটি ডিভাইসের সামগ্রীগুলিকে রক্ষা করে।

LUKS (লিনাক্স ইউনিফাইড কী সেটআপ) লিনাক্সে ব্লক ডিভাইস এনক্রিপশনের মান, যা ডেটা এবং একটি পাসফ্রেজ/কী পরিচালনা নীতিের জন্য একটি অন ডিস্ক ফর্ম্যাট স্থাপন করে কাজ করে। এটি পার্টিশন শিরোনামে (LUKS শিরোনাম হিসাবে পরিচিত) সমস্ত প্রয়োজনীয় সেটআপ তথ্য সংরক্ষণ করে, যাতে আপনাকে নির্বিঘ্নে ডেটা পরিবহন বা স্থানান্তর করতে দেয়।

LUKS ডিএম-ক্রিপ্ট মডিউল সহ কার্নেল ডিভাইস ম্যাপার সাবসিস্টেমটি একটি নিম্ন-স্তরের ম্যাপিং সরবরাহ করে যাতে ডিভাইসের ডেটা এনক্রিপশন এবং ডিক্রিপশন ধারণ করে। এনক্রিপ্ট করা ডিভাইস তৈরি এবং অ্যাক্সেসের মতো ব্যবহারকারী-স্তরের কার্য সম্পাদন করতে আপনি ক্রিপ্টসেটআপ প্রোগ্রামটি ব্যবহার করতে পারেন।

একটি ব্লক ডিভাইস প্রস্তুত করা হচ্ছে

নিম্নলিখিত নির্দেশাবলী ইনস্টলেশনের পরে এনক্রিপ্ট করা ব্লক ডিভাইসগুলি তৈরি ও কনফিগার করার পদক্ষেপগুলি দেখায়।

ক্রিপসেটআপ প্যাকেজ ইনস্টল করুন।

# dnf install cryptsetup-luks

এরপরে, ডিভাইসটিকে এনক্রিপ্ট করার আগে এলোমেলো ডেটা দিয়ে পূর্ণ করুন, কারণ এটি নিম্নলিখিত কমান্ডগুলি ব্যবহার করে এনক্রিপশনের শক্তি উল্লেখযোগ্যভাবে বৃদ্ধি করবে।

# dd if=/dev/urandom of=/dev/sdb1	           [slow with high quality random data ]
OR
# badblocks -c 10240 -s -w -t random -v /dev/sdb1  [fast with high quality random data]

সতর্কতা: উপরের কমান্ডগুলি ডিভাইসে বিদ্যমান যে কোনও ডেটা মুছে ফেলবে।

একটি এনক্রিপ্টড ডিভাইস ফর্ম্যাট করা

এরপরে, ডিভাইসটিকে একটি ডিএম-ক্রিপ্ট/LUKS এনক্রিপ্টড ডিভাইস হিসাবে ফর্ম্যাট করতে ক্রিপ্টসেটআপ কমান্ড-লাইন সরঞ্জামটি ব্যবহার করুন।

# cryptsetup luksFormat /dev/sdb1

কমান্ডটি চালানোর পরে, নিম্নলিখিত স্ক্রিনশটটিতে যেমন দেখানো হয়েছে, আপনাকে ডিভাইসটি ব্যবহারের জন্য ফর্ম্যাট করার জন্য দুবার একটি পাসফ্রেজ সরবরাহ করার জন্য হ্যাঁ (বড়হাতে) প্রবেশ করার অনুরোধ জানানো হবে।

অপারেশনটি সফল হয়েছে কিনা তা যাচাই করতে নিম্নলিখিত কমান্ডটি চালান।

# cryptsetup isLuks /dev/sdb1 && echo Success

আপনি ডিভাইসের জন্য এনক্রিপশন তথ্যের সংক্ষিপ্তসার দেখতে পারেন।

# cryptsetup luksDump /dev/sdb1

একটি ডিক্রিপ্ট করা সামগ্রীতে অ্যাক্সেসের অনুমতি দেওয়ার জন্য ম্যাপিং তৈরি করা

এই বিভাগে, আমরা কীভাবে এনক্রিপ্ট হওয়া ডিভাইসের ডিক্রিপ্ট করা সামগ্রীগুলি অ্যাক্সেস করতে পারি তা কনফিগার করব। আমরা কার্নেল ডিভাইস-ম্যাপার ব্যবহার করে একটি ম্যাপিং তৈরি করব। এই ম্যাপিংয়ের অর্থপূর্ণ নাম তৈরি করার পরামর্শ দেওয়া হচ্ছে, লুক-উউইডের মতো কিছু (যেখানে <uuid> ডিভাইসের LUKS ইউআইডি (সর্বজনীন ইউনিক আইডেন্টিফায়ার) দিয়ে প্রতিস্থাপন করা হয়েছে।

আপনার এনক্রিপ্ট করা ডিভাইস ইউআইডি পেতে, নিম্নলিখিত কমান্ডটি চালান।

# cryptsetup luksUUID /dev/sdb1

ইউইউডি পাওয়ার পরে আপনি প্রদর্শিত ম্যাপিংয়ের নামটি তৈরি করতে পারেন (আপনাকে আগে তৈরি পাসফ্রেজ লিখতে অনুরোধ করা হবে)।

# cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

যদি কমান্ডটি সফল হয় তবে /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c নামের একটি ডিভাইস নোড যা ডিক্রিপ্টেড ডিভাইসকে উপস্থাপন করে।

সবেমাত্র তৈরি করা ব্লক ডিভাইসটি অন্য কোনও এনক্রিপ্ট না হওয়া ব্লক ডিভাইসের মতো থেকে পড়তে এবং লিখতে পারা যায়। নিম্নলিখিত কমান্ডটি চালিয়ে আপনি ম্যাপ করা ডিভাইস সম্পর্কে কিছু তথ্য দেখতে পাবেন।

# dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

ম্যাপযুক্ত ডিভাইসে ফাইল সিস্টেম তৈরি করা হচ্ছে

এখন আমরা ম্যাপ করা ডিভাইসে কীভাবে একটি ফাইল সিস্টেম তৈরি করব তা দেখব, যা আপনাকে অন্য ব্লক ডিভাইসের মতো ম্যাপড ডিভাইস নোড ব্যবহার করার অনুমতি দেবে।

ম্যাপযুক্ত ডিভাইসে একটি ext4 ফাইল সিস্টেম তৈরি করতে, নিম্নলিখিত কমান্ডটি চালান।

# mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

উপরের ফাইল সিস্টেমটি মাউন্ট করার জন্য, এর জন্য একটি মাউন্ট পয়েন্ট তৈরি করুন যেমন /mnt/এনক্রিপ্টড ডিভাইস এবং তারপরে এটি নিম্নলিখিত হিসাবে মাউন্ট করুন।

# mkdir -p /mnt/encrypted-device
# mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/

ম্যাপিংয়ের তথ্য/etc/crypttab এবং/etc/fstab এ যুক্ত করুন

এরপরে, ডিভাইসটির জন্য স্বয়ংক্রিয়ভাবে ম্যাপিং সেট করার পাশাপাশি বুট করার সময় এটি মাউন্ট করার জন্য আমাদের সিস্টেমটি কনফিগার করতে হবে।

নিম্নলিখিত ফর্ম্যাট সহ আপনার/etc/crypttab ফাইলটিতে ম্যাপিংয়ের তথ্য যুক্ত করা উচিত।

luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c   none

উপরের বিন্যাসে:

  • luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c - ম্যাপিংয়ের নাম
  • ইউআইডি = 59f2b688-526d-45c7-8f0a-1ac4555d1d7c - ডিভাইসের নাম

ফাইলটি সংরক্ষণ করুন এবং এটি বন্ধ করুন।

এরপরে, সিস্টেম বুট-এ ম্যাপ করা ডিভাইসটি স্বয়ংক্রিয়ভাবে মাউন্ট করতে/etc/fstab এ নিম্নলিখিত এন্ট্রি যুক্ত করুন।

/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  /mnt/encrypted-device  ext4 0 0

ফাইলটি সংরক্ষণ করুন এবং এটি বন্ধ করুন।

তারপরে এই ফাইলগুলি থেকে উত্পন্ন সিস্টেমড ইউনিটগুলি আপডেট করতে নিম্নলিখিত কমান্ডটি চালান।

# systemctl daemon-reload

ব্যাকআপ LUKS শিরোনাম

শেষ অবধি, আমরা কীভাবে LUKS শিরোনামগুলির ব্যাকআপ রাখব তা কভার করব। এনক্রিপ্ট করা ব্লক ডিভাইসে সমস্ত ডেটা হারিয়ে যাওয়া এড়াতে এটি একটি গুরুত্বপূর্ণ পদক্ষেপ, যদি ব্যবহারকারী ত্রুটি বা হার্ডওয়্যার ব্যর্থতা দ্বারা LUKS শিরোনামযুক্ত সেক্টরগুলি ক্ষতিগ্রস্ত হয়। এই ক্রিয়াটি ডেটা পুনরুদ্ধারের জন্য অনুমতি দেয়।

LUKS শিরোনামের ব্যাকআপ নিতে।

# mkdir /root/backups  
# cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

এবং LUKS শিরোনাম পুনরুদ্ধার করতে।

# cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

এখানেই শেষ! এই নিবন্ধে, আমরা ফেডোরা লিনাক্স বিতরণে LUKS ব্যবহার করে ব্লক ডিভাইসগুলি কীভাবে এনক্রিপ্ট করব তা ব্যাখ্যা করেছি। এই বিষয় বা গাইড সম্পর্কে আপনার কোনও প্রশ্ন বা মন্তব্য আছে, আমাদের কাছে পৌঁছানোর জন্য নীচের প্রতিক্রিয়া ফর্মটি ব্যবহার করুন।