Спестете 15% от всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код: Skills За начало
Заглавия
Linux Защита

Какво е SELinux и как може да подобри сигурността на Linux сървърите?

Когато повечето системни администратори мислят за укрепване на Linux сървър, те се фокусират върху основите: поддържане на пакетите актуални, конфигуриране на правила на защитната стена и ограничаване на SSH достъпа. Всички тези стъпки са валидни и необходими — но оставят значителна пропаст. Един от най-мощните и често недостатъчно използвани механизми за сигурност, налични на Linux, е SELinux (Security-Enhanced Linux), рамка за задължителен контрол на достъпа на ниво ядро, предназначена да съдържа заплахи, преди да се превърнат в пълни компрометирания на системата.

Независимо дали работите в среда на VPS Hosting, приложение с висок трафик на Dedicated Servers, или платформа за Shared Web Hosting с множество наематели, SELinux може да бъде решаващият слой, който превръща сериозно нарушение в съдържано, възстановимо събитие.

Какво е SELinux?

SELinux е модул за сигурност на Linux ядрото, който реализира Mandatory Access Control (MAC). За да разберете защо това е важно, първо трябва да разберете какво замества — или по-скоро, какво допълва.

Традиционният модел за сигурност на Linux се основава на Discretionary Access Control (DAC). При DAC разрешенията за достъп се определят от собствеността на файловете и членството в групи. Потребителят root има неограничена власт над цялата система. Ако нападател получи root, получава всичко.

При MAC модела на SELinux достъпът се управлява от политики за сигурност на системното ниво, които се прилагат на ниво ядро. Критично е, че дори потребителят root е подложен на тези ограничения. Процес, работещ като root, не може да извършва действия, които неговата SELinux политика не позволява изрично.

SELinux е първоначално разработен от National Security Agency (NSA) в сътрудничество с Red Hat и е интегриран в основния Linux kernel в началото на 2000-те години. Днес той е стандартен компонент на Linux дистрибуции на корпоративно ниво, включително RHEL, CentOS, Fedora, AlmaLinux и Rocky Linux.

Където традиционната Linux сигурност е недостатъчна

Класическият UNIX модел на разрешения е служил добре на Linux в продължение на десетилетия, но носи структурни слабости, които съвременните нападатели експлоатират редовно:

  • Root е всемогъщ. Всеки експлоит, който успешно повиши привилегиите до root, дава на нападателя неограничен достъп до цялата система — файлове, бази данни, мрежови сокети и всичко останало.
  • Компрометиране на услуга означава компрометиране на системата. Уязвим Apache модул, лошо написан PHP скрипт или неправилно конфигурирано приложение могат да бъдат използвани за преместване по целия сървър.
  • Съвременните вектори на атака заобикалят DAC напълно. Уеб обвивки, експлоити за повишаване на привилегиите, избягания от контейнери и атаки на веригата на доставка са проектирани да работят в границите на традиционните разрешения, докато все още причиняват катастрофални щети.

Сценарий на атака в реалния свят

Помислете за често срещана уязвимост на CMS, която позволява на нападателя да качи и изпълни уеб обвивка.

Без SELinux: Нападателят чете config.php, извлича учетни данни на базата данни, изхвърля базата данни, се премества странично към други хостирани сайтове и потенциално постига пълен root достъп. Целият стек е компрометиран от една точка на влизане.

С SELinux: Процесът на Apache уеб сървър работи в домейна httpd_t. Политиката строго ограничава какво може да достъпи httpd_t. Уеб обвивката не може да чете файлове извън определения домейн на съдържанието, не може да отвори неоторизирани мрежови връзки и не може да докосне файлове на системната конфигурация. Нарушението е локализирано на слоя на приложението.

Това е основното предложение на стойност на SELinux: ограничаване на щетите чрез ограничаване на процеса.

Как работи SELinux: Контексти на сигурност и прилагане на политики

SELinux работи чрез присвояване на контекст на сигурност (етикет) на всеки процес, файл, порт и мрежов сокет в системата. Политиките след това определят кои контексти могат да взаимодействат един с друг. Ядрото прилага тези правила при всеки опит за достъп.

