چهار روش برای غیر فعال کردن حساب ریشه در لینوکس
حساب ریشه ، یک حساب نهایی در لینوکس و سایر سیستم عامل های مشابه یونیکس است. این حساب به تمامی دستورات و فایل ها در یک سیستم با مجوز کامل خواندن، نوشتن و اجرا، دسترسی دارد. برای انجام هر کاری در یک سیستم استفاده می شود؛ برای ایجاد، به روز رسانی، دسترسی، حذف حساب های کاربران دیگر، نصب، حذف، ارتقاء بسته های نرم افزاری و خیلی موارد بیشتر.
از آنجا که کاربر ریشه دارای قدرت مطلق است، هر گونه فعالیتی که وی انجام می دهد در یک سیستم حیاتی است. در این راستا، هر گونه خطا توسط کاربر ریشه ممکن است پیامدهای بزرگی در عملکرد عادی یک سیستم داشته باشد. علاوه بر این، این حساب نیز ممکن است با استفاده نامناسب از آن یا به طور تصادفی و یا از طریق نادیده انگاشتن سیاست ها مورد سوء استفاده قرار گیرد. بنابراین، بهتر است دسترسی ریشه در سرور لینوکس خود را غیر فعال کنید، در عوض، یک حساب مدیریتی ایجاد کرده و برای به دست آوردن امتیازات ریشه با استفاده از دستور sudo، برای انجام وظایف مهم در سرور، حساب مورد نظر را پیکربندی کنید.
در این مقاله، ما چهار راه برای غیر فعال کردن ورود به حساب کاربریroot در لینوکس را توضیح خواهیم داد.
توجه: قبل از اینکه شما دسترسی به حساب ریشه را مسدود کنید، مطمئن شوید که یک حساب کاربری ایجاد کرده اید، دستور useradd، به استفاده از دستور sudoبرای به دست آوردن امتیازات کاربر ریشه کمک میکند و یک رمز عبور قوی برای حساب کاربری ارائه می دهد. پرچم m به معنی ایجاد دایرکتوری خانگی کاربر است و c اجازه می دهد تا یک نظر را مشخص کند:
# useradd –m –c "Admin User" admin
# passwd admin
سپس، این کاربر را به گروه مناسب از مدیران سیستم با استفاده از دستور usermod اضافه کنید، جایی که سوئیچ -a، به معنی اضافه کردن حساب کاربری است و -G ، یک گروه را برای اضافه کردن کاربر (wheel or sudo) در توزیع لینوکس شما مشخص می کند:
# usermod -aG wheel admin #Centos
# usermod -aG sudo admin #Debian
هنگامی که یک کاربر را با امتیازات مدیریتی ایجاد کرده اید، برای مسدود کردن دسترسی ریشه، به این حساب بروید.
# su admin
1) تغییر ریشه کاربر Change root User’s Shell) Shell )
ساده ترین روش برای غیرفعال کردن ورود کاربر root این است که پوسته خود را از/bin/bash (یا هر پوسته دیگری که اجازه ورود کاربر را دارد) به /sbin/nologin درفایل /etc/passwd تغییردهید.
$ sudo vim /etc/passwd
تغییر خط:
root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin
درانتها فایل را ذخیره کرده و ببندید.
ازاین پس، هنگامی که کاربر ریشه وارد سیستم می شود، پیامی دریافت می کند: "این حساب در حال حاضر در دسترس نیست." این پیام پیش فرض است، اما شما می توانید آن را تغییر دهید و یک پیام سفارشی در فایل /etc/nologin.txt تنظیم کنید. این روش تنها برای برنامه هایی که نیاز به پوسته برای ورود به سیستم دارند موثر است، در غیر این صورت، سرورهای sudo، ftp و ایمیل می توانند به حساب root دسترسی پیدا کنند.
2) غیرفعال کردن ورود کاربر root از طریق کنسول ((Disable root Login via Console Device (TTY)
روش دوم از یک ماژول PAM به نام pam_securetty استفاده می کند که اجازه دسترسی به ریشه را فقط در صورتی که کاربر در TTY "امن" وارد شده باشد، می دهد. همانطور که در فهرست etc / securetty تعریف شده است. فایل فوق به شما اجازه می دهد که مشخص کنید کدام دستگاه های TTY کاربر ریشه، مجاز به ورود به سیستم است، تخلیه این فایل از ورود ریشه در هر دستگاه متصل به سیستم کامپیوتری جلوگیری می کند.
$ sudo mv /etc/securetty /etc/securetty.orig
$ sudo touch /etc/securetty
$ sudo chmod 600 /etc/securetty
این روش دارای برخی محدودیت هاست و تنها بر روی برنامه هایی نظیر ورود به سیستم، مدیران نمایش (i.e gdm، kdm و ( xdm و سایر سرویس های شبکه ای که TTY را راه اندازی می کنند، تاثیر می گذارد. برنامه هایی مانند su، sudo، ssh و سایر ابزارهای باز شده به حساب root دسترسی خواهند داشت.
3) غیر فعال کردن ریشه ورود به سیستم SSH (Disable SSH Root Login)
رایج ترین راه برای دسترسی به سرورهای از راه دور و یا VPS ها از طریق SSH است و برای مسدود کردن ورود کاربر ریشه تحت آن، شما باید فایل /etc / ssh / sshd_config را ویرایش کنید.
$ sudo vim /etc/ssh/sshd_config
سپس دستورPermitRootLogin مطابق شکل زیر اجراکرده و مقدار آن را به no تغییر دهید.
پس از پایان کار، فایل را ذخیره کرده و ببندید. سپس سرویس sshd را مجددا راه اندازی کنید تا تغییرات اخیر در تنظیمات اعمال شود.
$ sudo systemctl restart sshd
or
$ sudo service sshd restart
این روش فقط بر روی مجموعه ابزار openssh تاثیر می گذارد؛ برنامه هایی مانند ssh، scp، sftp از دسترسی به حساب root رد می شوند.
4) دسترسی ریشه به خدمات را از طریق PAM محدود کنید (Restrict root Acess to Services Via PAM)
ماژول های تأیید هویت انطباق پذیر (PAM در کوتاه مدت) یک روش متمرکز، پلاگین، انعطاف پذیر برای احراز هویت در سیستم های لینوکس است. PAM از طریق ماژولlib/security/pam_listfile.so / به انعطاف پذیری زیاد در محدود کردن امتیازات حساب های خاص اجازه می دهد. ماژول بالا می تواند برای ارجاع به یک لیست از کاربران که مجاز به ورود از طریق برخی از خدمات هدف مانند ورود به سیستم، SSH و هر برنامه آگاه از PAM نیستند، استفاده شود.
در این مورد، ما می خواهیم دسترسی ریشه به یک سیستم را با محدود کردن دسترسی به ورود و سرویس های sshd غیرفعال کنیم. ابتدا فایل را برای سرویس هدف در دایرکتوری /etc/pam.d/باز کرده و ویرایش کنید.
$ sudo vim /etc/pam.d/login
or
sudo vim /etc/pam.d/sshd
بعد، پیکربندی زیر را در هر دو فایل اضافه کنید.
auth required pam_listfile.so \
onerr=succeed item=user sense=deny file=/etc/ssh/deniedusers
هرفایل را ذخیره کرده و ببندید.سپس فایل ساده / etc / ssh / deniedusers را ایجاد کنید که باید حاوی یک مورد در هر خط باشد. نام ریشه را در آن اضافه کنید، سپس آن را ذخیره کرده و آن را ببندید.
$ sudo vim /etc/ssh/deniedusers
همچنین مجوزهای مورد نیاز در این را تنظیم کنید.
$ sudo chmod 600 /etc/ssh/deniedusers
این روش تنها بر برنامه ها و سرویس هایی که PAM آگاه هستند، تاثیر می گذارد. شما می توانید دسترسی ریشه به سیستم را از طریق FTP و ایمیل مشتریان و غیره مسدود کنید. برای اطلاعات بیشتر، به صفحات مربوط بهman مراجعه کنید.
$ man pam_securetty
$ man sshd_config
$ man pam
در این مقاله، ما چهار راه را برای غیر فعال کردن حساب ریشه (root) در لینوکس توضیح دادیم.امیدوارم مطالب این بخش ازلینوکس برای شما مفید باشد.
منبع : https://www.tecmint.com/disable-root-login-in-linux/
تهیه کننده : رضا لطیفی – 951830260