کاربر Root در سیستمهای لینوکس دارای اختیارات ویژهای است که به این کاربر اجازه میدهد تقریباً به تمام بخشهای سیستم دسترسی داشته باشد. این بدین معنی است که کاربر Root میتواند هر تغییری را در سیستم انجام دهد، از نصب و حذف نرمافزارها گرفته تا تغییر تنظیمات امنیتی و دسترسی به فایلهای حساس.
با این حال، داشتن چنین دسترسی گستردهای میتواند خطرات امنیتی به همراه داشته باشد، به خصوص اگر اشتباهی رخ دهد یا اگر فردی غیرمجاز به این حساب دسترسی پیدا کند. به همین دلیل، برخی از مدیران سیستم تصمیم میگیرند که دسترسی به حساب کاربری Root را محدود یا حتی کاملاً غیرفعال کنند. این کار به عنوان یک استراتژی امنیتی میتواند به کاهش خطرات امنیتی کمک کند.
در حالی که محدود کردن دسترسی به حساب کاربری Root میتواند به افزایش امنیت کمک کند، باید توجه داشت که این رویکرد نیز میتواند محدودیتهایی ایجاد کند و بحثهایی در مورد اثربخشی واقعی آن وجود دارد. برخی معتقدند که این کار میتواند مدیریت سیستم را دشوارتر کند و گاهی اوقات نیاز به دسترسی Root برای انجام کارهای خاص وجود دارد.
در این آموزش، هدف این است که شما را با روشهای مختلفی برای جلوگیری از دسترسی آسان به حساب کاربری Root آشنا کنیم. هدف این است که ضمن حفظ امنیت احراز هویت، اطمینان حاصل شود که سیستم همچنان قابل مدیریت و کاربردی باقی میماند.
چگونگی فعالسازی ورود به حساب کاربری Root در لینوکس
استاندارد اوبونتو اجازه ورود به حساب کاربری Root از طریق گرافیک را نمیدهد. شما میتوانید در اوبونتو برای حساب Root یک رمز عبور جدید تنظیم کنید. این کار با دستور زیر انجام میشود که در تقریباً همه نسخههای لینوکس کار میکند:
sudo passwd root
بعد از وارد کردن رمز عبور جدید، میتوانید با استفاده از گزینه `-u` همراه با همین دستور، حساب کاربری Root را فعال کنید:
sudo passwd -u root
حالا با دستور `su root` میتوانید وارد حساب کاربری Root شوید و با دستور `whoami`، اطمینان حاصل کنید که به عنوان کاربر Root وارد شدهاید.
غیرفعالسازی ورود به حساب کاربری Root در لینوکس
بیشتر راههایی که اینجا میگوییم برای همه نسخههای لینوکس کاربرد دارند. مهم است که قبل از غیرفعال کردن ورود به حساب کاربری روت، یک حساب کاربری دیگر با دسترسی مدیریتی و توانایی اجرای دستورات ‘su’ یا ‘sudo’ ایجاد کنید. این کار مانع از دسترسی غیرمجاز به حساب Root میشود و از قفل شدن شما از سیستم جلوگیری میکند. با این حساب مدیریتی، شما همچنان میتوانید کارهای مهم را انجام دهید و سیستم را مدیریت کنید. بدون این دسترسی، یک هکر ممکن است از ناتوانی شما در اجرای عملیات مهم سوءاستفاده کرده و به سیستم شما آسیب برساند.
حالا بیایید به ترتیب روشهای مختلف را بررسی کنیم:
-
غیرفعال کردن ورود Root با استفاده از دستور passwd
با این دستور، رمز عبور Root قفل میشود و شما نمیتوانید تا زمانی که رمز عبور جدیدی تنظیم نشود، وارد حساب Root شوید:
sudo passwd -l root
-
غیرفعال کردن ورود Root با استفاده از دستور usermod
این دستور مشابه کاری است که دستور passwd انجام میدهد و برای قفل کردن حساب کاربری Root استفاده میشود:
sudo usermod -L root
-
تغییر پوسته ورود به /usr/sbin/nologin
در این حالت، قصد داریم پوسته پیشفرض Root را به nologin به جای bash تغییر دهیم. بنابراین هر زمان که کسی با رمز عبور صحیح وارد حساب کاربری Root شود، حساب به طور خودکار از پوسته خارج میشود.
دو روش برای تعیین پوسته nologin:
- ویرایش دستی فایل /etc/passwd
- استفاده از دستور usermod برای تعیین پوسته پیشفرض
توصیه میکنیم از دستور usermod استفاده کنید زیرا تمیزتر از ویرایش دستی فایل است، اما ما هر دو روش را در اینجا نشان میدهیم.
ویرایش دستی فایل /etc/passwd:
sudo nano /etc/passwd
ویرایش فایل Passwd برای غیرفعال کردن ورود کاربر Root در لینوکس
حالا میتوانید قسمتی که نوشته شده “/bin/bash” مجاور نام کاربری Root را به “/usr/sbin/nologin” تغییر دهید.
استفاده از دستور usermod برای تنظیم پوسته پیشفرض
بیایید نگاهی به روش دیگری برای جلوگیری از ورود کاربر Root بیندازیم. این کار را میتوان با دستور usermod و استفاده از گزینه -s انجام داد تا پوسته (shell) کاربری را تغییر دهید. دستور زیر این کار را انجام میدهد:
sudo usermod -s /usr/sbin/nologin root
با انجام این دستور، پوسته پیشفرض کاربر Root تغییر میکند به گونهای که ورود به ترمینال ممکن نیست. این تغییر را میتوانید با دستور زیر بررسی کنید:
cat /etc/passwd
حالا، کاربر Root نمیتواند به هیچ ترمینالی وارد شود. اگر سعی کنید با این حساب کاربری وارد شوید، پیامی دریافت خواهید کرد که میگوید حساب کاربری root غیرفعال شده است.
-
غیرفعال کردن ورود Root از طریق SSH
اگر فقط میخواهید ورود به حساب کاربری Root از طریق SSH را محدود کنید و نه تمام سیستم، میتوانید این کار را با تغییر دادن فایل تنظیمات SSH انجام دهید. فایل تنظیمات SSH در /etc/ssh/sshd_config قرار دارد. ابتدا، فایل را باز کنید:
sudo nano /etc/ssh/sshd_config
بعد، باید قسمتی که در آن PermitRootLogin نوشته شده را پیدا و تغییر دهید. معمولاً تنظیمات به گونهای هستند که ورود با رمز عبور برای کاربر Root ممنوع است و فقط با کلید امکانپذیر است. شما میتوانید این تنظیمات را به گونهای تغییر دهید که ورود کاربر root از طریق SSH کاملاً ممنوع شود.
-
محدود کردن دسترسی به خدمات حساب کاربری Root از طریق PAM
در لینوکس، برای افزایش امنیت و کاهش خطر حمله، میتوان دسترسی کاربر اصلی (root) به برخی سرویسها را محدود کرد. این کار با استفاده از PAM (ماژولهای احراز هویت) انجام میشود. شما میتوانید فایلهای تنظیم PAM را تغییر دهید تا تعیین کنید کدام کاربران میتوانند به سرویسهای خاص دسترسی داشته باشند. این فایلها معمولاً در پوشه /etc/pam.d/ قرار دارند. مثلاً با استفاده از ماژول ‘pam_listfile’ میتوانید لیستی از کاربرانی که اجازه دسترسی دارند یا ندارند بسازید. به عنوان مثال، اگر بخواهید دسترسی کاربر root به سرویس “sshd” را محدود کنید، ابتدا باید یک لیست از کاربران مجاز یا غیرمجاز بسازید. اینجا یک دستور ساده برای ساخت چنین لیستی در ترمینال وجود دارد:
echo -e "user1\nuser2\nuser3" | sudo tee /etc/allowed_users
حالا، فایل پیکربندی PAM برای سرویس “sshd” را باز کنید:
sudo nano /etc/pam.d/sshd
خط زیر را در ابتدای فایل برای پیکربندی ماژول pam_listfile اضافه کنید:
auth required pam_listfile.so item=user sense=allow file=/etc/allowed_users onerr=fail
فایل را ذخیره کرده و ببندید. با این کار، فقط کاربرانی که نامشان در فهرست /etc/allowed_users هست، میتوانند به سرویس “sshd” وارد شوند. اگر نام “root” را به فهرست اضافه نکنید، ورود با نام کاربری root ممکن نیست.
نتیجهگیری
این تمام آنچه است که باید درباره محدود کردن دسترسی کاربر root در سیستمهای لینوکس بدانید. این روشها ساده و کارآمد هستند و عموماً دو روش اول برای پاسخگویی به نیازهای اکثر کاربران کافی است. اگر شما هم به دنبال راههایی برای افزایش امنیت و کارایی سرور خود هستید، زویپ سرور میتواند به شما کمک کند.
در زویپ سرور، ما با ارائه سرورهای قدرتمند و خدمات میزبانی وب با کیفیت بالا، به شما در رسیدن به اهدافتان کمک میکنیم. فرقی نمیکند که شما یک توسعهدهنده حرفهای، مدیر سیستم یا صاحب کسبوکار آنلاین باشید، ما راهحلهای مناسب برای هر نوع نیازی داریم. با استفاده از سرورهای ما، شما میتوانید از سرعت و امنیت بالا در کنار پشتیبانی فنی ما بهرهمند شوید.
ما در زویپ سرور متعهد به ارائه خدمات با کیفیت و پشتیبانی فنی برتر هستیم. اگر سؤالی دارید یا به راهنمایی نیاز دارید، تیم ما همیشه آماده پاسخگویی است. به ما مراجعه کنید و تفاوت را با ما تجربه کنید.