WindowsMacПрограммное обес..НастройкиБезопасностьАндроид (Androi..ПродуктивностьЛинукс Все

Как настроить SELinux на Linux

Отредактировано 3 Несколько недель назад от ExtremeHow Редакционная команда

БезопасностьSELinuxКонфигурацияПолитикиКомандная строкаПринудительное обеспечениеСистемный администраторМониторингЛучшие практикиКонтроль доступа

Как настроить SELinux на Linux

Перевод обновлен 3 Несколько недель назад

Введение

SELinux, что означает Security-Enhanced Linux, представляет собой архитектуру безопасности, интегрированную в ядро, которая предоставляет механизм для поддержки политик управления доступом. Ее цель - обеспечить выполнение политик операционной системы, которые ограничивают возможности программ и защищают систему от потенциальных уязвимостей. Настройка SELinux на вашей системе, основанной на Linux, может помочь вам достичь более безопасной среды. Это подробное руководство объясняет, как пошагово настроить SELinux на машине с Linux.

Понимание режима SELinux

Перед настройкой SELinux важно понять режимы, в которых SELinux может работать. Эти режимы определяют, как SELinux управляет контролем доступа в вашей операционной системе.

Проверка текущего статуса SELinux

Чтобы эффективно настроить SELinux, вам нужно проверить его текущее состояние. Это поможет понять, активен ли SELinux и какой режим в настоящее время используется.

Откройте окно терминала и введите следующую команду, чтобы проверить статус:

getenforce

Вы также можете использовать следующую команду для более подробной информации:

sestatus

Эта команда покажет вам текущий статус как Enforcing, Permissive или Disabled.

Изменение режима SELinux

Вы можете изменить режим SELinux временно или навсегда. Часто бывает полезно изменить режим временно для тестирования или устранения неполадок, но постоянные изменения необходимы для того, чтобы конфигурация сохранялась после перезагрузки.

Временное изменение режима SELinux

Чтобы временно изменить режим без перезагрузки системы, вы можете использовать команду setenforce. Например, чтобы переключиться в режим enforcing, выполните:

sudo setenforce 1

Чтобы переключиться в режим permissive, выполните:

sudo setenforce 0

Постоянное изменение режима SELinux

Чтобы сделать изменение постоянным, обновите конфигурационный файл SELinux, расположенный по пути /etc/selinux/config. Откройте этот файл с помощью текстового редактора:

sudo nano /etc/selinux/config

Найдите строку, начинающуюся с SELINUX= и измените его значение на enforcing, permissive или disabled в зависимости от ваших потребностей. Например:

SELINUX=enforcing

Сохраните и закройте файл, затем перезагрузите систему, чтобы изменения вступили в силу.

Понимание типов политик SELinux

Политики SELinux определяют правила безопасности, которые применяются SELinux. Эти политики контролируют разрешения, предоставленные различным пользователям и службам на системе. Наиболее часто используемые политики:

Чтобы узнать, какую политику в настоящее время используется, выполните следующую команду в терминале:

sestatus | grep "Loaded policy name"

Установка и управление пакетами SELinux

Для эффективного управления SELinux вам может потребоваться установить связанные инструменты и пакеты, которые различаются в зависимости от дистрибутива. Ниже приведены некоторые распространенные пакеты, которые могут быть полезны.

Для дистрибутивов на основе Debian/Ubuntu

Используйте пакетный менеджер apt для установки инструментов SELinux:

sudo apt update sudo apt install policycoreutils selinux-utils setools

Для дистрибутивов на основе RHEL/CentOS

Используйте пакетный менеджер yum или dnf для установки инструментов SELinux:

sudo yum install policycoreutils selinux-policy setools

Управление политиками SELinux

Понимание того, как включать или отключать политики SELinux для конкретных служб, может быть важным, чтобы достичь нужного уровня безопасности без нарушения запланированных функций служб. SELinux использует булевы значения для переключения политик для конкретных функций.

Чтобы просмотреть доступные булевы значения SELinux, выполните следующую команду:

getsebool -a

Настройка булевых значений SELinux

Чтобы временно изменить значение булевой переменной (до следующей перезагрузки):

sudo setsebool httpd_enable_homedirs on

Чтобы навсегда изменить значение булевой переменной, используйте опцию -P, которая записывает изменение на диск:

sudo setsebool -P httpd_enable_homedirs on

Маркировка файлов контекстами SELinux

SELinux использует контексты (также называемые метками) для определения прав доступа к файлам и процессам. Иногда вы должны установить или изменить эти контексты вручную. Вы можете просмотреть контекст файла с помощью команды ls -Z:

ls -Z /var/www/html

Если вам нужно изменить контекст файла, используйте команду chcon. Например, чтобы изменить файл на соответствующий контекст для веб-сервера:

sudo chcon -t httpd_sys_content_t /var/www/html/index.html

Восстановление контекстов SELinux

Если файл имеет неправильный контекст SELinux, вы можете восстановить его в его стандартный контекст с помощью команды restorecon:

sudo restorecon -Rv /var/www/html

Эта команда рекурсивно восстановит правильный контекст SELinux для указанного каталога.

Устранение неполадок SELinux

Когда SELinux находится в режиме enforcing, он иногда может блокировать законные действия, особенно когда устанавливаются пользовательские приложения. Устранение неполадок SELinux требует анализа журналов и понимания причин, по которым что-то отказано.

Проверка журналов SELinux

Сообщения SELinux регистрируются в /var/log/audit/audit.log или, в некоторых системах, в /var/log/messages. Чтобы просмотреть журнал, используйте текстовый редактор или команду tail:

sudo tail -n 50 /var/log/audit/audit.log

Анализ заблокированных действий

Журналы могут быть сложными и большими, поэтому специализированные инструменты, такие как audit2allow, могут помочь их анализировать. Этот инструмент преобразует записи журнала в читаемые форматы и даже предлагает необходимые политики для разрешения непроверенных действий.

grep AVC /var/log/audit/audit.log | audit2allow -m custompolicy

Эта команда может помочь вам создать модуль SELinux, который может разрешить определенное действие. Будьте осторожны при разрешении действий, так как это может снизить общую безопасность вашей системы.

Заключение

Настройка SELinux в Linux включает в себя понимание различных режимов, проверку состояния, изменение режимов, работу с политиками и булевыми значениями, маркировку файлов и восстановление контекстов. SELinux - это мощная система, которая значительно улучшает безопасность вашей среды Linux, применяя строгие правила контроля доступа. При правильной настройке она может защитить от угроз, стремящихся получить несанкционированный доступ или нарушение.

Убедитесь, что вы постоянно мониторите журналы и поддерживаете актуальную политику, чтобы адаптироваться к вновь установленному программному обеспечению и изменяющимся требованиям системы. SELinux может казаться сложным сначала, но по мере того, как вы станете знакомы с его возможностями, он станет незаменимым инструментом для повышения безопасности Linux.

Если вы найдете что-то неправильное в содержании статьи, вы можете


Комментарии