پرش به محتوا
نوین هاست
  • سرور مجازی
  • درباره ما
  • تماس با ما
  • بازارچه
  • دانشنامه
نوین هاست
  • سرور مجازی
    • برگشت
    • سرور مجازی ایران
      • برگشت
      • سرور مجازی برج میلاد
      • سرور مجازی زیرساخت
    • سرور مجازی اروپا
      • برگشت
      • سرور مجازی المان
      • سرور مجازی انگلیس
      • سرور مجازی فرانسه
      • سرور مجازی اتریش
      • سرور مجازی هلند
      • سرور مجازی بلغارستان
      • سرور مجازی مجارستان
      • سرور مجازی دانمارک
      • سرور مجازی سوئد
      • سرور مجازی جزیره من
      • سرور مجازی جمهوری چک
      • سرور مجازی ایتالیا
      • سرور مجازی فنلاند
      • سرور مجازی یونان
      • سرور مجازی سوئیس
      • سرور مجازی ایسلند
      • سرور مجازی کرواسی
      • سرور مجازی اسپانیا
    • سرور مجازی آسیا
      • برگشت
      • سرور مجازی ترکیه
      • سرور مجازی سنگاپور
      • سرور مجازی مالزی
      • سرور مجازی شیلی
      • سرور مجازی هنگ کنگ
      • سرور مجازی امارات
      • سرور مجازی ژاپن
      • سرور مجازی روسیه
    • سرور مجازی آمریکا
      • برگشت
      • سرور مجازی امریکا
      • سرور مجازی کانادا
    • سایر VPS ها
      • برگشت
      • سرور مجازی استرالیا
      • سرور مجازی رایگان
      • سرور مجازی اقتصادی
      • سرور مجازی ترید و بایننس
      • سرور مجازی با کارت گرافیک
      • سرور مجازی نیجریه
      • سرور مجازی بورس
      • سرور مجازی کلاس آنلاین
      • سرور مجازی کاهش پینگ
      • سرور مجازی والتر
      • سرور مجازی فارکس
      • سرور مجازی میکروتیک
      • سرور مجازی NVME
  • سرور اختصاصی
    • برگشت
    • سرور اختصاصی ایران
      • برگشت
      • سرور اختصاصی برج میلاد
      • سرور اختصاصی زیرساخت
    • سرور اختصاصی اروپا
      • برگشت
      • سرور اختصاصی آلمان
      • سرور اختصاصی ترکیه
      • سرور اختصاصی فنلاند
      • سرور اختصاصی هلند
      • سرور اختصاصی انگلیس
      • سرور اختصاصی فرانسه
    • سرور اختصاصی آمریکا
      • برگشت
      • سرور اختصاصی آمریکا
      • سرور اختصاصی کانادا
    • کولوکیشن
      • برگشت
      • آسیاتک
      • زیرساخت
  • هاست
    • برگشت
    • هاست دانلود
    • هاست نامحدود
    • هاست وردپرس
    • هاست ویندوز ایران
  • نوین پلاس +
  • پنل کاربری ارتباط با ما
  • سرور مجازی
  • سرور مجازی ایرانسرور مجازی حرفه ای از ایران
  • سرور مجازی اروپاپایداری و کیفیت ، سرعت بالا
  • سرور مجازی آسیاوب سرور لایت اسپید و امنیت و سرعت بالا
  • سایر VPS هابهینه برای فروشگاه های وردپرسی
  • سرور مجازی زیرساخت
    • سرور مجازی برج میلاد
  • سرور مجازی المان
    • سرور مجازی فرانسه
    • سرور مجازی سوئد
    • سرور مجازی اتریش
    • سرور مجازی اسپانیا
    • سرور مجازی انگلیس
    • سرور مجازی ایتالیا
    • سرور مجازی ایسلند
    • سرور مجازی بلغارستان
    • سرور مجازی سوئیس
    • سرور مجازی جزیره من
    • سرور مجازی جمهوری چک
    • سرور مجازی فنلاند
    • سرور مجازی دانمارک
    • سرور مجازی مجارستان
    • سرور مجازی هلند
    • سرور مجازی یونان
  • سرور مجازی شیلی
    • سرور مجازی روسیه
    • سرور مجازی ترکیه
    • سرور مجازی مالزی
    • سرور مجازی ژاپن
    • سرور مجازی سنگاپور
    • سرور مجازی هنگ کنگ
    • سرور مجازی امارات
  • سرور مجازی کانادا
    • سرور مجازی امریکا
    • سرور مجازی نیجریه
    • سرور مجازی استرالیا
    • سرور مجازی NVME
    • سرور مجازی با کارت گرافیک
    • سرور مجازی رایگان
    • سرور مجازی ترید و بایننس
    • سرور مجازی فارکس
    • سرور مجازی کلاس آنلاین
    • سرور مجازی میکروتیک
    • سرور مجازی والتر
    • سرور مجازی NVME
    • سرور مجازی اقتصادی
  • سرور اختصاصی
  • سرور اختصاصی ایرانمنابع کاملا اختصاصی و قدرتمند
  • سرور اختصاصی اروپابا ip اختصاصی از بهترین کشور ها
  • سرور اختصاصی آمریکاup time 99.99%
  • سایر VDS ها
  • برج میلاد
    • زیرساخت
  • سرور اختصاصی آلمان
    • سرور اختصاصی انگلیس
    • سرور اختصاصی ترکیه
    • سرور اختصاصی فرانسه
    • سرور اختصاصی فنلاند
    • سرور اختصاصی هلند
  • سرور اختصاصی آمریکا
    • سرور اختصاصی کانادا
  • کولوکیشن
  • آسیاتک
  • زیرساخت
  • هاست
  • دامنه
  • نوین پلاس +
