نویسنده: fema co
6 فوریه 2024
0 49
SELinux چیست و چگونه کار می‌کند؟

SELinux چیست و چگونه کار می‌کند؟

سیستم‌عامل لینوکس یکی از محبوب‌ترین و حرفه‌ای‌ترین سیستم‌عامل‌هایی است که می‌توانید برای مدیریت سرورها از آن استفاده کنید. این سیستم‌عامل ویژگی‌های مختلفی دارد که امنیت سرور را افزایش می‌دهد. یکی از روش‌هایی که می‌توانید با استفاده از آن به‌راحتی امنیت سیستم‌عامل سرور خود را افزایش دهید، استفاده از SELinux است.

Security Enhanced Linux یا همان SELinux یک معماری امنیتی پیشرفته مبتنی بر لینوکس است که قدرت اختیار فوق‌العاده‌ای به مدیران سرور می‌دهد. می‌توانید به کمک این ماژول امنیتی امنیت داده‌های سرور خود را بیشتر کرده و آن را در برابر حملات مخرب محافظت کنید. اگر می‌خواهید بیشتر با SELinux و کاربردهای آن آشنا شوید می‌توانید تا انتهای این مقاله ما را همراهی کنید.

اصطلاح Security-Enhanced

اصلاح Security Enhanced یکی از اصطلاحات مهم در دنیای لینوکس است. این اصطلاح به معنای امنیت تقویت شده بوده و به‌عنوان ماژولی مستقل برای لینوکس شناخته می‌شود. در واقع با فعال‌سازی این ماژول، قابلیت‌هایی به کرنل لینوکس اضافه می‌شود که در مقام توسعه‌دهنده بوده و برخی از فرایندها را مسدود می‌کند.

بسیاری از توزیع‌های لینوکس این ماژول را به‌صورت یک فیچر پیش‌فرض درون خود دارند؛ اما در صورت عدم وجود این ماژول روی توزیع می‌توانید آن را به‌راحتی نصب و فعال‌سازی کنید. با کمک این ماژول کنترل نرم‌افزارها، نصب آن‌ها و مجوز استفاده آن‌ها با تدابیر امنیتی کنترل می‌شود.

ویژگی‌های SELinux و نکات مهم قبل از استفاده

ویژگی‌های بارزی که در ماژول SELinux وجود دارد شامل موارد زیر هستند:

  • فراهم Policy امنیتی سازگار با هر سیستم
  • اجرای فرایند وراثت و مقداردهی اولیه
  • دارای سرویس‌های کرنل و اشیا برچسب‌های مخصوص به خود
  • محافظت‌شدن و محرمانه بودن داده‌ها
  • تعریف رابط‌های Policy به طور کامل و آسان
  • پشتیبانی از تغییرات Policy
  • و…

یکی از ویژگی‌هایی که باید قبل از نصب و فعال‌سازی SELinux با آن آشنا باشید، ویژگی MAC (مخفف عبارت Mandatory Access Control) است. MAC روی DAC پیاده‌سازی شده و در حال حاضر تمامی توزیع‌های لینوکس از آن بهره می‌برند. موجودیت‌هایی که در این ماژول وجود دارد شامل کاربر، گروه و متفرقه می‌شود که به‌تمامی آن‌ها به اختیار UGO (User, Group, Others) گفته می‌شود.

هر کدام از این موجودیت‌ها مجوز ترکیبی روی یکی از فهرست‌ها دارند. به طور مثال، یکی از کاربرهای Linixhint در فهرست اصلی خودمان داریم که مجوزهای به خصوصی دارد. این کاربر به گروه خود و سایز گروه‌ها مربوط بوده و می‌توانید مجوزهای آن را در خروجی‌های زیر مشاهده کنید.

تمامی دسترسی‌های که در تصویر مشاهده می‌کنید می‌تواند توسط کاربر Linuxhint تغییر پیدا کند.

SELinux چیست و چگونه کار می‌کند؟

SELinux چیست و چگونه کار می‌کند؟

راه‌اندازی SELinux در سیستم‌عامل CentOS

حال که ویژگی‌ها و نحوه کارکردن SELinux را بررسی کردیم بهتر است راه‌اندازی آن در سیستم‌عامل CentOS را نیز بررسی کنیم.

