چگونه هارد دیسک خود را ایمن کنیم؟ در اين پست قصد داريم نحوه ي پسورد گذاشتن روی هارد برای محافظت از اطلاعات در لینوکس را آموزش دهيم.
LUKS مخفف عبارت Linux Unified Key Setup و در حقیقت یک روش برای disk-encription می باشد که توسط کرنل لینوکس مورد استفاده قرار می گیرد و از طریق پکیج cryptsetup انجام می شود.
دستور cryptsetup یک volume disk را به سرعت و با استفاده از symmetric encryption key رمزنگاری میکند و درحقیقت passphrase که استفاده شده را هر زمان که یک volum disk یا یک پارتیشن و همچنین یک دیسک کامل (حتی یک USB فلش) مانت شوند پسورد را میخواهد و همچنین از aes-cbc-essiv:sha256 cipher استفاده میکند.
از آنجاییکه LUKS می تواند کل یک block device مثل (hard-disks, USB sticks, Flash disks, partitions, volume groups) را روی سیستم های لینوکسی encrypt کند استفاده از آن را برای محافظت از removable storage media, laptop hard-disks یا Linux swap files بسیار توصیه می شود اما استفاده از آن برای file level encryption پیشنهاد نمی شود.
NTFS یا New Technology File System یک فایل سیستم اختصاصی است که توسط Microsoft طراحی گردیده است.
اوبونتو 14.04 از LUKS Encryption به طور کامل پشتیبانی می کند و همچنین نسخه ی اصلی NTFS که برای ویندوز می باشد را نیزبا استفاده از پکیج ntfs-3g ساپورت میکند.
همچنین توصیه میشود مطالعه کنید :
امنیت فایل ها و دایرکتوری ها با استفاده از ACL در لینوکس
7 ابزار برای رمزنگاری و محافظت از فایل ها با استفاده از پسورد در لینوکس
نحوه ایجاد، رمزنگاری و رمزگشایی پسوردهای تصادفی در لینوکس
5 متد برای امنیت و نگهداری سرورهای لینوکس
در این پست من یک هارد دیسک جدید (به عنوان چهارمین هارد دیسک) روی ubunu 14.04 اضافه کردم (هارد جدید به عنوان /dev/sdd اضافه میشود) که به 2 پارتیشن تقسیم خواهد شد.
همچنین پارتیشن ها روی ubuntu بعد از reboot به صورت اتوماتیک mount خواهند شد.
مرحله 1 : ایجاد پارتیشن های Disk
1 - بعد از اینکه هارد دیسک تان به صورت فیزیکی روی ماشین تان اضافه شد از دستور ls برای لیست کردن تمامی دیوایس ها در dev/device استفاده کنیم. (دیسک چهارم /dev/sdd میباشد)
2 - سپس هارد جدید اضافه شده را با استفاده از دستور fdisk چک کنید :
در اینجا همانطور که میبینید در این فضا به دلیل اینکه پارتیشن تیبلی هنوز ایجاد نشده هیچ پارتیشنی موجود نمیباشد.
3 - در این مرحله هارد دیسک را به 2 پارتیشن تقسیم میکنیم که از ابزار cfdisk استفاده میشود :
4 - در مرحله بعد، بعداز اجرا کردن دستور cfdisk وارد یک محیط interactive میشویم فضای خالی هاردتان را انتخاب و با استفاده از کلیدهای جهت چپ و راست گزینه new را انتخاب میکنیم :
5 - در اینجا پارتیشن خود را به عنوان primery انتخاب کنید و اینتر را فشار دهید :
6 - در اینجا فضای مورد نظر خود را برای پارتیشن به MB وارد کنید :
7 - این پارتیشن را در ابتدای فضای آزاد هارد دیسک ایجاد کنید :
8 - سپس روی گزینه type پارتیشن رفته و enter را فشار دهید :
9 - مرحله بعد لیستی از تمامی type های فایل سیستم و شماره کد آنها (Hex number) ارائه میدهد این پارتیشن یک Linux LUKS Encrypted خواهد بود در نتیجه کد 83 انتخاب کنید و enter را برای ایجاد پارتیشن فشار دهید :
10 - پارتیشن اول ایجاد شد و در اینجا همانطور که میبینید ابزار cfdisk دوباره شما را به محیط اولیه برمیگرداند. برای ایجاد پارتیشن دوم با فرمت NTFS فضای باقی مانده را انتخاب کنید و بعد از انتخاب گزینه new اینتر را فشار دهید :
11 - در این مرحله پارتیشن یک Extended Logical خواهد بود در نتیجه روی گزینه Logical رفته و دوباره enter کنید :
12 - سایز پارتیشن را وارد کنید. برای استفاده از فضای آزاد باقی مانده برای پارتیشن جدید میزان پیشفرض سایز را دست نزنید و تنها enter را فشار دهید :
13 - بار دیگر کد type پارتیشن را انتخاب کنید برای فایل سیستم NTFS کد 86 را باید استفاده کنید :
14 - بعد از مرور و بررسی پارتیشن ها write را انتخاب کنید سپس yes و بعد از آن برای خارج شدن از ابزار cfdisk گزینه quit را بزنید :
پارتیشن های شما با موفقیت ایجاد شد و اکنون آماده فرمت کردن و استفاده میباشند.
15 - برای بررسی مجدد partition table دستور fdisk را دوباره اجرا کنید تا به شما جزییات اطلاعات partition table را نمایش دهد :
مرحله 2 : ایجاد فایل سیستم پارتیشن
فایل سیستم NTFS
16 - برای ایجاد فایل سیستم NTFS روی پارتیشن دوم دستور mkfs را اجرا کنید :
17 - برای قابل استفاده و در دسترس بودن پارتیشن باید آن را روی فایل سیستم و به یک mount point مانت کرد. پارتیشن دوم از هارد چهارم را به /opt و با استفاده از دستور mount مانت کنید :
18 - سپس بررسی کنید آیا پارتیشن موجود هست و در فایل /etc/mtab لیست شده باشد که برای این منظور از دستور cat استفاده میکنیم :
19 - برای unmount کردن پارتیشن از دستور زیر استفاده میشود :
EXT4 LUKS :
20 - از نصب پکیج cryptsetup روی سیستم تان مطمئن شوید :
21 - اکنون زمان آن رسیده که پارتیشن اول را روی هارد دیسک چهارم و با استفاده از فایل سیستم EXT4 فرمت کنیم که با اجرای دستور زیر انجام میشود :
در جواب سوال “Are you sure?” باید YES (با حروف بزرگ) را وارد کنید و سپس بعد از آن 3 مرتبه passphrase مورد نظرتان را وارد کنید :
توجه : بسته به سایز پارتیشن تان و سرعت هاردتان ممکن است ایجاد فایل سیستم به طول بیانجامد.
22 - همچنین شما میتوانید وضعیت partition device را بررسی کنید :
23 - LUKS اجازه اضافه کردن حداکثر 8 پسورد را ساپورت میکند برای اضافه کردن یک پسورد دستور زیر را اجرا کنید :
برای حذف کردن یک پسورد دستور زیر را اجرا کنید :
24 - برای این که این پارتیشن encrypt شده active شود باید یک نام به دایرکتوری /dev/mapper داشته باشد که با کمک ابزار cryptsetup انجام میشود.
این تنظیمات با استفاده از ساختار دستور زیر امکان پذیر است :
در دستور بالا به جای “device_name” هر نام دیگری که دوست دارید استفاده کنید. ( من آن را crypted_volume نام دادم). کامند واقعی شبیه به زیر میباشد :
25 - سپس بررسی کنید که آیا device شما در /dev/mapper لیست شده باشد همچنین دایرکتوری symbolic link و وضعیت device را بررسی کنید :
26 - اکنون برای این که device را mount کنیم تا در دسترس باشد از دستور زیر استفاده میکنیم :
همانطور که میبینید پارتیشن mount شده و برای تغییر و ویرایش اطلاعات در دسترس میباشد.
27 - برای unmount کردن پارتیشن و بستن device از دستور زیر استفاده میشود :
مرحله 3 : Mount کردن اتوماتیک پارتیشن
اگر شما از یک هارد دیسک ثابت استفاده میکنید و نیاز دارید هر دو پارتیشن به صورت اتوماتیک بعد از ریبوت سیستم تان مانت شوند باید دو مرحله زیر را انجام دهید.
28 - ابتدا فایل /etc/crypttab را ویرایش و اطلاعات زیر را به آن اضافه کنید :
Target name : یک نام توصیفی برای device شما (مورد 22 روی مبحث EXT4 LUKS را مشاهده کنید)
Source drive : پارتیشن هارد دیسک فرمت شده برای LUKS (مورد 21 روی مبحث EXT4 LUKS را مشاهده کنید)
Key file *: نام را انتخاب کنید.
Options : برای آن LUKS را مشخص کنید.
خط آخر باید شبیه به مورد زیر باشد :
29 - سپس فایل /etc/fstab را ویرایش کرده و نام device name, mount point, filesystem type و option های دیگر را مشخص کنید :
در خط آخر فایل باید ساختار زیر را استفاده کنید :
و محتوای خاص خود را وارد اضافه کنید :
30 - برای به دست آوردن UUID مربوط به device دستور زیر را استفاده کنید :
31 - همچنین برای اضافه کردن پارتیشن NTFS از قبل ایجاد شده ساختار مشابه به بالا در فایل fstab را باید استفاده کنید در اینجا خط جدید به فایل append redirect شده است)
32 - برای اعمال تغییرات ماشین خود را reboot کنید بعد از پیغام بوت “Starting configure network device” اینتر کنید و پسورد مربوطه به device تان را وارد کنید :
همانطور که دیدید هر 2 پارتیشن به صورت اتوماتیک mount شدند. به عنوان یک نصیحت هرگز از volume های encrypt شده اتوماتیک از فایل fstab روی سرور های remot فیزیکی که دسترسی برای reboot کردن آنها ندارید استفاده نکنید.
تنظیمات مشابه میتواند روی تمامی انواع دیسک ها مانند USB stick , Flash memory, external hard-disk و غیره برای محافظت از اطلاعات مهم و محرمانه و حساس به منظور جلوگیری از دزدیده شدن و یا خوانده شدن صورت پذیرد.
موفق باشید
م/ع/ص/و/م/ه و/ح/ی/د
LUKS مخفف عبارت Linux Unified Key Setup و در حقیقت یک روش برای disk-encription می باشد که توسط کرنل لینوکس مورد استفاده قرار می گیرد و از طریق پکیج cryptsetup انجام می شود.
دستور cryptsetup یک volume disk را به سرعت و با استفاده از symmetric encryption key رمزنگاری میکند و درحقیقت passphrase که استفاده شده را هر زمان که یک volum disk یا یک پارتیشن و همچنین یک دیسک کامل (حتی یک USB فلش) مانت شوند پسورد را میخواهد و همچنین از aes-cbc-essiv:sha256 cipher استفاده میکند.
از آنجاییکه LUKS می تواند کل یک block device مثل (hard-disks, USB sticks, Flash disks, partitions, volume groups) را روی سیستم های لینوکسی encrypt کند استفاده از آن را برای محافظت از removable storage media, laptop hard-disks یا Linux swap files بسیار توصیه می شود اما استفاده از آن برای file level encryption پیشنهاد نمی شود.
NTFS یا New Technology File System یک فایل سیستم اختصاصی است که توسط Microsoft طراحی گردیده است.
اوبونتو 14.04 از LUKS Encryption به طور کامل پشتیبانی می کند و همچنین نسخه ی اصلی NTFS که برای ویندوز می باشد را نیزبا استفاده از پکیج ntfs-3g ساپورت میکند.
همچنین توصیه میشود مطالعه کنید :
امنیت فایل ها و دایرکتوری ها با استفاده از ACL در لینوکس
7 ابزار برای رمزنگاری و محافظت از فایل ها با استفاده از پسورد در لینوکس
نحوه ایجاد، رمزنگاری و رمزگشایی پسوردهای تصادفی در لینوکس
5 متد برای امنیت و نگهداری سرورهای لینوکس
در این پست من یک هارد دیسک جدید (به عنوان چهارمین هارد دیسک) روی ubunu 14.04 اضافه کردم (هارد جدید به عنوان /dev/sdd اضافه میشود) که به 2 پارتیشن تقسیم خواهد شد.
- یک پارتیشن (پارتیشن /dev/sdd1 به عنوان primery)که به منظور LUKS Encryption مورد استفاده قرار میگیرد.
- پارتیشن دوم (/dev/sdd به عنوان Extended) که به منظور دسترسی اطلاعات هم روی لینوکس و هم ویندوز به NTFS فرمت شده
همچنین پارتیشن ها روی ubuntu بعد از reboot به صورت اتوماتیک mount خواهند شد.
مرحله 1 : ایجاد پارتیشن های Disk
1 - بعد از اینکه هارد دیسک تان به صورت فیزیکی روی ماشین تان اضافه شد از دستور ls برای لیست کردن تمامی دیوایس ها در dev/device استفاده کنیم. (دیسک چهارم /dev/sdd میباشد)
کد:
# ls /dev/sd*
2 - سپس هارد جدید اضافه شده را با استفاده از دستور fdisk چک کنید :
کد:
$ sudo fdisk –l /dev/sdd
در اینجا همانطور که میبینید در این فضا به دلیل اینکه پارتیشن تیبلی هنوز ایجاد نشده هیچ پارتیشنی موجود نمیباشد.
3 - در این مرحله هارد دیسک را به 2 پارتیشن تقسیم میکنیم که از ابزار cfdisk استفاده میشود :
کد:
$ sudo cfdisk /dev/sdd
5 - در اینجا پارتیشن خود را به عنوان primery انتخاب کنید و اینتر را فشار دهید :
6 - در اینجا فضای مورد نظر خود را برای پارتیشن به MB وارد کنید :
7 - این پارتیشن را در ابتدای فضای آزاد هارد دیسک ایجاد کنید :
8 - سپس روی گزینه type پارتیشن رفته و enter را فشار دهید :
9 - مرحله بعد لیستی از تمامی type های فایل سیستم و شماره کد آنها (Hex number) ارائه میدهد این پارتیشن یک Linux LUKS Encrypted خواهد بود در نتیجه کد 83 انتخاب کنید و enter را برای ایجاد پارتیشن فشار دهید :
10 - پارتیشن اول ایجاد شد و در اینجا همانطور که میبینید ابزار cfdisk دوباره شما را به محیط اولیه برمیگرداند. برای ایجاد پارتیشن دوم با فرمت NTFS فضای باقی مانده را انتخاب کنید و بعد از انتخاب گزینه new اینتر را فشار دهید :
11 - در این مرحله پارتیشن یک Extended Logical خواهد بود در نتیجه روی گزینه Logical رفته و دوباره enter کنید :
12 - سایز پارتیشن را وارد کنید. برای استفاده از فضای آزاد باقی مانده برای پارتیشن جدید میزان پیشفرض سایز را دست نزنید و تنها enter را فشار دهید :
13 - بار دیگر کد type پارتیشن را انتخاب کنید برای فایل سیستم NTFS کد 86 را باید استفاده کنید :
14 - بعد از مرور و بررسی پارتیشن ها write را انتخاب کنید سپس yes و بعد از آن برای خارج شدن از ابزار cfdisk گزینه quit را بزنید :
پارتیشن های شما با موفقیت ایجاد شد و اکنون آماده فرمت کردن و استفاده میباشند.
15 - برای بررسی مجدد partition table دستور fdisk را دوباره اجرا کنید تا به شما جزییات اطلاعات partition table را نمایش دهد :
کد:
$ sudo fdisk –l /dev/sdd
مرحله 2 : ایجاد فایل سیستم پارتیشن
فایل سیستم NTFS
16 - برای ایجاد فایل سیستم NTFS روی پارتیشن دوم دستور mkfs را اجرا کنید :
کد:
$ sudo mkfs.ntfs /dev/sdd5
17 - برای قابل استفاده و در دسترس بودن پارتیشن باید آن را روی فایل سیستم و به یک mount point مانت کرد. پارتیشن دوم از هارد چهارم را به /opt و با استفاده از دستور mount مانت کنید :
کد:
$ sudo mount /dev/sdd5 /opt
کد:
$ cat /etc/mtab
19 - برای unmount کردن پارتیشن از دستور زیر استفاده میشود :
کد:
$ sudo umount /opt
EXT4 LUKS :
20 - از نصب پکیج cryptsetup روی سیستم تان مطمئن شوید :
کد:
$ sudo apt-get install cryptsetup [On Debian Based Systems] # yum install cryptsetup [On RedHat Based Systems]
21 - اکنون زمان آن رسیده که پارتیشن اول را روی هارد دیسک چهارم و با استفاده از فایل سیستم EXT4 فرمت کنیم که با اجرای دستور زیر انجام میشود :
کد:
$ sudo luksformat -t ext4 /dev/sdd1
توجه : بسته به سایز پارتیشن تان و سرعت هاردتان ممکن است ایجاد فایل سیستم به طول بیانجامد.
22 - همچنین شما میتوانید وضعیت partition device را بررسی کنید :
کد:
$ sudo cryptsetup luksDump /dev/sdd1
23 - LUKS اجازه اضافه کردن حداکثر 8 پسورد را ساپورت میکند برای اضافه کردن یک پسورد دستور زیر را اجرا کنید :
کد:
$ sudo cryptsetup luksAddKey /dev/sdd1
برای حذف کردن یک پسورد دستور زیر را اجرا کنید :
کد:
$ sudo cryptsetup luksRemoveKey /dev/sdd1
24 - برای این که این پارتیشن encrypt شده active شود باید یک نام به دایرکتوری /dev/mapper داشته باشد که با کمک ابزار cryptsetup انجام میشود.
این تنظیمات با استفاده از ساختار دستور زیر امکان پذیر است :
کد:
$ sudo cryptsetup luksOpen /dev/LUKS_partiton device_name
کد:
$ sudo cryptsetup luksOpen /dev/sdd1 crypted_volume
25 - سپس بررسی کنید که آیا device شما در /dev/mapper لیست شده باشد همچنین دایرکتوری symbolic link و وضعیت device را بررسی کنید :
کد:
$ ls /dev/mapper $ ls –all /dev/mapper/encrypt_volume
کد:
$ sudo cryptsetup –v status encrypt_volume
26 - اکنون برای این که device را mount کنیم تا در دسترس باشد از دستور زیر استفاده میکنیم :
کد:
$ sudo mount /dev/mapper/crypted_volume /mnt
همانطور که میبینید پارتیشن mount شده و برای تغییر و ویرایش اطلاعات در دسترس میباشد.
27 - برای unmount کردن پارتیشن و بستن device از دستور زیر استفاده میشود :
کد:
$ sudo umount /mnt $ sudo cryptsetup luksClose crypted_volume
مرحله 3 : Mount کردن اتوماتیک پارتیشن
اگر شما از یک هارد دیسک ثابت استفاده میکنید و نیاز دارید هر دو پارتیشن به صورت اتوماتیک بعد از ریبوت سیستم تان مانت شوند باید دو مرحله زیر را انجام دهید.
28 - ابتدا فایل /etc/crypttab را ویرایش و اطلاعات زیر را به آن اضافه کنید :
کد:
$ sudo nano /etc/crypttab
Source drive : پارتیشن هارد دیسک فرمت شده برای LUKS (مورد 21 روی مبحث EXT4 LUKS را مشاهده کنید)
Key file *: نام را انتخاب کنید.
Options : برای آن LUKS را مشخص کنید.
خط آخر باید شبیه به مورد زیر باشد :
کد:
encrypt_volume /dev/sdd1 none luks
29 - سپس فایل /etc/fstab را ویرایش کرده و نام device name, mount point, filesystem type و option های دیگر را مشخص کنید :
کد:
$ sudo nano /etc/fstab
کد:
/dev/mapper/device_name (or UUID) /mount_point filesystem_type options dump pass
کد:
/dev/mapper/encrypt_volume /mnt ext4 defaults,errors=remount-ro 0 0
30 - برای به دست آوردن UUID مربوط به device دستور زیر را استفاده کنید :
کد:
$ sudo blkid
31 - همچنین برای اضافه کردن پارتیشن NTFS از قبل ایجاد شده ساختار مشابه به بالا در فایل fstab را باید استفاده کنید در اینجا خط جدید به فایل append redirect شده است)
کد:
$ sudo su - # echo "/dev/sdd5 /opt ntfs defaults 0 0" >> /etc/fstab
32 - برای اعمال تغییرات ماشین خود را reboot کنید بعد از پیغام بوت “Starting configure network device” اینتر کنید و پسورد مربوطه به device تان را وارد کنید :
همانطور که دیدید هر 2 پارتیشن به صورت اتوماتیک mount شدند. به عنوان یک نصیحت هرگز از volume های encrypt شده اتوماتیک از فایل fstab روی سرور های remot فیزیکی که دسترسی برای reboot کردن آنها ندارید استفاده نکنید.
تنظیمات مشابه میتواند روی تمامی انواع دیسک ها مانند USB stick , Flash memory, external hard-disk و غیره برای محافظت از اطلاعات مهم و محرمانه و حساس به منظور جلوگیری از دزدیده شدن و یا خوانده شدن صورت پذیرد.
موفق باشید
م/ع/ص/و/م/ه و/ح/ی/د