021-49624 ورود / عضویت
لینوکس

راهنمای لینوکس

70
  • اجرای دستورات لینوکس در ویندوز
  • راه اندازی سایت در سرور لینوکس
  • IP شناور در اوبونتو و دبیان
  • بازیابی رمز root
  • آموزش بکاپ از سرور لینوکس
  • آموزش اجرای دستور از راه دور
  • ایجاد یوزر در لینوکس
  • تفاوت ipv4 با ipv6 چیست
  • دستور tar لینوکس
  • کانفیگ IPv6 در لینوکس
  • بکاپ گیری از سرور لینوکس
  • راه اندازی سایت در سرور
  • نصب فایروال در لینوکس
  • لیست کردن کاربران در لینوکس
  • پارتیشن بندی در لینوکس
  • بش bash چیست؟
  • آموزش تغییر نام فایل در لینوکس
  • آموزش نصب آلمالینوکس
  • آلمالینوکس
    • تبدیل Centos به AlmaLinux
    • نصب Visual Studio Code در آلمالینوکس
    • نصب پایتون روی آلمالینوکس
    • نصب Node.js در AlmaLinux
  • دبیان
    • ارتقا دبیان
  • اوبونتو
    • نصب NextCloud در اوبونتو
    • فعال کردن SSH اوبونتو
    • نصب ماینکرافت روی اوبونتو
    • نصب کاساندرا Cassandra در اوبونتو
    • آموزش نصب اوبونتو
    • نصب Graylog در اوبونتو
    • نصب Redis در اوبونتو
    • نصب Maven در اوبونتو
    • نصب تامکت در اوبونتو
    • آموزش نصب Ghost CMS در ubuntu
    • نصب GitLab در اوبونتو
    • نصب GCC در اوبونتو
    • نصب جاوا در اوبونتو
    • نصب و راه اندازی Bind DNS Server اوبونتو
    • نصب جنکینز در اوبونتو
    • نصب وردپرس در اوبونتو
    • نصب Oh My Zsh در اوبونتو
    • نصب پرومتئوس در اوبونتو
    • نصب Kubectl در اوبونتو
    • نصب PyTorch در اوبونتو
    • حذف داکر در اوبونتو
    • نصب آناکوندا
    • آموزش نصب Wine
    • آموزش نصب آپاچی کافکا
    • نصب Xrdp در اوبونتو
    • نصب وایرشارک در اوبونتو
    • آموزش نصب Go در اوبونتو
    • آموزش نصب MariaDB در اوبونتو
    • آموزش نصب Ansible
    • نصب درایور انویدیا در اوبونتو
    • آموزش نصب Hadoop
    • آموزش نصب Terraform
    • نصب و کانفیگ SSH در Ubuntu
    • نصب KVM در Ubuntu
    • نصب گوگل کروم در ubuntu
    • آموزش نصب گرافانا
    • چک کردن نسخه ubuntu
    • آموزش نصب phpMyAdmin در اوبونتو
    • آموزش نصب Postman
    • نصب داکر در اوبونتو
    • نصب Redis در اوبونتو
    • نصب MySQL در اوبونتو
    • نصب و کانفیگ آپاچی در اوبونتو
    • کران جاب در اوبونتو
    • ارتقا اوبونتو
    • نصب MongoDB در اوبونتو
    • نصب محیط گرافیکی در اوبونتو