در اولین مرحله باید سرویس‌های SFTP و Apache را نصب کنید که دستور زیر به این کار کمک می‌کند:

ls -l /home/linuxhint/ [/cc$ sudo yum install httpd

همانند تصویر زیر با استفاده از حرف Y مجوز نصب را صادر نمایید.

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

ls -l /home/linuxhint/ [/cc$ sudo yum install httpd [/cc$ service httpd start

سپس باید بسته vsftpd را روی CentOS نصب کنید که دستور زیر در این کار کمک می‌کند:

sudo yum install vsftpd

پس از نصب باید این سرویس را فعال کنید:

service vsftpd start

با کمک دستور زیر می‌توانید بسته‌های SELinux که در توزیع مدنظر سیستم‌عامل شما نصب هستند را مشاهده کنید:

rpm -qa | grep selinux

حال می‌توانید به کمک دستور زیر پکیج‌هایی که موردنیاز SELinux است را نصب کنید:

sudo yum install policycoreutils selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

حال تمامی بسته‌های SELinux و سرویس‌های موردنیاز آن در سیستم شما نصب شده‌اند.

انواع حالت‌های SELinux

برای این که بتوانید به بهترین شکل از ماژول SELinux استفاده کنید باید با حالت‌های مختلف آن آشنا باشید. این حالت‌ها به شکل زیر هستند:

1.    Permissive

حالت Permisive یکی از حالت‌های ماژول SELinux است که مشابه به یک حالت نیمه‌فعال است. در این حالت سرویس به طور کامل کارنکرده و هیچ‌کدام از دسترسی‌ها را محدود نمی‌کند. اما در این حالت نقض هر کدام از Policyهای SELinux ثبت شده و برای حالت‌های آزمایشی کاربردی است.

2.    Enforcing

این حالت را می‌توان حالت اصلی ماژول SELinux دانست. در حالت Enforcing امنیت سیستم یا سرور شما به طور کامل با این ماژول تأمین می‌شود. در چنین حالتی ماژول تمامی دسترسی‌های غیرمجاز به‌واسطه فرایندها و کاربران به اجرا گذاشته خواهد شد.

نکته دیگری که باید دررابطه‌با این حالت بدانید این است که این ماژول در حالت Enforcing تمامی عملکردهای اضافی را درون لاگ خود ثبت خواهد کرد. می‌توانید برای محدودکردن دسترسی‌های غیرمجاز از این حالت استفاده کنید.

3.    Disabled

همان‌طور که از نام حالت Disabled مشخص است، در این حالت تمامی عملکردهای ماژول SELinux به طور کامل غیرفعال خواهد شد. در واقع اگر می‌خواهید سیستم‌عامل لینوکس شما بدون هیچ‌گونه امنیت اضافی کار کند می‌توانید روی این حالت سوئیچ کنید. برای این که بدانید ماژول SELinux در چه حالتی فعال است می‌توانید از دستور زیر استفاده کنید:

getenforce

 

همچنین دستور زیر می‌تواند خالت فعالیت دقیق ماژول را به شما نمایش دهد:

sestatus

با کمک دستور زیر می‌توانید فایل پیکربندی ماژول را بررسی کنید:

sudo cat /etc/selinux/config

 

می‌توانید در این فایل حالت‌های مختلف SELinux را بررسی کنید.

فعال‌کردن SELinux در CentOS

اگر می‌خواهید ماژول SELinux را در سیستم‌عامل خود فعال کنید باید در اولین مرحله فایل پیکربندی آن را باز کنید:

sudo nano /etc/selinux/config

 

با باز کردن فایل پیکربندی مشاهده می‌کنید که ماژول در حالت Enforcing قرار گرفته است.

سپس باید با استفاده از دستور زیر حالت را به Primisive تغییر دهید تا فایل‌های ضروری Context مربوط به خود را داشته باشند:

SELINUX=permissive

 

حال باید CentOS را با استفاده از دستور زیر مجدداً راه‌اندازی کنید:

sudo reboot

 

با این کار تمامی فایل‌ها با کانتکست مخصوص به خود لیبل‌گذاری می‌شوند تا SELinix با خطایی مواجه نشود.

در مرحله بعدی باید به دنبال رشته SELinux is preventing باشید.

sudo cat /var/log/messages | grep "SELinux is preventing"

 

پس از واردکردن دستور بالا در صورت بروزندادن خطا به مرحله بعد بروید.

sudo cat /var/log/messages | grep "SELinux"

 

حال باید حالت SELinux را دوباره به حالت Enforcing تغییر دهید:

sudo nano /etc/sysconfig/selinux

 

سپس تغییرات را با استفاده از کلیدهای ترکیبی Ctrl+O ذخیره کنید.

برای ثبت تغییرات مجدداً CentOS را راه‌اندازی کنید:

sudo reboot

 

سپس با کمک دستور زیر وضعیت SELinux را بررسی نمایید:

sestatus

 

می‌توانید همانند تصویر زیر مود ماژول را بررسی کنید:

برای تغییردادن مود ماژول می‌توانید از دستور زیر کمک بگیرید:

sudo setenforce permissive
sestatus

 

در آخرین مرحله نیز برای بازگرداندن SELinux به حالت Enforcing از دستور زیر کمک بگیرید:

sudo setenforce enforcing

 

سخن پایانی

ماژول‌های مختلفی هستند که می‌توانید با نصب و راه‌اندازی آن‌ها در سیستم‌عامل لینوکس، عملکرد و امنیت آن را به طور کال تقویت کنید. ماژول SELinux یکی از محبوب‌ترین این ماژول‌ها است که با محدودکردن دسترسی به فایل‌های مختلف امنیت سرور شما را بیشتر می‌کند.

این ماژول در بیشتر توزیع‌های لینوکس وجود دارد؛ در صورتی هم که توزیع لینوکس سرور شما مجهز به این ماژول نبود می‌توانید با دستوراتی به‌راحتی آن را نصب و راه‌اندازی کنید. در این مقاله آموزشی سعی کردیم به طور کامل تمامی مراحلی که برای نصب، راه‌اندازی و تغییر حالت این ماژول وجود دارد را با هم بررسی کردیم.

اشتراک گذاری

SELinux چیست؟

SELinux نوعی معماری امنیتی است که مبتنی بر لینوکس بوده و برای ارتقای امنیت سیستم‌عامل‌های لینوکسی استفاده می‌شود.

چه سازمانی SELinux را توسعه داده است؟

SELinux یک ماژول امنیتی است که برای اولین‌بار توسط آژانس ملی امنیت ایالات متحده آمریکا برای هسته لینوکس ارائه شد.

آیا عملکرد SElinux همانند فایروال است؟

به دلیل محدودکردن دسترسی به برخی از فایل‌ها می‌توان عملکرد این ماژول را مانند فایروال دانست.

آیا پس از نصب و فعال‌سازی SELinux می‌توان آن را غیرفعال کرد؟

بله؛ شما می‌توانید با استفاده از دستورات خاصی حالت این ماژول را به حالت غیرفعال تغییر دهید.

منابع:

فاماسرور

مقالات مرتبط این مطلب پیشنهاد می شود

خدمات فاما سرور

  • سرور مجازی

    سرور مجازی

    سرور مجازی یکی از سرویس های پر استفاده و مقرون بصرفه برای کسب و کارهای کوچک و خدمات سایر در ضمینه IT و شبکه میباشد که توان پشتیبانی از 128 هسته و 512 گیگ رم را دارد.

  • سرور اختصاصی

    سرور اختصاصی

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

  • بیگ بلوباتن

    بیگ بلوباتن

    سرور بیگ بلوباتن اختصاصی و مجازی یکی از خدمات , برای استفاده از کلاس های آموزشی , جلسات و ... بصورت دوطرفه و با کیفیت تضمین شده میباشد.

  • هاست لینوکس

    هاست لینوکس

    در هاست لینوکس با منابع گوناگون امکان میزبانی از سایت های بزرگ و پر بازدید نیز وجود دارد و میتوان از مزایا و خدمات آن استفاده کرد.

  • هاست دانلود

    هاست دانلود

    هاست های دانلود فاماسرور میزبانی شده در دیتاسنتر های لول 1 ایران میباشد که با سخت افزار ها و استوریج های نسل جدید میزبانی و پشتیبانی میشوند.

  • ثبت دامنه

    ثبت دامنه

    ثبت دامنه های بین المللی , دامنه ir و دامنه های با پسوند های مختلف در فاماسرور پشتیبانی میشوند.