سیستم عامللینوکس

افزایش امنیت حساب های کاربری در لینوکس

افزایش امنیت حساب های کاربری در لینوکس

اگر شما هم لینوکس کار باشید، حتما میدانید که اولین و حیاتی ترین گام در جهت ایمن سازی سرورها و سیستم های لینوکسی، جلوگیری از دسترسی افراد متفرقه به حساب های کاربری است. در این مقاله به نحوه کنترل صحیح و افزایش امنیت کاربر لینوکس می پردازیم.

مواردی که امنیت یک حساب کاربری در لینوکس را به خطر می اندازند را در پنج گروه دسته بندی کردیم که در ادامه به توضیح هر کدام می پردازیم.

1. محدود کردن دسترسی به حساب root

بطور پیش فرض، هنگام نصب هر سیستم عامل لینوکسی یک حساب کاربری روت ایجاد میشود که از طریق SSH و از راه دور هم قابل دسترس است. در صورتی که توجه کافی به این حساب کاربری نشود، یک مهاجم می‌تواند به عنوان یک کاربر root وارد سیستم شده و به سیستم دسترسی پیدا کند.

برای محدود کردن دسترسی روت میتوانید موارد زیر را انجام دهید.

  • کاربر دیگری را اضافه کرده و به آن دسترسی root بدهید.
  • ورود به حساب روت را از طریق SSH محدود کنید.

ایجاد یک ابرکاربر (Superuser) در لینوکس

برای اعطای دسترسی sudo یا root به یک حساب کاربری معمولی لینوکس، ابتدا باید کاربر را به گروه sudo اضافه کنید. سپس با استفاده از دستور su به حساب کاربری سوئیچ کرده و با صدور فرمانی که فقط برای کاربر اصلی قابل دسترس است، دسترسی ریشه آن را تأیید کنید.

usermod -aG sudo username
su - username
sudo systemctl restart sshd

با فعال کردن دسترسی روت در لینوکس، میتوانید تمام دستورات اجرا شده توسط کاربران معمولی را بررسی کنید. علاوه بر این، می توانید فایل /etc/sudoers را ویرایش کنید تا مجوزهای superuser کاربران عادی را محدود کنید.

غیرفعال کردن ورود کاربر روت از طریق SSH

برای غیرفعال کردن ورود کاربر روت از طریق SSH، ابتدا فایل پیکربندی اصلی را با دستور زیر باز می کنیم:

sudo vim /etc/ssh/sshd_config

در ادامه خط زیر را از کامنت خارج می کنیم تا مجوزهای ورود root را روی no تنظیم کنیم:

PermitRootLogin no

سپس فایل را ذخیره کرده و سرویس sshd را با دستور زیر مجدد راه اندازی میکنیم:

sudo systemctl restart sshd

پس از انجام مراحل بالا، هر زمان که بخواهید با یوزر روت از طریق SSH به سیستم لینوکسی خود لاگین کنید، پیام خطای “Permission denied, please try again” را دریافت خواهید کرد.

غیرفعال کردن ورود کاربر روت از طریق SSH

2. تنظیم تاریخ انقضا برای حساب های کاربری لینوکس

یکی دیگر از راه های موثر برای کنترل دسترسی های غیر ضروری، تعیین تاریخ انقضا در حساب های ایجاد شده برای استفاده موقت است.

به عنوان مثال، اگر یک کارآموز یا یک کارمند نیاز به دسترسی به سیستم داشته باشد، می توانید یک تاریخ انقضا برای حساب کاربری او تعیین کنید. این یک اقدام برای احتیاط بیشتر است تا در صورتی که فراموش کردید پس از خروج آنها از سازمان، به صورت دستی حساب او را حذف کنید، مشکلی برای شما ایجاد نکنند.

از دستور chage به همراه ابزار grep برای بررسی جزئیات انقضای حساب کاربری ها استفاده کنید:

chage -l username| grep account

که خروجی این دستور به صورت زیر خواهد بود:

Account expires : never

همانطور که در خروجی بالا می بینید، حساب کاربری شما در ابتدا هیچ تاریخ انقضایی ندارد.

برای تعیین تاریخ انقضا برای کاربران لینوکس، می توانیم از دستور usermod با آرگومان -e استفاده کنیم. در این دستور تاریخ انقضا را در قالب YYYY-MM-DD تنظیم کرده و سپس با استفاده از دستور chage که پیشتر هم گفته شد، تغییرات را تایید می کنیم.

usermod -e 2021-01-25 username
chage -l username| grep account

3. استفاده از گذرواژه های قوی

