بسیاری از شما خوانندگان محترم این مقاله تا به حال سرور مجازی یا vps با سیستم عامل لینوکس خریداری کرده اید. یا اینکه از لینوکس بعنوان سیستم عامل رایانه شخصی خود استفاده میکنید. در این صورت باید بدانید که عدم قرار دادن پسورد در گراب میتواند ماشین شما را در خطر دسترسی هکرها قرار دهد.
مالکان سرورهای اختصاصی میتوانند روی سرورهای شما بالاترین سطح دسترسی یعنی root را داشته باشند. همچنین هکرها میتوانند با دست یابی به سیستم شخصی شما دسترسی root بگیرند. این کار با دسترسی به grub سیستم شما بعد از بوت آن ممکن است. برای جلوگیری از این عمل شما باید گراب سیستم خود را امن کنید. این کار با تخصیص رمز عبور روی گراب ممکن است. اما سوالی که مطرح میشود این است که آیا سیستم عامل لینوکس دارای باگ روی گراب است؟ پاسخ منفیست. لینوکس یک سیستم عامل پیشرفته و امن است در صورتی که بتوانید با آن کار کنید.
داشتن قابلیت ویرایش گراب در لینوکس یک ویژگی است نه یک باگ امنیتی. شما بدلایل زیادی ممکن است نیاز به ویرایش گراب خود داشته باشید که با تخصیص پسورد روی گراب عملا اجازه ویرایش گراب را فقط به خودتان میدهید.
قرار دادن پسورد برای گراب در لینوکس
1 |
root@arshatech:~# grub2-mkpasswd-pbkdf2 |
در صورتی که دستور بالا در ماشین شما پشتیبانی نمیشد (معمولا هنگام استفاده از توزیع دبین) از دستور زیر استفاده بفرمائید:
1 |
root@arshatech:~# grub-mkpasswd-pbkdf2 |
هنگام وارد کردن رمز عبور و تایید آن، خروجی شبیه به زیر را دریافت میکنید:
1 |
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.E71124FB8E13BF711CA254C1BDBFFC85233EDC9C911E518AE2C3A1D1F21862E90FEC8E444DB152100A5858CDA4184D36CCF49827F7CC1B915DD4F3F464AF314F.CACF3DAA00EDED369D988AEAB5E50889ABEEFB9C8BFE089A39D70B37F2D2669C53044C563B748F6FE3091D8C8710E605F33E943AA350A2ECD4A7D13D89A36DCB |
1 |
root@arshatech:~# vim /etc/grub.d/40_custom |
1 2 |
set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.E71124FB8E13BF711CA254C1BDBFFC85233EDC9C911E518AE2C3A1D1F21862E90FEC8E444DB152100A5858CDA4184D36CCF49827F7CC1B915DD4F3F464AF314F.CACF3DAA00EDED369D988AEAB5E50889ABEEFB9C8BFE089A39D70B37F2D2669C53044C563B748F6FE3091D8C8710E605F33E943AA350A2ECD4A7D13D89A36DCB |
۳) تا اینجا با آپدیت کردن grub همه چیز به خوبی انجام شده است. منتها با هر بار ری استارت سیستم از شما برای وارد کردن نام کاربری و رمز عبور گراب سوال میکنه که این امر روی سرور عملا موجب اختلال میشود و شما نمیتوانید با استفاده از ارتباط ssh رمز عبور را وارد نمایید. فرض کنید سرور رو از راه دور به هر دلیلی ری استارت کردید و داره لود میشه. وسط کار از شما نام کاربری و رمز عبور گراب رو میخواد. تنها در صورت دسترسی به خود سرور از راه نزدیک و یا دسترسی داشتن به پنل هایی مثل vsphere میتونید اون رو وارد کنید. پس بهتره برای اینکه تنها در صورت ادیت گراب از شما رمز عبور بخواد این مرحله رو هم با ما باشید:
ابتدا فایل ۱۰_linux را به صورت زیر باز کرده:
1 |
root@arshatech:~# vim /etc/grub.d/10_linux |
و عبارات زیر را پیدا کنید:
1 2 3 |
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/" |
و آن ها را به صورت زیر تغییر دهید:
1 2 3 |
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/" |
همچنین عبارت زیر را بیابید:
1 |
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" |
و آن را به صورت زیر تغییر دهید:
1 |
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' --user '' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" |
در تمامی مراحل کار حتما نسبت به اعمال تغییرات دقت لازم را داشته باشید. چرا که اگر اشتباهی رخ دهد در صورت راه اندازی مجدد سرور خود دیگر با روش های معمول قادر به دسترسی به سیستم خود نخواهید بود. در عین حال انجام این مراحل برای برقراری امنیت سرور شما “الزامی” میباشد.
۴) در انتها با دستور زیر گراب خود را جهت اعمال تغییرات به روز رسانی نمائید: (راهکارهای ارائه شده برای چهار توزیع محبوب)
1 |
root@arshatech:~# update-grub2 |
1 |
[root@arshatech ~]# grub2-mkconfig -o /etc/grub2.cfg |
همه چیز تمام شد شما میتونید آرامش بیشتری نسبت به سرور لینوکسی خود داشته باشید!