amirhoseintangsirinet
amirhoseintangsirinet
خواندن ۳ دقیقه·۵ سال پیش

SELinux چیست

در این پست قصد داریم به بررسی ماژول امنیتی SELinux بپردازیم

SELinux چیست

حقیقتش توی یک گروه بحث بر سختی کار با SELinux شده بود که از نظرمن اونقدرام وحشتناک نیست و از لحاظ کارکرد هم می تونه از دید های آسون باشه. SELinux که به گفتار فارسی اس ائی لینوکس خوانده می شود کوتاه شده عبارت Security-Enchanted Linux می باشد. یک ماژول امنیتی بسیار مهم و پرکاربرد در لینوکس می باشد که به موجب آن ما توانایی پیاده سازی Policy های مختلف همچون Access Control Policy را پیدا خواهیم کرد

به طور ساده SELinux وظیفه پیاده سازی MAC مخفف Mandatory Access Control و DAC مخفف Discretionary Access Control می باشد را دارد. پیاده سازی MAC به مدیران شبکه امکان محدودیت سازی و ایجاد Access Control Policy بر روی کاربران به منظور‌ محدود سازی دسترسی آن ها به دیوایس ها، شبکه ها، برنامه ها و راه شروع Process های مختلف در سیستم را می دهد. برای مثال دسترسی یک کاربر به سیستم به صورت GUI، در این مکان کاربر به تمام قسمت های سیستم دسترسی دارد و برای مثال ما قصد نداریم قسمتای مهمی مثله SSH-Key های مارا کاربر ببینید با استفاده از SELinux توانایی متمایز سازی دسترسی آن به فایل های SSH-Key را پیدا می کنیم

LSM (Linux Security Module):

در کرنل لینوکس ماژولی تحت عنوان LSM (مخفف Linux Security Module) وجود دارد که با استفاده از آن میتوانید علاوه بر DAC یک لایه امنیتی بیشتر به Process ها ,Service ها و نرم افزار های فعال سیستم اضافه کند.

ویژگی SELinux در چند حالت مختلف قابل استفاده می باشد که به شرح زیر هستند:

Enforcing:

به صورت پیش فرض SELinux پس از نصب بر روی هر Operation System این حالت را به خود می گیرد. در این حالت SELinux دسترسی های درون سیستم را تعیین میسازد و دسترسی های غیرمجاز و غیرمعتبر به صورت Log ذخیره می کند.

Permissive:

این حالت که در اکثر مواقع در محیط های مختلف حساس مورد استفاده قرار نمی گیرد بیشتر جنبه تست کارکرد SELinux را دارد. دراین حالت فقد پیغام های اخطار از طرف Kernel درقالب پیغام های AVC و یا همان Access Visibility به سمت دسترسی های غیرمجاز بسنده می ‌کند/

Disable:

دراین حالت SELinux غیرفعال می باشد.

فایل پیکربندی SELinux در مسیر زیر قرار دارد

/etc/selinux/config

محتویات این فایل را با دستور cat مشاهده می کنیم

┌─[✗]─[AmirHosein@Parrot]─[~] └──╼ $cat /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 two values: # default - equivalent to the old strict and targeted policies # mls - Multi-Level Security (for military and educational use) # src - Custom policy built from source SELINUXTYPE=default # SETLOCALDEFS= Check local definition changes SETLOCALDEFS=0

ما با استفاده از دستور sestatus توانایی دیدن حالت فعلی selinux به شکل زیر هستیم:

┌─[AmirHosein@Parrot]─[~] └──╼ $sestatus SELinux status: disabled

همانظور که مشاهده می کنید بر روی حالت disabled قرار دارد

به منظور فعال سازی آن بیکربندی فایل /etc/selinux/config قسمت SELINUX= را تغییر دهید( برای تغییر می توانید از یک ادیتور مانند nano استفاده کنید )

# 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 two values: # default - equivalent to the old strict and targeted policies # mls - Multi-Level Security (for military and educational use) # src - Custom policy built from source SELINUXTYPE=default # SETLOCALDEFS= Check local definition changes SETLOCALDEFS=0

سبس سیستم خود را با دستور زیر راه اندازی مجدد کنید

reboot

دیدن وضعیت selinux بعد از راه اندازی مجدد سیستم:

┌─[AmirHosein@Parrot]─[~] └──╼ $sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 23 Policy from config file: targeted
SELinuxامنیت شبکهامنیت سایبریلینوکسامنیت
شاید از این پست‌ها خوشتان بیاید