تحقیق و توسعه

8
  • آموزش Portainer داکر
  • پاک کردن کش DNS
  • افزایش امنیت سرور
  • آموزش لود بالانسینگ
  • پیکربندی SSL در PostgreSQL
  • پایتون
    • ترکیب دو لیست در پایتون
    • تبدیل رشته به عدد در پایتون
    • معکوس کردن لیست در پایتون

سوالات متداول

4
  • رید (RAID) چیست؟
  • عمومی
    • ترافیک مورد نیاز سایت
    • SELinux چیست؟
    • محافظت در برابر حملات DDoS
View Categories
  • خانه
  • مستدات
  • سوالات متداول
  • عمومی
  • SELinux چیست؟

SELinux چیست؟

زمان مطالعه: 5 دقیقه

SELinux چیست؟ چگونه امنیت لینوکس را افزایش می‌دهد؟ #

لینوکس با امنیت بهبود یافته (SELinux) یک ماژول امنیتی است که یک لایه حفاظتی اضافی به سیستم شما اضافه می‌کند. این ماژول کنترل دسترسی دقیقی را بین فرآیندها و منابع سیستم اعمال می‌کند و فقط به اقدامات صریحاً مجاز اجازه می‌دهد.

SELinux با جلوگیری از دسترسی غیرمجاز و محدود کردن تأثیر سرویس‌های آسیب‌پذیر، به حفظ امنیت قوی و قابل اعتماد سرورهای لینوکس کمک می‌کند.

این امر آن را به ویژه برای راه‌اندازی VPS در سطح تولید یا استقرار در مقیاس سازمانی که در آن اجرای دقیق سیاست‌ها بسیار مهم است، مفید می‌کند.

سرور مجازی رسپینا

در این راهنما، شما یاد خواهید گرفت که SELinux چیست، چگونه کار می‌کند، چگونه آن را پیکربندی کنید و چگونه از آن برای ایمن‌سازی مؤثر سیستم خود استفاده کنید.

SELinux چیست؟ #

SELinux یک ماژول امنیتی است که در هسته لینوکس ادغام شده است و سیاست‌های کنترل دسترسی را برای مدیریت نحوه تعامل فرآیندها با منابع سیستم اعمال می‌کند.

آژانس امنیت ملی ایالات متحده (NSA) SELinux را توسعه داد و در سال ۲۰۰۰ آن را در جامعه متن‌باز منتشر کرد.

معماری آن بر اساس چارچوب ماژول‌های امنیتی لینوکس (LSM) است که قلاب‌هایی را به هسته اضافه می‌کند تا تصمیمات امنیتی را اجرا کند.

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

SELinux معمولاً در Red Hat Enterprise Linux (RHEL)، CentOS، Fedora و سایر توزیع‌های مبتنی بر RHEL استفاده می‌شود.

به این دلیل است که این سیستم‌ها پشتیبانی کاملی از SELinux ارائه می‌دهند و در مقایسه با دبیان و مشتقات آن که پشتیبانی از SELinux را به طور پیش‌فرض محدود یا غیرفعال می‌کنند، پیکربندی و مدیریت آن را آسان‌تر می‌کنند.

SELinux چگونه کار می‌کند؟ #

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

وقتی یک فرآیند سعی می‌کند به منبعی دسترسی پیدا کند، موتور سیاست SELinux زمینه‌های امنیتی سوژه و شیء را با قوانین سیاست تعریف‌شده بررسی می‌کند.

اگر سیاست اجازه‌ی انجام عمل را بدهد، SELinux دسترسی را اعطا می‌کند. در غیر این صورت، عمل را مسدود می‌کند و – بسته به حالت – رویداد را برای بررسی در گزارش حسابرسی ثبت می‌کند.

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

کنترل دسترسی اجباری (MAC) در SELinux چیست؟ #

کنترل دسترسی اجباری (MAC) یک چارچوب امنیتی است که سیاست‌های سختگیرانه‌ای را در مورد نحوه تعامل موضوعاتی مانند برنامه‌های کاربر یا سرویس‌های سیستم با اشیاء مانند فایل‌ها، دایرکتوری‌ها و پورت‌های شبکه در یک سیستم لینوکس اعمال می‌کند.

