چگونه میتوان گزینه 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 است:
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
فایل /etc/selinux/config را باید ویرایش کنید؛ برای این منظور، فرمان زیر را اجرا نمایید:
sudo vi /etc/selinux/config
وضعیت غیرفعال را برای SELINUX انتخاب کنید:
SELINUX=disabled
فایل را در محیط vi/vim ذخیره کرده و ببندید. حالا سیستم لینوکس را دوباره راهاندازی کنید:
sudo reboot
پس از راهاندازی دوباره سیستم، حتماً مطمئن شوید که نتیجه فرمانهای زیر حتماً گزینه Disabled باشد؛ به این معنا که SELinux برداشته شده و در سرور لینوکستان غیرفعال شده است.
getenforce sestatus
جمعبندی
در این مطلب نحوه غیرفعالسازی SELinux در CentOS 7، RHEL 7 و فدورا شرح داده شد. امیدواریم که این آموزش مورد استفاده شما قرار گرفته باشد.