arshatech
August 24th, 2018, 23:56
بسیاری از شما خوانندگان محترم این مقاله تا به حال سرور مجازی یا vps با سیستم عامل لینوکس خریداری کرده اید. یا اینکه از لینوکس بعنوان سیستم عامل رایانه شخصی خود استفاده میکنید. در این صورت باید بدانید که عدم قرار دادن پسورد در گراب میتواند ماشین شما را در خطر دسترسی هکرها قرار دهد.
مالکان سرورهای اختصاصی میتوانند روی سرورهای شما بالاترین سطح دسترسی یعنی root را داشته باشند. همچنین هکرها میتوانند با دست یابی به سیستم شخصی شما دسترسی root بگیرند. این کار با دسترسی به grub سیستم شما بعد از بوت آن ممکن است. برای جلوگیری از این عمل شما باید گراب سیستم خود را امن کنید. این کار با تخصیص رمز عبور روی گراب ممکن است. اما سوالی که مطرح میشود این است که آیا سیستم عامل لینوکس دارای باگ روی گراب است؟ پاسخ منفیست. لینوکس یک سیستم عامل پیشرفته و امن است در صورتی که بتوانید با آن کار کنید.
داشتن قابلیت ویرایش گراب در لینوکس یک ویژگی است نه یک باگ امنیتی. شما بدلایل زیادی ممکن است نیاز به ویرایش گراب خود داشته باشید که با تخصیص پسورد روی گراب عملا اجازه ویرایش گراب را فقط به خودتان میدهید.
قرار دادن پسورد برای گراب در لینوکس
برای این کار باید مراحل زیر را دنبال کنید:
۱) در ابتدا با استفاده از دستور زیر یک رمز عبور مناسب برای grub انتخاب نمائید:
root@arshatech:~# grub2-mkpasswd-pbkdf2
هنگام وارد کردن رمز عبور و تایید آن، خروجی شبیه به زیر را دریافت میکنید:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.E71124FB8E13BF711CA254C1B DBFFC85233EDC9C911E518AE2C3A1D1F21862E90FEC8E444DB 152100A5858CDA4184D36CCF49827F7CC1B915DD4F3F464AF3 14F.CACF3DAA00EDED369D988AEAB5E50889ABEEFB9C8BFE08 9A39D70B37F2D2669C53044C563B748F6FE3091D8C8710E605 F33E943AA350A2ECD4A7D13D89A36DCB
۲) در مرحله بعد باید فایل ۴۰_custom را با یک ویرایشگر متن مثل vim باز کنید و به انتهای فایل بروید:
root@arshatech:~# vim /etc/grub.d/40_custom
عبارات زیر را که متشکل از نام کاربری و پسورد هش شده است را به ترتیب قرار بدهید. البته ی تغییری هم نیازه که قبل از مقدار هش باید عبارتی رو به شکل زیر قرار بدید:
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.E71124FB8E13BF711CA254C1B DBFFC85233EDC9C911E518AE2C3A1D1F21862E90FEC8E444DB 152100A5858CDA4184D36CCF49827F7CC1B915DD4F3F464AF3 14F.CACF3DAA00EDED369D988AEAB5E50889ABEEFB9C8BFE08 9A39D70B37F2D2669C53044C563B748F6FE3091D8C8710E605 F33E943AA350A2ECD4A7D13D89A36DCB
۳) تا اینجا با آپدیت کردن grub همه چیز به خوبی انجام شده است. منتها با هر بار ری استارت سیستم از شما برای وارد کردن نام کاربری و رمز عبور گراب سوال میکنه که این امر روی سرور عملا موجب اختلال میشود و شما نمیتوانید با استفاده از ارتباط ssh رمز عبور را وارد نمایید. فرض کنید سرور رو از راه دور به هر دلیلی ری استارت کردید و داره لود میشه. وسط کار از شما نام کاربری و رمز عبور گراب رو میخواد. تنها در صورت دسترسی به خود سرور از راه نزدیک و یا دسترسی داشتن به پنل هایی مثل vsphere میتونید اون رو وارد کنید. پس بهتره برای اینکه تنها در صورت ادیت گراب از شما رمز عبور بخواد این مرحله رو هم با ما باشید:
ابتدا فایل ۱۰_linux را به صورت زیر باز کرده:
root@arshatech:~# vim /etc/grub.d/10_linux
و عبارات زیر را پیدا کنید:
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
و آن ها را به صورت زیر تغییر دهید:
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} --user '' \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} --unrestricted \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
همچنین عبارت زیر را بیابید:
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
و آن را به صورت زیر تغییر دهید:
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' --user '' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
در تمامی مراحل کار حتما نسبت به اعمال تغییرات دقت لازم را داشته باشید. چرا که اگر اشتباهی رخ دهد در صورت راه اندازی مجدد سرور خود دیگر با روش های معمول قادر به دسترسی به سیستم خود نخواهید بود. در عین حال انجام این مراحل برای برقراری امنیت سرور شما “الزامی” میباشد.
۴) در انتها با دستور زیر گراب خود را جهت اعمال تغییرات به روز رسانی نمائید: (راهکارهای ارائه شده برای چهار توزیع محبوب)
دبین - اوبونتو
root@arshatech:~# update-grub2
سنت او اس - فدورا
[root@arshatech ~]# grub2-mkconfig -o /etc/grub2.cfg
همه چیز تمام است و شما میتوانید خیال آسوده تری نسبت به امنیت ماشین مجازی یا دسکتاپ خود داشته باشید!
مالکان سرورهای اختصاصی میتوانند روی سرورهای شما بالاترین سطح دسترسی یعنی root را داشته باشند. همچنین هکرها میتوانند با دست یابی به سیستم شخصی شما دسترسی root بگیرند. این کار با دسترسی به grub سیستم شما بعد از بوت آن ممکن است. برای جلوگیری از این عمل شما باید گراب سیستم خود را امن کنید. این کار با تخصیص رمز عبور روی گراب ممکن است. اما سوالی که مطرح میشود این است که آیا سیستم عامل لینوکس دارای باگ روی گراب است؟ پاسخ منفیست. لینوکس یک سیستم عامل پیشرفته و امن است در صورتی که بتوانید با آن کار کنید.
داشتن قابلیت ویرایش گراب در لینوکس یک ویژگی است نه یک باگ امنیتی. شما بدلایل زیادی ممکن است نیاز به ویرایش گراب خود داشته باشید که با تخصیص پسورد روی گراب عملا اجازه ویرایش گراب را فقط به خودتان میدهید.
قرار دادن پسورد برای گراب در لینوکس
برای این کار باید مراحل زیر را دنبال کنید:
۱) در ابتدا با استفاده از دستور زیر یک رمز عبور مناسب برای grub انتخاب نمائید:
root@arshatech:~# grub2-mkpasswd-pbkdf2
هنگام وارد کردن رمز عبور و تایید آن، خروجی شبیه به زیر را دریافت میکنید:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.E71124FB8E13BF711CA254C1B DBFFC85233EDC9C911E518AE2C3A1D1F21862E90FEC8E444DB 152100A5858CDA4184D36CCF49827F7CC1B915DD4F3F464AF3 14F.CACF3DAA00EDED369D988AEAB5E50889ABEEFB9C8BFE08 9A39D70B37F2D2669C53044C563B748F6FE3091D8C8710E605 F33E943AA350A2ECD4A7D13D89A36DCB
۲) در مرحله بعد باید فایل ۴۰_custom را با یک ویرایشگر متن مثل vim باز کنید و به انتهای فایل بروید:
root@arshatech:~# vim /etc/grub.d/40_custom
عبارات زیر را که متشکل از نام کاربری و پسورد هش شده است را به ترتیب قرار بدهید. البته ی تغییری هم نیازه که قبل از مقدار هش باید عبارتی رو به شکل زیر قرار بدید:
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.E71124FB8E13BF711CA254C1B DBFFC85233EDC9C911E518AE2C3A1D1F21862E90FEC8E444DB 152100A5858CDA4184D36CCF49827F7CC1B915DD4F3F464AF3 14F.CACF3DAA00EDED369D988AEAB5E50889ABEEFB9C8BFE08 9A39D70B37F2D2669C53044C563B748F6FE3091D8C8710E605 F33E943AA350A2ECD4A7D13D89A36DCB
۳) تا اینجا با آپدیت کردن grub همه چیز به خوبی انجام شده است. منتها با هر بار ری استارت سیستم از شما برای وارد کردن نام کاربری و رمز عبور گراب سوال میکنه که این امر روی سرور عملا موجب اختلال میشود و شما نمیتوانید با استفاده از ارتباط ssh رمز عبور را وارد نمایید. فرض کنید سرور رو از راه دور به هر دلیلی ری استارت کردید و داره لود میشه. وسط کار از شما نام کاربری و رمز عبور گراب رو میخواد. تنها در صورت دسترسی به خود سرور از راه نزدیک و یا دسترسی داشتن به پنل هایی مثل vsphere میتونید اون رو وارد کنید. پس بهتره برای اینکه تنها در صورت ادیت گراب از شما رمز عبور بخواد این مرحله رو هم با ما باشید:
ابتدا فایل ۱۰_linux را به صورت زیر باز کرده:
root@arshatech:~# vim /etc/grub.d/10_linux
و عبارات زیر را پیدا کنید:
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
و آن ها را به صورت زیر تغییر دهید:
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} --user '' \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} --unrestricted \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
همچنین عبارت زیر را بیابید:
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
و آن را به صورت زیر تغییر دهید:
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' --user '' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
در تمامی مراحل کار حتما نسبت به اعمال تغییرات دقت لازم را داشته باشید. چرا که اگر اشتباهی رخ دهد در صورت راه اندازی مجدد سرور خود دیگر با روش های معمول قادر به دسترسی به سیستم خود نخواهید بود. در عین حال انجام این مراحل برای برقراری امنیت سرور شما “الزامی” میباشد.
۴) در انتها با دستور زیر گراب خود را جهت اعمال تغییرات به روز رسانی نمائید: (راهکارهای ارائه شده برای چهار توزیع محبوب)
دبین - اوبونتو
root@arshatech:~# update-grub2
سنت او اس - فدورا
[root@arshatech ~]# grub2-mkconfig -o /etc/grub2.cfg
همه چیز تمام است و شما میتوانید خیال آسوده تری نسبت به امنیت ماشین مجازی یا دسکتاپ خود داشته باشید!