چگونه میتوان گزینه SELinux را از طریق خط فرمان در سرور ssh غیرفعال کرد؟ در این مطلب قرار است که با نحوه غیرفعال‌سازی SELinux در توزیع‌های مختلف لینوکس آشنا شویم. امّا شاید بهتر است ابتدا توضیح دهیم که SELinux دقیقاً چیست؟

SELinux در واقع، مخفی از عبارت «لینوکس ارتقا یافته از نظر امنیتی» بوده و یک ویژگی امنیتی کرنل لینوکس برای مدیریت دسترسی است. به عنوان مثال، یک ادمین سیستم می‌تواند با کمک SELinux سطح دسترسی هر کدام از کاربران و برنامه‌ها را به منابع تعیین کند.

SELinux عملاً از سازوکار کنترل دسترسی موجود در کرنل لینوکس استفاده می‌کند و قبلا توسط NSA توسعه داده شده است. در ادامه قصد داریم شما را با نحوه غیرفعال‌سازی ویژگی امنیتی SELinux در توزیع‌های لینوکس CentOS، RHEL و فدورا آشنا کنیم.

نحوه غیرفعال‌سازی SELinux در توزیع‌های لینوکس CentOS 7، RHEL 7 و فدورا

روند کار برای برداشتن و غیرفعال‌کردن ویژگی امنیتی SELinux به صورت زیر خواهد بود:

۱) به سرور خودتان وارد شوید.

۲) وضعیت کنونی SELinux را بررسی نمایید. برای این منظور از فرمان sestatus استفاده کنید.

۳) برای غیرفعال‌سازی SELinux بر روی CentOS 7 به صورت موقت، فرمان sudo setenforce 0 را اجرا کنید.

۴) فایل /etc/selinux/config را ویرایش کرده و برای SELINUX، گزینه disabled را انتخاب نمایید.

۵) سرور لینوکس را دوباره راه‌اندازی نمایید.

۶) این موضوع را دوباره با اجرای فرمان‌های sestatus و getenforce بررسی کنید.

 

حالا اجازه دهید که تمام فرمان‌ها، مثال‌ها و طریق استفاده را به صورت جزئی بررسی کنیم.

نحوه مشاهده وضعیت SELinux در CentOS 7

فرمان زیر را اجرا کنید:


sestatus

بررسی وضعیت SELinux

بررسی وضعیت SELinux

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


getenforce

Enforcing

یکی دیگر از گزینه‌ها، اجرای  فرمان cat به صورت زیر است:


cat /etc/selinux/config

نمونه خروجی:


SELINUX=enforcing

SELINUXTYPE=targeted

انواع مختلف سیاست‌های امنیتی

فایل /etc/selinux/config کنترل‌کننده وضعیت SELinux در سیستم است. برای وضعیت SELinux امکان انتخاب سه گزینه زیر وجود خواهد داشت:

  • enforcing– اجبار سیاست امنیتی SELinux
  • permissive– چاپ پیغام‌های هشداردهنده به جای اجبار به اجرای سیاست‌ها (به صورت غیرفعال)
  • disabled– بدون اجرای امنیتی SELinux

برای متغیر SELINUXTYPE= نیز می‌تواند یکی از این گزینه‌ها را انتخاب کرد:

  • targeted– فرآینده‌هایی که از قبل مشخص شده‌اند، محافظت می‌شوند.
  • minimum– اصلاح سیاست‌های مورد نظر. در این حالت، تنها فرآیندهای انتخاب‌شده محافظت می‌شوند.
  • mls- محافظت امنیتی در سطوح چندگانه.

مسلماً غیرفعال‌سازی SELinux به هیچ‌عنوان توصیه نمی‌شود و همیشه باید خطراتی را که متوجه سرور مبتنی بر لینوکس می‌شوند، درنظر گرفت.

 

غیرفعالسازی SELinux

همچنین امکان تغییر حالت SELinux با استفاده از فرمان setenforce وجود دارد. به عنوان مثال، برای ایجاد حالت enforcing در این ابزار خواهیم داشت:


sudo setenforce Enforcing

sestatus

برای قرار دادن SELinux در وضعیت permissive یا به عبارتی غیرفعال خواهیم داشت:


sudo setenforce Permissive

sestatus

getenforce

نحوه غیرفعال‌سازی SELinux در CentOS 7

نحوه غیرفعال‌سازی SELinux در CentOS 7

به خاطر داشته باشید که این روش موقتی و بدون راه‌اندازی دوباره سرور است. اگر می‌خواهید این ویژگی را برای همیشه غیرفعال کنید، می‌توانید روش زیر را به کار بگیرید:

غیرفعال‌سازی همیشگی SELinux

فایل /etc/selinux/config را باید ویرایش کنید؛ برای این منظور، فرمان زیر را اجرا نمایید:


sudo vi /etc/selinux/config

وضعیت غیرفعال را برای SELINUX انتخاب کنید:


SELINUX=disabled

فایل را در محیط vi/vim ذخیره کرده و ببندید. حالا سیستم لینوکس را دوباره راه‌اندازی کنید:


sudo reboot

پس از راه‌اندازی دوباره سیستم، حتماً مطمئن شوید که نتیجه فرمان‌های زیر حتماً گزینه Disabled باشد؛ به این معنا که SELinux برداشته شده و در سرور لینوکس‌تان غیرفعال شده است.


getenforce

sestatus

غیرفعال‌سازی SELinux و بررسی آن در CentOS 7 یا RHEL 7

غیرفعال‌سازی SELinux و بررسی آن در CentOS 7 یا RHEL 7

جمع‌بندی

در این مطلب نحوه غیرفعال‌سازی SELinux در CentOS 7، RHEL 7 و فدورا شرح داده شد. امیدواریم که این آموزش مورد استفاده شما قرار گرفته باشد.