Отредактировано 3 Несколько недель назад от ExtremeHow Редакционная команда
БезопасностьSELinuxКонфигурацияПолитикиКомандная строкаПринудительное обеспечениеСистемный администраторМониторингЛучшие практикиКонтроль доступа
Перевод обновлен 3 Несколько недель назад
SELinux, что означает Security-Enhanced Linux, представляет собой архитектуру безопасности, интегрированную в ядро, которая предоставляет механизм для поддержки политик управления доступом. Ее цель - обеспечить выполнение политик операционной системы, которые ограничивают возможности программ и защищают систему от потенциальных уязвимостей. Настройка SELinux на вашей системе, основанной на Linux, может помочь вам достичь более безопасной среды. Это подробное руководство объясняет, как пошагово настроить SELinux на машине с Linux.
Перед настройкой SELinux важно понять режимы, в которых SELinux может работать. Эти режимы определяют, как SELinux управляет контролем доступа в вашей операционной системе.
Чтобы эффективно настроить SELinux, вам нужно проверить его текущее состояние. Это поможет понять, активен ли SELinux и какой режим в настоящее время используется.
Откройте окно терминала и введите следующую команду, чтобы проверить статус:
getenforce
Вы также можете использовать следующую команду для более подробной информации:
sestatus
Эта команда покажет вам текущий статус как Enforcing
, Permissive
или Disabled
.
Вы можете изменить режим SELinux временно или навсегда. Часто бывает полезно изменить режим временно для тестирования или устранения неполадок, но постоянные изменения необходимы для того, чтобы конфигурация сохранялась после перезагрузки.
Чтобы временно изменить режим без перезагрузки системы, вы можете использовать команду setenforce
. Например, чтобы переключиться в режим enforcing, выполните:
sudo setenforce 1
Чтобы переключиться в режим permissive, выполните:
sudo setenforce 0
Чтобы сделать изменение постоянным, обновите конфигурационный файл SELinux, расположенный по пути /etc/selinux/config
. Откройте этот файл с помощью текстового редактора:
sudo nano /etc/selinux/config
Найдите строку, начинающуюся с SELINUX=
и измените его значение на enforcing
, permissive
или disabled
в зависимости от ваших потребностей. Например:
SELINUX=enforcing
Сохраните и закройте файл, затем перезагрузите систему, чтобы изменения вступили в силу.
Политики SELinux определяют правила безопасности, которые применяются SELinux. Эти политики контролируют разрешения, предоставленные различным пользователям и службам на системе. Наиболее часто используемые политики:
Чтобы узнать, какую политику в настоящее время используется, выполните следующую команду в терминале:
sestatus | grep "Loaded policy name"
Для эффективного управления SELinux вам может потребоваться установить связанные инструменты и пакеты, которые различаются в зависимости от дистрибутива. Ниже приведены некоторые распространенные пакеты, которые могут быть полезны.
Используйте пакетный менеджер apt
для установки инструментов SELinux:
sudo apt update sudo apt install policycoreutils selinux-utils setools
Используйте пакетный менеджер yum
или dnf
для установки инструментов SELinux:
sudo yum install policycoreutils selinux-policy setools
Понимание того, как включать или отключать политики SELinux для конкретных служб, может быть важным, чтобы достичь нужного уровня безопасности без нарушения запланированных функций служб. SELinux использует булевы значения для переключения политик для конкретных функций.
Чтобы просмотреть доступные булевы значения SELinux, выполните следующую команду:
getsebool -a
Чтобы временно изменить значение булевой переменной (до следующей перезагрузки):
sudo setsebool httpd_enable_homedirs on
Чтобы навсегда изменить значение булевой переменной, используйте опцию -P
, которая записывает изменение на диск:
sudo setsebool -P httpd_enable_homedirs on
SELinux использует контексты (также называемые метками) для определения прав доступа к файлам и процессам. Иногда вы должны установить или изменить эти контексты вручную. Вы можете просмотреть контекст файла с помощью команды ls -Z
:
ls -Z /var/www/html
Если вам нужно изменить контекст файла, используйте команду chcon
. Например, чтобы изменить файл на соответствующий контекст для веб-сервера:
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
Если файл имеет неправильный контекст SELinux, вы можете восстановить его в его стандартный контекст с помощью команды restorecon
:
sudo restorecon -Rv /var/www/html
Эта команда рекурсивно восстановит правильный контекст SELinux для указанного каталога.
Когда SELinux находится в режиме enforcing, он иногда может блокировать законные действия, особенно когда устанавливаются пользовательские приложения. Устранение неполадок 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.
Если вы найдете что-то неправильное в содержании статьи, вы можете