برخلاف کنترل دسترسی اختیاری (DAC)، که در آن کاربران می‌توانند مجوزهایی را برای فایل‌های متعلق به خود تعیین کنند، سیاست‌های MAC به صورت مرکزی تعریف و توسط سیستم اجرا می‌شوند – به این معنی که حتی کاربران دارای امتیاز بالا نیز نمی‌توانند آنها را لغو کنند.

برای مثال، تحت DAC، یک مدیر سیستم ممکن است به‌طور تصادفی به یک فرآیند وب سرور دسترسی خواندن و نوشتن به یک فایل پیکربندی حساس را اعطا کند.

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

به عبارت دیگر، اگر قوانین DAC و MAC با هم در تضاد باشند، SELinux محدودکننده‌ترین قانون را اعمال می‌کند. این کنترل سختگیرانه یکی از دلایل کلیدی است که چرا SELinux چنین لایه دفاعی قدرتمندی را در محیط‌های لینوکس فراهم می‌کند.

سیاست‌های SELinux چیستند؟ #

سیاست‌های SELinux مجموعه‌ای از قوانین دسترسی هستند که مجوزهای اعطا شده به سوژه‌ها بر روی اشیا را تعریف می‌کنند. این سیاست‌ها هسته پیاده‌سازی SELinux از MAC را تشکیل می‌دهند.

برای مثال، یک سیاست ممکن است به فرآیندی با برچسب httpd_t اجازه دهد فایل‌هایی با برچسب httpd_sys_content_t را بخواند اما دسترسی به فایل‌هایی که با برچسب user_home_t مشخص شده‌اند را سلب کند .

مدیران سیستم معمولاً این سیاست‌ها را با یک زبان سیاست‌گذاری خاص می‌نویسند و سپس آنها را به فرمت دودویی کامپایل می‌کنند که ماژول هسته SELinux می‌تواند آن را بارگذاری و اجرا کند.

آنها از ابزارهایی مانند semanage برای مدیریت اجزای سیاست استفاده می‌کنند و audit2allow ماژول‌های سیاست سفارشی را بر اساس گزارش‌های حسابرسی تولید می‌کند.

این ابزارها به تنظیم سیاست‌های SELinux برای برآورده کردن الزامات امنیتی خاص محیط‌های مختلف کمک می‌کنند و انعطاف‌پذیری و محافظت قوی از سیستم را تضمین می‌کنند.

حالت‌های مختلف SELinux چیستند؟ #

سه حالت مختلف SELinux وجود دارد: enforcing ، permissive و disabled . هر حالت نحوه اعمال سیاست‌های امنیتی در سیستم‌های لینوکس را تعیین می‌کند.

حالت اجباری

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

برای مثال، اگر یک فرآیند وب سرور سعی کند به یک فایل پیکربندی دسترسی پیدا کند که نباید این کار را انجام دهد، SELinux در حالت اجرایی، دسترسی را رد کرده و رویداد را ثبت می‌کند – که به جلوگیری از نقض‌های امنیتی احتمالی کمک می‌کند.

حالت مجاز

حالت Permissive به همه اقدامات، حتی آن‌هایی که سیاست‌های SELinux را نقض می‌کنند، اجازه می‌دهد، اما هر عملی را که در حالت Enforcing رد می‌شد، ثبت می‌کند. این حالت برای عیب‌یابی و توسعه سیاست مفید است، زیرا بدون دخالت، قابلیت مشاهده را فراهم می‌کند.

برای مثال، هنگام پیکربندی یک برنامه جدید، یک مدیر سیستم، SELinux را به حالت مجاز تغییر می‌دهد تا تخلفات مربوط به خط‌مشی‌ها را شناسایی و تنظیم کند تا راه‌اندازی نهایی بدون ایجاد مشکلات اجرایی، به راحتی انجام شود.

حالت غیرفعال

حالت غیرفعال به این معنی است که SELinux به طور کامل غیرفعال می‌شود – هیچ سیاستی اعمال یا ثبت نمی‌شود. این حالت عموماً توصیه نمی‌شود زیرا لایه محافظتی اضافه شده SELinux را از بین می‌برد.

فعال‌سازی مجدد SELinux پس از غیرفعال شدن، نیازمند تغییر برچسب سیستم فایل برای اعمال صحیح سیاست‌ها است.

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

چگونه SELinux را پیکربندی کنیم؟ #