Конкретен пример

ОбектКонтекст на сигурност
Apache процесhttpd_t
Файлове на уебсайтаhttpd_sys_content_t
Файл със сенчести паролиshadow_t

Политиката на SELinux позволява на httpd_t да чете файлове, етикетирани като httpd_sys_content_t. Тя не позволява на httpd_t да чете shadow_t.

Ако Apache — независимо дали законно или поради експлоатация — се опита да чете /etc/shadow, ядрото отказва заявката и записва подробен запис за нарушение в /var/log/audit/audit.log. Атаката е блокирана и документирана едновременно.

SELinux режими на работа

SELinux работи в три отделни режима:

РежимПоведение
EnforcingПолитиките се прилагат активно. Нарушенията се блокират и регистрират.
PermissiveНарушенията се регистрират, но не се блокират. Полезно за одит и разработка на политики.
DisabledSELinux е напълно изключен. Не се препоръчва за производствени среди.

Проверка и задаване на текущия режим

# Check current SELinux status
getenforce
sestatus

# Temporarily switch to permissive mode (no reboot required)
setenforce 0

# Switch back to enforcing mode
setenforce 1

За да промените режима постоянно, редактирайте /etc/selinux/config и задайте SELINUX=enforcing (или permissive), след това рестартирайте.

> Най-добра практика: Разгърнете нови сървъри в режим Permissive първо. Прегледайте журналите за одит, идентифицирайте всички легитимни процеси, които се отбелязват, фино настройте вашите политики и след това преминете на Enforcing за производство. Този подход предотвратява оперативни прекъсвания, докато гарантира, че вашите политики са точни.

Типове SELinux политики

SELinux идва с няколко типа политики, подходящи за различни среди:

Targeted Policy (По подразбиране и препоръчана)

Прилага MAC ограничения само на услуги, обърнати към мрежата, като Apache, Nginx, Postfix, Dovecot и DNS. Всички други процеси работят в неограничена област. Това е най-добрия баланс между сигурност и използваемост за по-голямата част от VPS и dedicated server работните натоварвания.

Strict Policy

Прилага MAC на всички процеси в системата, включително потребителски сесии. Осигурява максимална сигурност, но изисква значително повече управление на политиката и оперативна експертиза.

MLS/MCS (Multi-Level Security / Multi-Category Security)

Напредни типове политики, предназначени за правителствени, класифицирани или силно регулирани среди, където данните трябва да бъдат изолирани в няколко нива на чувствителност едновременно.

За повечето production server разгръщания, Targeted Policy е правилният избор.

Защо SELinux е важен за хостинг, DevOps и съответствие

SELinux предоставя осезаеми предимства в областта на сигурността в широк спектър от оперативни контексти:

Изолация на процесите

Всеки ограничен сервис работи в собствения си домейн за сигурност. Компрометирането на един сервис — например уеб приложение — не дава достъп до други сервизи, работещи на един и същи хост. Това е особено ценно в многоприложни сървърни среди.

Налагане на принципа на най-малкия привилегий

SELinux налага принципа на най-малкия привилегий на ниво ядро. Процесите могат да имат достъп само до ресурсите, които им трябват експлицитно. Дори ако нападател получи root достъп в ограничен процес, той не може да надвиши разрешенията, определени от политиката.

Дневници на одит и криминалистика

Всеки отказан опит за достъп се записва в /var/log/audit/audit.log с пълен контекст: въвлеченият процес, ресурсът, който се опита да достъпи, контекстите за сигурност на двата, и времева мрежа. Това прави криминалистиката след инцидент драматично по-ефективна.

Сигурност на контейнерите

SELinux предотвратява Docker и Podman контейнерите да избегнат своите граници и да имат достъп до ресурси на хоста. Това е критичен защитен слой за контейнеризирани работни натоварвания, където уязвимостите при избягване на контейнер са известен клас атаки.

Съответствие с нормативните изисквания

SELinux е задължителен контрол в няколко рамки за съответствие, включително PCI DSS, HIPAA и военни/държавни стандарти за сигурност. Работата на SELinux в режим Enforcing с документирана политика често е предпоставка за преминаване на одити за сигурност в регулирани индустрии.

