Sobes.tech
Middle+

На CentOS Linux, как управлявате ceiling (ограничителите)? Винаги ли са изключени или активни?

sobes.tech AI

Отговор от AI

SeLinux (Security-Enhanced Linux) е механизъм за принудителен контрол на достъпа (MAC). По подразбиране е активен и работи в един от следните режими:

  • Enforcing: Задължително прилагане на политики за сигурност. Всяка забранена операция се блокира.
  • Permissive: Забранените операции не се блокират, но се генерират предупреждения и се записват в логовете.
  • Disabled: SeLinux е напълно деактивиран.

На практика се опитвам да поддържам SeLinux активен в режим Enforcing на производствените сървъри. Това добавя допълнително ниво на сигурност. Изключването на SeLinux е крайна мярка, използвана само за отстраняване на проблеми или в специфични, напълно контролирани среди.

За управление на SeLinux използвам следните команди:

  • Проверка на текущото състояние и режим:
    sestatus
    # Статус на SeLinux и текущ режим
    
  • Превключване между режими (без рестартиране):
    setenforce 0 # Permissive режим
    setenforce 1 # Enforcing режим
    
  • Промяна на режима по подразбиране (изисква рестартиране), като се редактира /etc/selinux/config:
    nano /etc/selinux/config
    # Промяна на SELINUX=enforcing на permissive или disabled
    
  • Управление на булеви настройки (разрешаване или забраняване на определени политики):
    getsebool -a # Изброяване на всички булеви стойности
    setsebool -P <име_на_булево> on/off # Постоянно задаване (-P)
    

При конфигуриране на нови услуги или приложения, които не са съвместими с текущата политика на SeLinux, предпочитам да създам или актуализирам локална политика (модул), вместо да я изключвам напълно. Това е по-безопасен подход.

Стъпки за създаване на локална политика:

  1. Инсталиране на необходимите инструменти:
    yum install policycoreutils policycoreutils-python
    
  2. Преминаване на SeLinux в режим Permissive за наблюдение на нарушения:
    setenforce 0
    
  3. Извършване на действия, които причиняват нарушения.
  4. Генериране на политика въз основа на логовете audit.log:
    grep <име_на_услугата> /var/log/audit/audit.log | audit2allow -M моя_политика_за_услугата
    
    където <име_на_услугата> е името на услугата, която причинява нарушения.
  5. Инсталиране на генерираната политика:
    semodule -i моя_политика_за_услугата.pp
    
  6. Връщане на SeLinux в режим Enforcing:
    setenforce 1
    

По този начин, моята стратегия е да използвам SeLinux в режим Enforcing и да го настройвам при необходимост.