لینوکس همواره به عنوان یکی از امن ترین سیستم های عامل موجود شناخته شده است. و این امر به دلیل وجود ویژگی های برجسته ای است که در این سیستم عامل تعبیه شده است. SELinux یکی از همین ویژگی هاست که نقش پر رنگی برای برقراری امنیت سرور شما ایفا میکند. SELinux مخفف عبارت Security Enhanced Linux می باشد.
این سرویس در سال ۲۰۰۰ توسط آژانس امنیت ملی آمریکا تحت لیسانس GPL توسعه یافت و هدف آن بهبود امنیت لینوکس بود. این سرویس در واقع یک سیستم نظارتی از نوع Mandatory Access Control می باشد که وضعیت ارسال و دریافت اطلاعات از کرنل لینوکس را کنترل میکند و در صورت بروز مشکل و یا اقدام مشکوک دسترسی به کرنل را محدود می سازد.
ما در این آموزش قصد داریم نحوه غیرفعال سازی SELinux را به صورت موقت و دائمی روی سرورهای ردهت یا CentOS مورد بررسی قرار دهیم.
مقدمه
بد نیست بدانید که SELinux به طور کلی دارای سه وضعیت به شرح زیر است:
- disabled: این وضعیت به طور کامل سرویس را غیرفعال میکند.
- enforcing: این وضعیت سرویس را به طور کامل فعال میکند.
- permissive: این وضعیت به پکیج های مجاز اجازه دسترسی میدهد.
خوب است بدانید که در لینوکس در اکثر مواقع بعد از اعمال تغییرات نیازی به ریبوت کردن سرور نیست. اما در SELinux بعد از تغییر هر یک از وضعیت های گفته شده باید سرور را ریبوت نمائید.
شما میتوانید وضعیت SELinux روی سرور خود را با دستور زیر بررسی نمائید:
1 |
[root@arshatech ~]# sestatus |
1 2 3 4 5 6 7 8 9 |
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: disabled Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 31 |
غیر فعال کردن موقت SELinux
برای غیر فعال کردن آن به صورت موقت دو راه وجود دارد که میتوانید از آن ها استفاده کنید.
راه اول ذخیره کردن مقدار ۰ در مسیر مربوطه:
1 |
[root@arshatech ~]# echo 0 > /selinux/enforce |
و راه دوم استفاده از دستور setenforce است:
1 |
[root@arshatech ~]# setenforce 0 |
بعد از وارد کردن یکی از دستورات بالا SELinux در سرور شما تا بوت بعدی غیر فعال خواهد ماند و به محض ری استارت کردن سرور فعال خواهد شد.
غیر فعال کردن دائم SELinux
برای غیر فعال کردن آن به طور دائم ابتدا به فایل مربوط به تنظیمات آن بروید:
1 |
[root@arshatech ~]# vim /etc/sysconfig/selinux |
و مقدار آن را از حالت enforcing به disabled تغییر دهید:
1 2 3 4 5 6 7 8 9 10 11 |
# 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 three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted |
سپس سرور خود را ریبوت کنید:
1 |
[root@arshatech ~]# reboot |
بعد از اینکه سرور شما بوت شد لاگین کرده و دستور زیر را برای بررسی وضعیت اجرا کنید:
1 |
[root@arshatech ~]# sestatus |
1 |
SELinux status: disabled |