برای پیکربندی SELinux، با باز کردن یک برنامه ترمینال شروع کنید – برای اجرای دستورات لینوکس و اعمال تغییرات پیکربندی به آن نیاز دارید . در یک رایانه شخصی، کافیست آن را روشن کرده و برنامه را اجرا کنید.

اگر از یک سرور مجازی خصوصی (VPS) استفاده می‌کنید، برای اتصال به سرور خود به دسترسی SSH نیاز دارید. برای کاربران، با رفتن به ناحیه کاربری سپس به سرویس ها ، سرور لینوکس SSH خود را پیدا کنید .

SELinux چیست؟

کاربران نوین هاست همچنین می‌توانند از ویژگی ترمینال مرورگر استفاده کنند که به آنها امکان می‌دهد دستورات را مستقیماً از یک برگه مرورگر اجرا کنند. این امر به ویژه در صورتی مفید است که برنامه ترمینال نصب نکرده باشید یا ترجیح می‌دهید از آن استفاده نکنید.

برای دسترسی به آن، دکمه‌ی تعیین‌شده در گوشه‌ی بالا سمت راست صفحه‌ی داشبورد VPS خود را لمس کنید .

SELinux چیست؟

پس از تنظیم همه چیز، آماده‌اید تا حالت‌های SELinux را تغییر دهید و ماژول‌های سیاست سفارشی را به سیستم خود اضافه کنید.

چگونه حالت‌های SELinux را تنظیم کنیم؟ #

بیایید بررسی کنیم که چگونه حالت SELinux فعلی سیستم خود را بررسی کنید، آن را به طور موقت برای جلسه فعلی تغییر دهید یا آن را به طور دائم تنظیم کنید.

حالت فعلی SELinux را بررسی کنید

قبل از ایجاد هرگونه تغییر، حالت فعلی SELinux را بررسی کنید:

getenforce

این دستور حالت فعلی را برمی‌گرداند:

SELinux چیست؟

تغییر موقت حالت SELinux

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

  • روی حالت مجاز تنظیم کنید:
sudo setenforce ۰
  • روی حالت اعمال فشار تنظیم کنید:
sudo setenforce

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

تغییر دائمی حالت SELinux

اگر می‌خواهید تغییر را دائمی کنید، مراحل زیر را دنبال کنید:

  1. فایل پیکربندی SELinux را با استفاده از یک ویرایشگر متن مانند vi باز کنید :
sudo vi /etc/selinux/config
  1. برای ورود به حالت درج، کلید I را فشار دهید . سپس، دستورالعمل SELINUX را با جایگزین کردن مقدار موجود با حالت دلخواه خود تغییر دهید:
# 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=enforcing
SELinux چیست؟
  1. تغییرات خود را ذخیره کنید و با فشردن Esc ، تایپ کردن :wq و زدن Enter از vi خارج شوید .
  2. برای اعمال حالت جدید، سیستم را مجدداً راه‌اندازی کنید:
sudo reboot

پس از راه‌اندازی مجدد، حالت جدید SELinux را با استفاده از همان دستور getenforce تأیید کنید.

💡تغییر برچسب سیستم فایل #

اگر SELinux قبلاً غیرفعال بوده و دوباره آن را فعال می‌کنید، باید سیستم فایل را برای اختصاص زمینه‌های امنیتی مناسب، مجدداً برچسب‌گذاری کنید. برای راه‌اندازی مجدد کامل در راه‌اندازی مجدد بعدی، دستور زیر را اجرا کنید:
sudo touch /.autorelabel
sudo reboot

چگونه سیاست‌های SELinux را مدیریت کنیم؟ #

شما می‌توانید با ایجاد، ویرایش و بارگذاری ماژول‌های سیاست، سیاست‌های SELinux را مدیریت کنید تا کنترل‌های دسترسی را برای برنامه‌ها و سرویس‌ها سفارشی‌سازی کنید.

سیاست‌های SELinux ماژولار هستند، به این معنی که می‌توانید قوانین را از طریق ماژول‌های سیاست جداگانه و بدون تغییر کل مجموعه سیاست‌ها، اضافه یا اصلاح کنید.

سرور اختصاصی ایران

ایجاد یک ماژول سیاست سفارشی

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

  1. گزارش حسابرسی را برای عملیات رد شده بررسی کنید:
sudo ausearch -m avc -ts recent

این تمام پیام‌های رد دسترسی به حافظه نهان (AVC) را از گزارش حسابرسی از آخرین بوت نمایش می‌دهد.

