SELinux может помочь вам защитить ваш сервер от сбоев в процессах или приложениях. Архитектура Linux с улучшенной безопасностью (SE), разработанная АНБ (Агентством национальной безопасности) для защиты правительственных устройств от злоумышленников, использует протоколы безопасности для ограничения доступа к системным ресурсам. Узнайте, как вы можете использовать его для своего сервера.
Читайте также: Что такое Rc Shell и как его установить в Linux
Архитектура SELinux
SELinux — это модуль ядра, который может быть включен или отключен системным администратором. Поскольку доступ к файлам и сетевым портам ограничен в соответствии с политикой безопасности, неисправная программа или неправильно настроенный демон не могут оказать существенного влияния на безопасность системы.
Когда приложение или процесс запраш
Contents
Архитектура SELinux
ме SELinux, оно сначала проверяет кэш векторов доступа (AVC). Если разрешение ранее кэшировалось, оно возвращается с файлом для запрошенного приложения. Если разрешение не кэшировано, оно отправляет запрос на сервер безопасности. Сервер безопасности проверяет все политики безопасности в своей базе данных. В зависимости от политики безопасности разрешение предоставляется или отклоняется.В SELinux нет понятия root или суперпользователя. Безопасность немодифицированного дистрибутива Linux без SE Linux зависит от правильности ядра, всех привилегированных приложений и их конфигураций. сбой или ошибка в любом из этих компонентов может создать поверхность для атаки и поставить под угрозу систему.
С другой стороны, модифицированная система Linux с SELinux в первую очередь зависит от корректности ядра и политик безопасности.
Читайте также: Как использовать команду Rm в Linux
Как установить или включить SELinux
SELinux означает Linux с улучшенной безопасностью. SELinux является частью ядра Linux с 2003 года. Поэтому его не нужно устанавливать отдельно. Однако в большинстве дистрибутивов Linux для настольных компьютеров он отключен по умолчанию.
SELinux имеет три основных режима: принудительный, разрешающий и отключенный. Давайте кратко обсудим их:
- Принудительно: активирует и защищает систему Linux с помощью политик безопасности.
- Разрешающий: он не применяет политики безопасности, но записывает все. Этот режим полезен для устранения неполадок.
- Отключено: деактивирует SELinux. Этот вариант не рекомендуется, и если вы повторно включите SELinux в вашей системе, это приведет к ошибкам из-за изменений в маркировке.
Примечание. Ubuntu поставляется с AppArmor, альтернативой SELinux. Хотя SELinux доступен в Ubuntu, он несовместим с AppArmor и может привести к поломке вашей системы, если он включен. Если вам действительно нужно использовать SELinux в Ubuntu, обязательно отключите AppArmor и проведите интенсивное тестирование (сначала начните с разрешительного режима), прежде чем использовать его в производственных целях.
- Чтобы активировать SELinux в вашей системе, вам необходимо отредактировать файл «/etc/selinux/config». Откройте этот файл в текстовом редакторе.
sudoКак установить или включить SELinux>selinux/config
- В файле конфигурации установите
SELINUX=permissive
. Нажмите Ctrl+ Oи нажмите Enter, чтобы сохранить файл, и нажмите Ctrl+ Xвыйти из редактора. SELinux теперь активирован в вашей системе.
Примечание. Если вы попытаетесь применить SELinux непосредственно перед тем, как сделать его разрешительным, это может привести к неправильной маркировке файлов и процессов и препятствовать загрузке.
- Чтобы автоматически переименовать файловую систему, создайте файл с именем «.autorelabel» в корневой файловой системе. Теперь, когда вы загружаете свою систему, SELinux автоматически переименует вашу файловую систему. Чтобы уменьшить количество ошибок, сохраните параметр
SELINUX=permissive
в папке конфигурации. После того, как все будет перемаркировано, установите для SELinux значениеSELINUX=enforcing
в «/etc/selinux/config» и перезагрузитесь.
SELinux будет успешно внедрен в вашей системе.
Также читайте: Как настроить подсказку терминала Linux с помощью Starship
Как настроить SELinux
SELinux — это архитектура, которая позволяет системным администраторам контролировать доступ к системным ресурсам. SELinux ограничивает доступ к системе с помощью политик безопасности. Существует множество способов настройки SELinux для защиты вашей системы, наиболее популярными из которых являются «целевая политика» и «многоуровневая безопасность» (MLS).
Целевая политика — это политика безопасности по умолчанию. Он охватывает ряд политик безопасности, таких как доступ к файлам, задачам, службам и т. д. Многоуровневая безопасность (MLS) обычно используется государственными и крупными организациями, ее очень сложно настроить, и для ее управления требуется выделенная команда.п>
Вы можете проверить текущий режим SELinux с помощью команд getenforce
и sestatus
.
Если вам нужно изменить режим SELinux только в текущем сеансе, вы можете выполнить следующие две команды.
sudo setenforce 0
: Установка SELinux в разрешительный режим для текущего сеанса.sudo setenforce 1
: установка SELinux в принудительном режиме для текущего сеанса.
Политики SELinux
SELinux работает как система маркировки. Он связывает каждый файл, порт и процесс с меткой. Ярлыки — это логический способ группировки вещей. Ядро отвечает за управление меткой во время загрузки.
Политиками SELinux можно управлять с помощью логических значений. Например, давайте присвоим логическое значение демону с именем httpd
. httpd
— это демон HTTP-сервера Apache, который мы используем для запуска веб-серверов в Linux.
Чтобы просмотреть все модули, относящиеся к httpd
, выполните в терминале следующую команду:
getsebool -a | grep httpd
Здесь опция -a
перечисляет все логические значения, и мы используем grep
для фильтрации логических значений, связанных только с httpd
. Прочтите эту статью до узнать больше о grep в Linux .
Результаты приведенной выше команды выглядят так, как показано на изображении ниже.
httpd_builtin scripting --> on httpd_can_check_spam --> off httpd can connect ftp --> off httpd_can_connect_ldap --> off httpd_can_connect_mythty --> off httpd_can_connect_zabbix --> off httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off httpd_can_network_memcache --> off httpd_can_network_relay --> off httpd_can_sendmail --> off httpd_dbus_avahi --> off httpd dbus sssd--> off
Из приведенного выше списка мы берем логическое значение httpd_can_connect_ftp
и меняем его значение. Сначала прочитайте значение <
Как настроить SELinux
de>, независимо от того, включено оно или выключено:getsebool httpd_can_connect_ftp
Давайте установим значение httpd_can_connect_ftp
, чтобы разрешить.
setsebool -P httpd_can_connect_ftp 1
Здесь 1 означает allow
или on
. Тег -P
используется для того, чтобы сделать изменение постоянным. Если вы снова перечислите логические значения, связанные с httpd, мы увидим изменение значения httpd_can_connect_ftp
на on
.
httpd_builtin_scripting --> on httpd_can_check_spam --> off httpd can connect ftp --> on httpd_can_connect_ldap --> off httpd_can_connect_mythty --> off httpd_can_connect_zabbix --> off httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off httpd_can_network_memcache --> off httpd_can_network_relay --> off httpd_can_sendmail --> off httpd_dbus_avahi --> off httpd dbus sssd--> off
Читайте также: Как настроить WordPress с помощью Docker в Ubuntu
Как обрабатывать ошибки SELinux
В SELinux есть 4 типа ошибок:
- Система сломана : SELinux защищает вашу систему, ограничивая доступ, но иногда этого недостаточно. Если вы получаете эти ошибки, возможно, ваша система скомпрометирована. Примите необходимые меры как можно быстрее.
- Ошибка в политике : эта ошибка появляется, если в
Политики SELinux
торую необходимо исправить. - Ярлыки неверны. Это сообщение об ошибке появляется во время настройки маркировки пользователем или когда автоматическая маркировка SELinux не работает. На рынке существует множество инструментов для исправления ошибок в этикетках.
- Необходимо исправить политику : эти ошибки возникают, когда вы вносите некоторые изменения в систему и не сообщаете об этом SELinux. Эту ошибку можно исправить с помощью логических модулей или модулей политики.
Как отключить SELinux
Отключение SELinux никогда не будет лучшим вариантом для корпоративных и государственных серверов, а также общедоступных устройств, которые очень подвержены атакам. Но если вы хотите отключить SELinux в своей системе, следуйте этим инструкциям.
- Перейдите к файлу конфигурации SE Linux в «/etc/selinux» и измените режим конфигурации SE Linux с
enforcing
наpermissive
, затем перезагрузите систему.. - Измените режим SELinux с
permissive
наdisabled
.
После следующей перезагрузки SELinux в вашей системе отключается и становится обычной машиной Linux.
Читайте также: Как настроить брандмауэр в Linux
Часто задаваемые вопросы
Присутствует ли SELinux в Android?
Да, SELinux реализован в Android начиная с версии 4.3. Это повысило безопасность Android для защиты пользователей Android от кибератак.
Является ли SELinux межсетевым экраном?
SELinux не является межсетевым экраном. Брандмауэр контролирует трафик между компьютером и сетью. Хотя SELinux контролирует и управляет файловой системой и сетевым доступом различных программ внутри системы, мы можем рассматривать SELinux как внутренний брандмауэр для защиты системы от его программ.
Является ли SELinux операционной системой?
SELinux не является операционной системой. Это модуль безопасности ядра, существующий в ядре Linux. Он обеспечивает поддержку политик безопасности контроля доступа и обязательного контроля доступа (MAC). Чтобы назвать ее операционной системой, ей нужно нечто большее, чем само ядро. В большинстве операционных систем на базе Linux вы можете использовать SELinux.
Стоит ли использовать SELinux?
Если вы системный администратор и знаете систему Unix, вам следует использовать SELinux, поскольку он повышает безопасность вашего сервера и сводит к минимуму поверхность атаки. Если вы не очень хорошо знакомы с системами Unix, вы также можете использовать Apparmour. Это относительно проще, чем SELinux. Если вы домашний пользователь и используете Linux только на настольном компьютере, нет необходимости использовать SELinux. Это просто вызовет у вас головную боль при настройке и снизит вашу производительность.