SELinux — аббревиатура от Linux с улучшенной безопасностью. Это функция безопасности ядра Linux. Он предназначен для защиты сервера от неправильной настройки или скомпрометированных демонов.
Он устанавливает ограничения и инструктирует серверные демоны или программы, к каким файлам они обращаются и какие действия предпринимают, определяя политику безопасности.
SELinux и DAC
DAC является аббревиатурой от Discretionary Access Control (DAC). Это стандартный механизм безопасности Linux, * BSD, Apple OSX и Unix. В DAC каждый процесс выполняется под пользователем и группой.
Например, процесс httpd запускается со связанным пользователем и группой под названием apache. Процесс httpd имеет доступ ко всем файлам и каталогам, к которым имеет доступ apache. Если процесс httpd был взломан, это создает ряд проблем с безопасностью.
Взломанный процесс httpd может получить доступ, изменить и уничтожить все файлы, принадлежащие пользователю apache. Он может получить доступ к временным каталогам (/ tmp / или / var / tmp) и файлам, которые можно прочитать всем.
Каталоги кэширования, используются для установки бэкдора и получения полного контроля над вашей системой Linux. Владение файлом обеспечивает рискованный контроль. Сценарий cgi или php с неожиданным правом доступа делает все что угодно с файлами, принадлежащими пользователю apache.
Он выполняет любые операции над файлами в группе apache. Злоумышленник может использовать этот неправильно настроенный сценарий cgi / php или сломанный сервер apache для получения доступа к корневому уровню. Это даст суперпользователю доступ в системе на основе Linux. После получения прав взломщик может украсть ваши личные данные или получить доступ к другим частям вашей внутренней сети (LAN).
MAC: безопасность с SELinux
MAC является аббревиатурой от Mandatory Access Control (MAC). SELinux — это реализация механизма безопасности MAC. Он встроен в ядро Linux и по умолчанию включен в Fedora, CentOS, RHEL и некоторых другие дистрибутивах Linux.
SELinux позволяет администратору сервера определять различные разрешения для всего процесса. Он определяет, как все процессы взаимодействуют с другими частями сервера.
SELinux накладывает ограничения на каждый из вышеуказанных объектов в соответствии с политикой. Например, пользователь apache с полным разрешением может получить доступ только к каталогу / var / www / html, но не может затрагивать другие части системы, такие как каталог / etc, без изменения политики.
Если злоумышленнику удастся получить доступ к почте sendmail или bind dns или веб-серверу apache, он будет иметь доступ только к эксплуатируемому серверу, а файлы, как правило, имеют доступ, определенный в политике для сервера. Злоумышленник не может получить доступ к другим частям системы или внутренней локальной сети.
Другими словами, ущерб теперь может быть ограничен конкретным сервером и файлами. Взломщик не сможет получить оболочку на вашем сервере через распространенные демоны, такие как Apache / BIND / Sendmail, поскольку SELinux предлагает следующие функции безопасности:
- Данные пользователей от несанкционированного доступа.
- Другие программы от несанкционированного доступа.
- Сетевые порты от несанкционированного доступа.
- Сервер
Обратите внимание, что SELinux не является единственной мерой для защиты сервера. Вы должны следовать другим правилам безопасности, таким как:
- Реализация политики брандмауэров.
- Мониторинг сервера.
- Патч системы вовремя.
- Написание и защита скриптов.
Установка
- Устанавливаем SELinux командой sudo apt install policycoreutils selinux-utils selinux-basics
- Активируем: sudo selinux-activate
- Включаем принуждение: sudo selinux-config-enforcing
Вывод
Мы кратко изложили материал, чтобы у Вас сложилось минимальное понимание о SELinux.