پس از راهاندازی یک سرور لینوکسی، معمولاً اطلاعات ورود اولیه شامل نام کاربری root و یک رمز عبور در اختیار شما قرار میگیرد. بسیاری از مدیران سرور، تمام فعالیتهای روزانه خود را با همین حساب کاربری انجام میدهند؛ در حالی که این یکی از رایجترین اشتباهات امنیتی است.
کاربر Root بالاترین سطح دسترسی را در سیستمعامل لینوکس دارد و میتواند هر فایل، سرویس یا تنظیمی را بدون هیچ محدودیتی تغییر دهد. اگر این حساب کاربری به خطر بیفتد، مهاجم کنترل کامل سرور را در اختیار خواهد گرفت.
به همین دلیل، یکی از اولین اقدامات امنیتی پس از راهاندازی سرور، ایجاد یک کاربر مدیریتی جدید و کاهش استفاده مستقیم از Root است.
Root یا Superuser قدرتمندترین حساب کاربری در لینوکس است.
این کاربر:
به تمام فایلها دسترسی دارد.
میتواند کاربران را ایجاد یا حذف کند.
سرویسها را مدیریت کند.
نرمافزار نصب یا حذف کند.
تنظیمات سیستمعامل را تغییر دهد.
فایلهای سیستمی را حذف کند.
به همین دلیل، استفاده روزمره از این حساب توصیه نمیشود.

استفاده دائمی از Root چندین مشکل امنیتی ایجاد میکند.
در اکثر حملات Brute Force، اولین نام کاربری که مهاجمان امتحان میکنند root است.
وقتی با Root وارد سیستم هستید، هیچ محدودیتی وجود ندارد.
برای مثال یک دستور اشتباه میتواند باعث حذف کامل اطلاعات سیستم شود.
نمونهای که هر مدیر لینوکس از آن اجتناب میکند:
rm -rf /
اگر چنین دستوری توسط Root اجرا شود، ممکن است کل سیستم از بین برود.
اگر همه مدیران سیستم با Root وارد شوند، تشخیص اینکه چه کسی چه تغییری ایجاد کرده دشوار خواهد بود.
در مقابل، اگر هر مدیر حساب کاربری جداگانه داشته باشد، بررسی فعالیتها بسیار سادهتر خواهد بود.
بهترین روش این است که:
یک کاربر جدید ایجاد کنید.
به آن دسترسی مدیریتی (sudo) بدهید.
فعالیتهای روزمره را با همان کاربر انجام دهید.
فقط در مواقع ضروری از دسترسی Root استفاده کنید.
برای ایجاد کاربر جدید:
sudo adduser maraladmin
در هنگام ایجاد کاربر، سیستم از شما موارد زیر را درخواست میکند:
رمز عبور
تأیید رمز عبور
اطلاعات اختیاری مانند نام و شماره تماس
اگر نیازی به این اطلاعات ندارید، میتوانید با فشردن Enter از آنها عبور کنید.
در این توزیعها نیز میتوانید از دستور زیر استفاده کنید:
sudo adduser maraladmin
سپس برای تعیین رمز عبور:
sudo passwd maraladmin
در Ubuntu و Debian:
sudo usermod -aG sudo maraladmin
این دستور به کاربر اجازه میدهد در صورت نیاز، دستورات مدیریتی را با sudo اجرا کند.
در AlmaLinux، Rocky Linux و RHEL:
sudo usermod -aG wheel maraladmin
گروه wheel نقش مشابه گروه sudo در Ubuntu را دارد.
برای مشاهده گروههای کاربر:
groups maraladmin
یا:
id maraladmin
از حساب Root خارج شوید.
exit
سپس با کاربر جدید وارد شوید.
برای بررسی دسترسی مدیریتی:
sudo whoami
اگر خروجی زیر را مشاهده کردید:
root
یعنی تنظیمات بهدرستی انجام شده است.
به جای ورود مستقیم با Root، دستورات مدیریتی را به این شکل اجرا کنید:
sudo apt update
یا
sudo systemctl restart nginx
در این حالت، سیستم قبل از اجرای دستور رمز عبور کاربر فعلی را درخواست میکند.
دو روش برای اجرای دستورات مدیریتی وجود دارد.
فقط همان دستور با دسترسی مدیریتی اجرا میشود.
نمونه:
sudo dnf update
کل نشست (Session) به Root تبدیل میشود.
su -
در محیطهای عملیاتی، استفاده از sudo معمولاً انتخاب بهتری است.
مزایای استفاده از sudo:
ثبت تمام دستورات در لاگ
کاهش احتمال خطا
عدم نیاز به اشتراکگذاری رمز Root
امکان تعیین سطح دسترسی برای هر کاربر
قابلیت محدود کردن دستورات مجاز
خیر.
حساب Root یکی از اجزای اصلی سیستمعامل است و حذف آن توصیه نمیشود.
هدف این است که استفاده روزمره از Root متوقف شود، نه اینکه این حساب حذف شود.
پس از اطمینان از عملکرد صحیح کاربر جدید، بهتر است ورود مستقیم Root از طریق SSH را غیرفعال کنید.
این کار یکی از مؤثرترین اقدامات برای کاهش حملات Brute Force است.
در مقاله بعدی، این موضوع را بهصورت کامل بررسی خواهیم کرد.
برخی اشتباهات متداول عبارتاند از:
ادامه استفاده روزمره از Root
فراموش کردن افزودن کاربر به گروه sudo یا wheel
حذف یا غیرفعال کردن Root قبل از تست کاربر جدید
استفاده از یک حساب مشترک بین چند مدیر سرور
انتخاب رمز عبور ضعیف برای کاربر مدیریتی
پس از ایجاد کاربر جدید، این موارد را بررسی کنید:
کاربر جدید ایجاد شده است.
رمز عبور قوی انتخاب شده است.
کاربر عضو گروه sudo یا wheel است.
اجرای دستورات مدیریتی با sudo بدون مشکل انجام میشود.
ورود با کاربر جدید تست شده است.
حساب Root همچنان برای مواقع اضطراری در دسترس است.
استفاده مستقیم و مداوم از حساب Root، یکی از رایجترین اشتباهات در مدیریت سرورهای لینوکسی است. بهترین روش این است که پس از نصب سیستمعامل، یک حساب مدیریتی جدید ایجاد کرده و فعالیتهای روزمره را با همان کاربر انجام دهید.
این رویکرد علاوه بر افزایش امنیت، باعث ثبت دقیقتر فعالیتها، کاهش احتمال خطاهای انسانی و مدیریت بهتر دسترسیها میشود. پس از اطمینان از عملکرد صحیح کاربر جدید، گام بعدی، غیرفعال کردن ورود مستقیم Root از طریق SSH و استفاده از احراز هویت مبتنی بر کلید عمومی (SSH Key) خواهد بود که امنیت سرور را به شکل قابل توجهی افزایش میدهد.
کیان پور