SELinux چیست؟
  1. از audit2allow برای ایجاد یک ماژول بر اساس تمام رد صلاحیت‌های اخیر AVC استفاده کنید . my_custom_policy را با نام دلخواه خود جایگزین کنید:
sudo audit2allow -a -M my_custom_policy

این دستور دو فایل ایجاد می‌کند:

  • my_custom_policy.te – سیاست منبع.
  • my_custom_policy.pp – ماژول کامپایل شده.
SELinux چیست؟
  1. ماژول کامپایل شده را در SELinux بارگذاری کنید:
sudo semodule -i my_custom_policy.pp

پس از نصب، قوانین جدید بلافاصله اعمال می‌شوند و امکان انجام اقدامات قبلاً رد شده را فراهم می‌کنند.

ماژول‌های سیاست را ویرایش و مدیریت کنید

برای سفارشی‌سازی یا اصلاح بیشتر سیاست‌ها، فایل سیاست منبع را ویرایش کنید:

  1. فایل my_custom_policy.te را در vi باز کنید و قوانین را تغییر دهید:
sudo vi my_custom_policy.te

وقتی کارتان تمام شد، تغییرات خود را ذخیره کنید.

  1. تبدیل منبع ویرایش شده به یک ماژول:
checkmodule -M -m -o my_custom_policy.mod my_custom_policy.te
  1. یک فایل .pp از ماژول کامپایل شده ایجاد کنید:
semodule_package -o my_custom_policy.pp -m my_custom_policy.mod
  1. ماژول به‌روزرسانی‌شده را نصب کنید:
sudo semodule -i my_custom_policy.pp

مدیریت ماژول‌های سیاست موجود

برای مشاهده یا حذف ماژول‌های سیاست SELinux از دستور semodule استفاده کنید .

  • لیست تمام ماژول‌های نصب شده:
semodule -l
SELinux چیست؟
SELinux چیست؟

 

  • حذف یک ماژول سیاست خاص:
sudo semodule -r my_custom_policy

چه ابزارهایی برای عیب‌یابی SELinux در دسترس است؟ #

ابزارهای متعددی برای تشخیص و حل مشکلات انکار SELinux در دسترس هستند. دو مورد از رایج‌ترین آنها sealert و audit2allow هستند .

sealert: تجزیه و تحلیل انکارهای SELinux

ابزار sealert ، بخشی از بسته‌ی setroubleshoot ، خلاصه‌هایی از پیام‌های انکار SELinux را که برای انسان قابل خواندن باشند، ارائه می‌دهد. این ابزار گزارش‌های موجود در /var/log/audit/audit.log را تفسیر می‌کند و پیشنهادهایی برای حل مشکلات ارائه می‌دهد.

ابتدا، اگر setroubleshoot از قبل نصب نشده است، آن را نصب کنید:

نصب dnf با sudo و setroubleshoot

سپس، انکارهای اخیر SELinux را تجزیه و تحلیل کنید:

sudo sealer -a /var/log/audit/audit.log
SELinux چیست؟

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

audit2allow: ماژول‌های سیاست سفارشی ایجاد می‌کند

وقتی SELinux عملیات مشروع را رد می‌کند – و تنظیم مقادیر بولی یا تغییر برچسب فایل‌ها کافی نیست – audit2allow می‌تواند کمک کند. این ابزار پیام‌های رد مجوز را از گزارش حسابرسی می‌خواند و ماژول‌های سیاست سفارشی ایجاد می‌کند که امکان اقدامات خاص را فراهم می‌کنند.

هشدار! از audit2allow با دقت استفاده کنید . اجازه دادن خودکار به همه اقدامات رد شده می‌تواند باعث آسیب‌پذیری‌های امنیتی شود. همیشه قبل از نصب، فایل سیاست تولید شده را بررسی کنید.

شما می‌توانید با جمع‌آوری پیام‌های رد درخواست AVC با ausearch ، یک ماژول ایجاد کنید و سپس آنها را به audit2allow ارسال کنید تا یک ماژول سیاست سفارشی ایجاد شود، همانطور که در بخش قبل نشان داده شد.

روش دیگر، ترکیب آن با دستور grep برای ایجاد یک سیاست به صورت یکجا است:

sudo grep “avc: denied” /var/log/audit/audit.log | audit2allow -M my_custom_policy

