فرض کنید یک موزه دارید که پر از آثار ارزشمند است. شما در ورودی موزه نگهبانهایی گذاشتهاید که مطمئن شوند فقط افرادی که مجاز هستند وارد مناطق خاصی شوند. حالا اگر یک فرد اجازه ورود به یک اتاق داشته باشد، اما قصد داشته باشد به یک منطقه غیرمجاز وارد شود، نگهبان فوراً جلوی او را میگیرد.
در دنیای لینوکس، SELinux همین نقش نگهبان را ایفا میکند.
چرا SELinux مهم است؟
- جلوگیری از حملات هکری: حتی اگر یک هکر موفق به نفوذ به سیستم شود، SELinux دسترسی او به منابع حساس را محدود میکند.
- ایزولهسازی فرآیندها: هر فرآیند فقط به منابعی که نیاز دارد دسترسی خواهد داشت.
- سطح کنترل پیشرفته: میتوانید قوانین بسیار دقیقی تعریف کنید که کدام کاربر یا فرآیند به کدام بخش از سیستم دسترسی داشته باشد.
چگونه SELinux کار میکند؟
SELinux از دو اصل مهم استفاده میکند:
- سیستم مبتنی بر سیاست (Policy-Based): قوانین مشخص میکنند که چه کسی یا چه چیزی به چه منابعی دسترسی دارد.
- کنترل اجباری دسترسی (Mandatory Access Control – MAC): این نوع کنترل بسیار دقیقتر از سیستمهای دسترسی سنتی لینوکس (مانند chmod) عمل میکند.
حالتهای مختلف SELinux
- Enforcing (فعال): همه قوانین امنیتی اعمال میشود و دسترسیهای غیرمجاز مسدود میشود.
- Permissive (آزمایشی): قوانین اجرا نمیشوند اما لاگ (گزارش) گرفته میشود.
- Disabled (غیرفعال): SELinux خاموش است.
SELinux چیست؟ توضیح ساده و کاربرد با مثال
SELinux یا Security-Enhanced Linux یک سیستم امنیتی است که به شما کمک میکند تا سطح دسترسی فرآیندها و کاربران را در سیستمعامل لینوکس کنترل کنید. این ابزار مانند یک نگهبان عمل میکند که مطمئن میشود هیچ فرآیند یا کاربری به اطلاعات و منابعی که اجازه دسترسی به آن را ندارد، دسترسی پیدا نکند.
توضیح ساده با مثال
فرض کنید در یک شرکت کار میکنید که بخشهای مختلفی مانند مالی، بازاریابی و فناوری دارد. هر بخش باید فقط به اطلاعات مربوط به خودش دسترسی داشته باشد.
مثلاً کارمند بخش بازاریابی نمیتواند فایلهای بخش مالی را ببیند، حتی اگر به اشتباه به آن مسیر دسترسی داشته باشد. SELinux مطمئن میشود که این نوع دسترسی غیرمجاز اتفاق نیفتد.
مثال کاربردی
فرض کنید یک وبسرور (مانند Apache) دارید که فایلهایش در مسیر /var/www/html
ذخیره شدهاند. حالا اگر هکری بخواهد از طریق آسیبپذیری وبسرور به فایلهای سیستمعامل در /etc/passwd
دسترسی پیدا کند، SELinux جلوی این دسترسی غیرمجاز را میگیرد.
نحوه استفاده از SELinux
1. بررسی وضعیت SELinux:
sestatus
2. تغییر وضعیت SELinux:
برای فعال کردن یا تغییر وضعیت، فایل تنظیمات زیر را ویرایش کنید:
sudo nano /etc/selinux/config
و مقدار SELINUX
را تغییر دهید:
enforcing
برای فعالسازی.permissive
برای حالت آزمایشی.disabled
برای غیرفعال کردن.
مزایا و معایب SELinux
مزایا:
- افزایش امنیت سیستم.
- جلوگیری از اجرای دستورات مخرب توسط هکرها.
- مناسب برای سرورهای حساس و مهم.
معایب:
- ممکن است برای کاربران مبتدی پیچیده باشد.
- نیاز به تنظیمات دقیق دارد، وگرنه ممکن است عملکرد برخی برنامهها را مختل کند.
نکته : SELinux بروی توزیع ردهت فعال است اما بروی debian ممکن است فعال نشود ، AppArmor بجای آن در توزیع های دبیان استفاده میشود .
جمعبندی
SELinux ابزاری قدرتمند برای افزایش امنیت لینوکس است که با کنترل دقیق دسترسی، از نفوذها و حملات جلوگیری میکند. اگرچه تنظیم آن ممکن است زمانبر باشد، اما برای محیطهای حساس و سرورهای حیاتی، یک لایه امنیتی حیاتی محسوب میشود.