Security Enhanced Linux یا SELinux، یک مکانیسم امنیتی است که در هسته لینوکس ساخته شده است و توسط توزیع‌های مبتنی بر RHEL استفاده می‌شود.

SELinux با اجازه دادن به مدیران و کاربران برای کنترل دسترسی به اشیاء بر اساس قوانین خط مشی، یک لایه امنیتی اضافی به سیستم اضافه می‌کند.

 

قوانین خط مشی SELinux، نحوه تعامل پردازش‌ها و کاربران با یکدیگر و همچنین نحوه تعامل پردازش‌ها و کاربران با فایل‌ها را مشخص می‌کند. زمانی که هیچ قانونی وجود ندارد که به طور صریح اجازه دسترسی به یک شی را بدهد (مانند فرآیندی که یک فایل را باز می‌کند) دسترسی ممنوع است.

 

این مطلب نیز ممکن است برای شما مفید باشد: نصب و استفاده از PHP Composer در CentOS 8

 

SELinux دارای سه حالت عملکرد است:

Enforcing: اجازه دسترسی را بر اساس قوانین خط مشی SELinux می‌دهد.

Permissive: تنها فعالیت‌هایی را ثبت می‌کند که در صورت اجرا در حالت Enforcing، رد می‌شدند. این حالت به منظور اشکال زدایی و ایجاد قوانین سیاست جدید مفید است.

Disabled: هیچ خط مشی SELinux بارگیری نمی‌شود و هیچ پیامی ثبت نمی‌شود.

به طور پیش فرض، در CentOS 8، مکانیسم SELinux فعال و در حالت Enforcing است. توصیه می‌شود SELinux را در همین حالت Enforcing نگه دارید. با این حال، گاهی اوقات ممکن است در عملکرد برخی از برنامه‌ها اختلال ایجاد کند و باید آن را روی حالت permissive تنظیم نمایید یا آن را به طور کامل غیرفعال کنید.

در این آموزش، نحوه غیرفعال کردن SELinux در CentOS 8 شرح داده شده است.

قبل از اجرای مراحل، اطمینان حاصل نمایید که با کاربر root یا کاربری با امتیازات sudo وارد شده باشید؛ زیرا تنها با چنین کاربری می‌توان حالت SELinux را تغییر داد.

 

بررسی حالت SELinux

از دستور sestatus برای بررسی وضعیت و حالتی که SELinux در آن اجرا می‌شود، استفاده کنید:

sestatus
output
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31

خروجی بالا نشان می‌دهد که SELinux فعال و روی حالت Enforcing تنظیم شده است.

 

تغییر حالت SELinux به Permissive

در صورت فعال بودن، SELinux می‌تواند در حالت enforcing یا permissive باشد. با دستور زیر می‌توانید به طور موقت حالت آن را به permissive تغییر دهید:

sudo setenforce 0

با این حال، این تغییر تنها برای نشست فعلی معتبر است و با راه اندازی مجدد باقی نمی‌ماند.

 

به منظور تنظیم دائمی حالت SELinux برروی permissive، مراحل زیر را دنبال کنید:

فایل /etc/selinux/config را باز کرده و بخش SELINUX را روی Permissive تنظیم نمایید.

                 /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

فایل را ذخیره کرده و دستور setenforce 0 را به منظور تغییر حالت SELinux برای نشست فعلی اجرا نمایید.

sudo shutdown -r now

 

این مطلب نیز ممکن است برای شما مفید باشد: نصب TeamViewer در CentOS 8

 

غیرفعال کردن SELinux

به جای غیرفعال کردن SELinux، اکیداً توصیه می‌شود حالت آن را به permissive تغییر دهید. SELinux را تنها زمانی غیرفعال کنید که برای عملکرد مناسب برنامه شما لازم باشد.

به منظور غیرفعال کردن دائمی SELinux در سیستم CentOS 8 مراحل زیر را انجام دهید:

فایل /etc/selinux/config را باز کرده و مقدار SELINUX را به disabled تغییر دهید.

               /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

فایل را ذخیره کرده و سیستم را مجدداً راه‌اندازی نمایید.

sudo shutdown -r now

هنگامی‌که سیستم بالا می‌آید، از دستور sestatus به منظور بررسی غیرفعال بودن SELinux استفاده کنید.

sestatus

خروجی دستور باید مشابه زیر باشد:

output
SELinux status:                 disabled

 

 

 

منبع:

linuxize