Основни SELinux команди за системни администратори

Ето най-често използваните команди за управление на SELinux в ежедневните операции:

Проверка на статуса на SELinux

getenforce
sestatus

Възстановяване на контекстите на файлове след преместване на уеб файлове

Когато файловете се преместват вместо да се копират, те могат да запазят неправилни етикети за сигурност. Използвайте restorecon за да поправите това:

restorecon -Rv /var/www/html

Списък на етикетите за сигурност на файловете

ls -Z /var/www/html

Разрешаване на изходящи връзки на уеб услугата (напр. за API повиквания или прокси)

setsebool -P httpd_can_network_connect 1

Разрешаване на Apache да се свързва с база данни

setsebool -P httpd_can_network_connect_db 1

Преглед на последните отказани действия в дневника на одита

ausearch -m avc -ts recent

Генериране на персонализиран модул на политика от отказите при одита

audit2allow -a -M my_custom_policy
semodule -i my_custom_policy.pp

> Важно: Винаги разследвайте отказите при одита преди да създавате правила за разрешаване. audit2allow е мощен инструмент, но сляпото разрешаване на всички откази отрича смисъла на SELinux. Разберете какво позволява всяко правило преди да го приложите.

Common SELinux Pitfalls and How to Avoid Them

Отключване на SELinux вместо поправяне. Най-честата грешка, която администраторите правят, е да отключат SELinux постоянно, когато срещнат отказ. Това премахва цял слой на защита. Вместо това, използвайте audit2allow и setsebool за решаване на конкретни проблеми, докато SELinux остава активен.

Неправилни етикети на файлове след ръчни разгръщания. Ако разгърнете файлове на приложението, като ги копирате от нестандартно място, те могат да наследят неправилни етикети. Винаги стартирайте restorecon след ръчни операции с файлове в уеб корени и директории на приложения.

Неразглеждане на логове в режим Permissive. Пропускането на фазата Permissive и преминаване директно към Enforcing на производствен сървър е рецепта за неочаквани прекъсвания. Винаги валидирайте политиките спрямо реалния трафик, преди да ги прилагате.

SELinux и AlexHost: Production-Ready Security от основата

AlexHost сървърите, работещи с enterprise Linux дистрибуции (AlmaLinux, Rocky Linux, CentOS), идват със SELinux достъпен от кутията. Независимо дали развиваш web application stack, database сървър или containerized microservices среда, SELinux осигурява основния access control слой, който поддържа вашите workloads устойчиви срещу експлоатация.

Ако управляваш своя сървър чрез control panel, VPS с cPanel среди са напълно съвместими със SELinux в Targeted режим, и cPanel самият идва със SELinux-aware конфигурации за своите управлявани услуги.

За екипи, които имат нужда от пълен контрол над своята security posture — включително custom SELinux policy модули, MLS конфигурации или compliance-driven hardening — Dedicated Servers осигуряват изолацията и root-level достъпа, необходими за внедряване и поддържане на enterprise-grade MAC политики без ограниченията на shared infrastructure.

Заключение

SELinux не е просто опционална добавка за сигурност — това е фундаментален архитектурен компонент, който преосмисля как Linux прилага контрол на достъпа на ниво ядро. Чрез ограничаване на процесите в добре дефинирани домейни на сигурност, прилагане на политики на най-малкия привилегий, които дори root не може да заобиколи, и генериране на подробни одитни записи на всеки отказан опит за достъп, SELinux трансформира стандартния Linux сървър в значително по-устойчива и защитена система.

Да, SELinux изисква инвестиция: разбиране на контекстите на сигурност, писане или настройка на политики и ангажимент към работен процес, който третира отказите като информация, а не като препятствия. Но за всеки сървър, обработващ чувствителни данни, стартиращ публично достъпни услуги или работещ в рамките на регулирана рамка за съответствие, тази инвестиция не е опционална — това е базовото ниво.

Конфигурирайте го правилно, поддържайте го в режим Enforcing, и SELinux ще мълчаливо съдържа заплахи, които иначе биха компрометирали цялата ви инфраструктура.