استفاده از گذرواژه های قوی یک جنبه مهم برای ایمن سازی حساب های کاربری است، زیرا گذرواژه های ضعیف به مهاجمان این امکان را می دهند که به راحتی از طریق برخی حملات رایج مانند brute-force، دیکشنری و غیره به سیستم شما نفوذ کنند.

اکثر افراد پسوردهای ساده ای را به منظور به خاطر سپردن راحت تر انتخاب میکنند که همین موضوع راه هایی را برای مهاجمان باز می کند تا این پسوردها را با کمک ابزارهای افلاین و آنلاین پیدا کنند.

تعیین تاریخ انقضا برای رمز عبور

لینوکس برخی از گزینه های پیش‌فرض را در داخل فایل etc/logins.defs/ ارائه می‌کند که به شما امکان می‌دهد تا یک تاریخ انقضا را برای گذرواژه حساب خود تنظیم کنید. از دستور chage می توان برای انجام این کار استفاده کرد:

chage -l username | grep days

هش کردن پسوردها

یکی دیگر از راه های افزایش امنیت کاربر لینوکس، ذخیره کردن هش های رمز عبور در داخل فایل /etc/shadow است. هش ها توابع ریاضی یک طرفه هستند که رمز عبور را به عنوان ورودی دریافت کرده و یک رشته غیر قابل برگشت را در خروجی به ما می دهند.

بیشتر بخوانید: شناسایی و کرک انواع هش ها

پیش از این، در سیستم های لینوکسی، هر زمان که کاربری رمز عبور خود را برای ورود به سیستم وارد می کرد، سیستم رمز عبور آن را به هش تبدیل کرده و آن را با رمز ذخیره شده در فایل /etc/passwd/ بررسی می‌کرد.

با این حال، کسی که به سیستم دسترسی دارد می تواند فایل /etc/passwd/ را خوانده و هش های موجود را استخراج کند و با کرک کردن آن ها به پسورد اصلی برسد. از این رو، لینوکس اکنون هش های داخل فایل /etc/shadow را با مجموعه مجوزهای دسترسی زیر ذخیره می کند:

ls -l /etc/shadow
---------- 1 root root 1626 Feb 2 01:25 /etc/shadow

4. حذف حساب های استفاده نشده در لینوکس

یک نفوذگر می تواند از حساب های استفاده نشده و منقضی شده در سیستم با تمدید آن حساب و نشان دادن آن مانند یک کاربر قانونی سوء استفاده کند. برای حذف یک حساب غیرفعال، ابتدا همه فایل های مربوط به آن را پیدا می کنیم:

find / -user username

در صورت نیاز به فایل ها آن، می توانیم آن را به کاربر دیگر اختصاص داده یا بکاپ تهیه کنیم و یا اگر نیازی به فایل های آن نداشته باشیم، می توانیم با استفاده از دستور userdel، حساب کاربری آن را حذف کنیم.

userdel -f username

5. محدود کردن دسترسی از راه دور

در صورتی که یک وب سرور را روی دستگاه لینوکس خود میزبانی می کنید، ممکن است لازم باشد فقط به کاربران خاصی اجازه دهید که از طریق SSH از راه دور به سیستم وارد شوند. OpenSSL به شما این امکان را می دهد که با بررسی گروه کاربران، آن ها را محدود کرد.

برای این کار می توانید یک گروه کاربری به نام ssh_gp ایجاد کرده و کاربرانی که می خواهید به گروه دسترسی از راه دور بدهید را اضافه کنید. اطلاعات گروه کاربری را به صورت زیر فهرست کنید:

sudo groupadd ssh_gp
sudo gpasswd -a username ssh_gp
groups username

سپس فایل پیکربندی اصلی OpenSSL را باز کرده و گروه ایجاد شده را از کامنت خارج می کنیم:

sudo vim /etc/ssh/sshd_config
AllowGroups ssh_gp

پس از اتمام کار فایل را ذخیره کرده و از آن خارج شده و سرویس را مجددا راه اندازی می کنیم:

sudo systemctl restart sshd
نتیجه گیری

امروزه بیش از هفتاد درصد سرورهای موجود در دنیا را سرورهای لینوکسی تشکیل داده است که در این میان، حساب های کاربری یک چالش اساسی است که مدیران لینوکس با آن مواجه هستند. در این مقاله برخی از اقدامات امنیتی را برای افزایش امنیت کاربر لینوکس بررسی کردیم که از اهمیت زیادی برخوردار بودند.

بیشتر بخوانید:

منبع
makeuseof

یوسف وفایی

فارغ التحصیل کارشناسی IT، علاقه مند به برنامه نویسی و علم امنیت، عاشق یادگیری حرفه های جدید، کنجکاو برای همه چیز، همچنین همیشه تلاش میکنم تا به هدفم برسم...

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


دکمه بازگشت به بالا