این دستور پیام‌های رد درخواست را با استفاده از grep فیلتر می‌کند ، سپس آنها را به audit2allow که ماژول policy را تولید می‌کند، ارسال می‌کند. سپس می‌توانید ماژول تولید شده را طبق معمول نصب کنید.

نکات عیب‌یابی اضافی

  • بررسی زمینه‌های فایل – برچسب‌گذاری نادرست فایل یکی از دلایل رایج رد درخواست‌ها است. برای تنظیم مجدد زمینه‌های فایل از restorecon استفاده کنید:
sudo restorecon -Rv /path/to/directory
  • فعال کردن مقادیر بولی لازم – برخی از سرویس‌ها برای عملکرد صحیح به مقادیر بولی خاص SELinux نیاز دارند. به عنوان مثال، برای اینکه به آپاچی اجازه دسترسی به دایرکتوری‌های خانگی کاربران داده شود:
sudo setsebool -P httpd_enable_homedirs on
  • بررسی دستی لاگ‌های حسابرسی – برای بررسی مستقیم لاگ‌های دقیق:
sudo کمتر /var/log/audit/audit.log

تفاوت‌های بین SELinux و AppArmor #

تفاوت اصلی بین این ماژول‌ها این است که SELinux از یک کنترل دسترسی مبتنی بر برچسب استفاده می‌کند که زمینه‌های امنیتی را به هر فرآیند و فایل اختصاص می‌دهد، در حالی که AppArmor به یک مدل مبتنی بر مسیر متکی است که سیاست‌هایی را برای مسیرهای فایل خاص اعمال می‌کند.

در اینجا یک جدول مقایسه‌ای برای کمک به شما در درک چگونگی عملکرد این ماژول‌های امنیتی لینوکس آورده شده است:

ویژگی SELinux AppArmor
مدل کنترل دسترسی مبتنی بر برچسب (از زمینه‌های امنیتی استفاده می‌کند) مبتنی بر مسیر (از مسیرهای فایل استفاده می‌کند)
اجرای سیاست به طور پیش‌فرض رد می‌شود؛ به مجوزهای صریح نیاز دارد به طور پیش‌فرض مجاز است؛ استفاده از قوانین نمایه را محدود می‌کند
دانه‌بندی بالا؛ از امنیت چند سطحی (MLS) و امنیت چند دسته‌ای (MCS) پشتیبانی می‌کند متوسط؛ از MLS/MCS پشتیبانی نمی‌کند
سهولت استفاده پیچیده؛ منحنی یادگیری تندتر پیکربندی و مدیریت آسان‌تر
توزیع‌های پیش‌فرض RHEL، CentOS، فدورا اوبونتو، دبیان، سوزه
ابزارسازی مجموعه ابزارهای غنی، مانند audit2allow ، semanage و sestatus مجموعه ابزارهای ساده‌تر؛ پروفایل‌ها از طریق فایل‌های مسطح مدیریت می‌شوند

چه زمانی SELinux را در مقابل AppArmor انتخاب کنیم؟

  • برای امنیت دقیق و در سطح سازمانی با کنترل دقیق سیاست‌ها، SELinux را انتخاب کنید – به خصوص در محیط‌هایی که نیاز به انطباق، جداسازی دقیق یا MLS/MCS دارند، مانند سیستم‌های دولتی، نظامی یا سازمانی بزرگ که RHEL یا CentOS را اجرا می‌کنند.
  • اگر می‌خواهید تنظیمات ساده‌تر و سریع‌تری با مدیریت آسان‌تر پروفایل داشته باشید، AppArmor را انتخاب کنید . این گزینه برای محیط‌های توسعه، استقرارهای مبتنی بر ابر یا سیستم‌های Ubuntu/Debian که در آن‌ها قابلیت استفاده و انعطاف‌پذیری بیش از اجرای دقیق سیاست‌ها اهمیت دارد، ایده‌آل است.

مزایای استفاده از SELinux چیست؟ #

مزایای استفاده از SELinux در زیر فهرست شده است:

  • امنیت قوی‌تر سیستم – با پیاده‌سازی MAC، SELinux تضمین می‌کند که فرآیندها و کاربران فقط می‌توانند به منابعی که صریحاً توسط سیاست مجاز هستند، دسترسی داشته باشند.
  • کنترل دسترسی جزئی – SELinux با سیستم مبتنی بر برچسب خود، به مدیران سیستم اجازه می‌دهد مجوزهای دسترسی جزئی را برای فایل‌ها، فرآیندها و سایر منابع سیستم تعریف کنند.
  • بهبود انطباق‌پذیری – SELinux با اعمال کنترل‌های دسترسی سختگیرانه و نگهداری گزارش‌های حسابرسی دقیق، به برآورده کردن الزامات انطباق‌پذیری نظارتی، مانند PCI-DSS و HIPAA، کمک می‌کند.
  • مهار سرویس‌های در معرض خطر – حتی اگر یک سرویس در معرض خطر قرار گیرد، SELinux با محدود کردن دسترسی سرویس فقط به آنچه واقعاً نیاز دارد، آسیب‌های احتمالی را محدود می‌کند.
  • حسابرسی و ثبت وقایع دقیق – SELinux ثبت وقایع جامعی از تلاش‌های دسترسی و نقض سیاست‌ها ارائه می‌دهد و نظارت، عیب‌یابی و انجام تحلیل‌های قانونی را آسان‌تر می‌کند.
  • مدیریت انعطاف‌پذیر سیاست‌ها – مدیران می‌توانند سیاست‌های SELinux را برای برآورده کردن نیازهای خاص سازمانی سفارشی‌سازی کنند و از طیف گسترده‌ای از الزامات عملیاتی پشتیبانی کنند.

نتیجه‌ گیری #

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

اگرچه پیکربندی کمی پیچیده است، اما مزایای امنیتی آن به مراتب بیشتر از منحنی یادگیری است – به خصوص در محیط‌های سازمانی و VPS.

برای تقویت بیشتر امنیت سیستم خود، مقادیر بولی فعال SELinux را با استفاده از getsebool -a بررسی کنید و فقط مواردی را که مربوط به تنظیمات شما هستند فعال کنید.

همچنین می‌توانید SELinux را با ابزارهایی مانند firewalld برای محافظت در سطح شبکه جفت کنید یا fail2ban را برای جلوگیری از حملات brute-force SSH پیکربندی کنید.

Updated on آبان ۲۴, ۱۴۰۴

نظر شما چیست؟!

  • Happy
  • Normal
  • Sad

Related Docs

  • محافظت در برابر حملات DDoS

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
ترافیک مورد نیاز سایتمحافظت در برابر حملات DDoS

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطلب
  • SELinux چیست؟ چگونه امنیت لینوکس را افزایش می‌دهد؟
    • SELinux چیست؟
      • SELinux چگونه کار می‌کند؟
      • کنترل دسترسی اجباری (MAC) در SELinux چیست؟
      • سیاست‌های SELinux چیستند؟
      • حالت‌های مختلف SELinux چیستند؟
    • چگونه SELinux را پیکربندی کنیم؟
      • چگونه حالت‌های SELinux را تنظیم کنیم؟
        • 💡تغییر برچسب سیستم فایل
      • چگونه سیاست‌های SELinux را مدیریت کنیم؟
      • چه ابزارهایی برای عیب‌یابی SELinux در دسترس است؟
    • تفاوت‌های بین SELinux و AppArmor
    • مزایای استفاده از SELinux چیست؟
    • نتیجه‌ گیری
نوین هاست

نوین هاست ارائه دهنده خدمات میزبانی، فروش انواع سرورهای مجازی و اختصاصی ایران و خارج برترین لوکیشن ها و استفاده از بهترین سخت افزارها با پشتیبانی 7/24

نماد اعتماد نوین هاست
لوگو ساماندهی
نظام صنفی رایانه ای کشور
دانش بنیان

دسترسی سریع

  • سرور مجازی
  • سرور مجازی ایران
  • سرور اختصاصی
  • هاست اشتراکی
  • ثبت دامنه
  • درباره ما
  • قوانین سرویس دهی

سرورهای مجازی

  • سرور مجازی المان
  • سرور مجازی فرانسه
  • سرور مجازی انگلیس
  • سرور مجازی امریکا
  • سرور مجازی کانادا
  • سرور مجازی فنلاند
  • سرور مجازی هلند

سرورهای اختصاصی

  • سرور اختصاصی ایران
  • سرور اختصاصی برج میلاد
  • سرور اختصاصی زیرساخت
  • سرور اختصاصی خارج
  • سرور اختصاصی آلمان
  • سرور اختصاصی فرانسه
  • سرور اختصاصی آمریکا
تمام حقوق این سایت محفوظ و متعلق به نوین هاست می باشد.
Facebook Twitter Youtube Whatsapp Instagram Telegram