Selinux отключает Centos 6

Обновлено: 21.11.2024

В этом руководстве я расскажу вам, как правильно отключить SELinux в среде Linux, хотя это не рекомендуется, вместо этого вы можете изменить активный режим на Permissive. Мы подробно рассмотрим эту тему в этом руководстве для лучшего понимания.

Если вы уже приняли решение, вы можете сразу перейти к следующему пункту: Отключить SELinux навсегда

Что такое SELinux?

  • Управление доступом по умолчанию, активное в обычной системе Linux, основано на механизме дискреционного контроля доступа (DAC).
  • Рассмотрите файл /etc/shadow, который содержит пароль и информацию об учетной записи локальных учетных записей Linux.
  • Без дополнительных механизмов управления доступом этот файл доступен для чтения и записи любым процессом, владельцем которого является пользователь root, независимо от назначения процесса в системе.
  • Аналогичным образом многие программные демоны запускаются от имени пользователя root Linux или имеют значительные привилегии в системе.
  • Ошибки в этих демонах могут легко привести к утечке информации или даже к удаленным уязвимостям.
  • SELinux реализует обязательный контроль доступа (MAC), в отличие от своего аналога DAC, дает администратору полный контроль над тем, что разрешено в системе, а что нет.
  • Обязательный означает, что контроль доступа осуществляется операционной системой и определяется исключительно правилами политики, включенными системным администратором (или администратором безопасности).
  • SELinux принципиально отвечает на вопрос: можно ли? , например: Может ли веб-сервер получать доступ к файлам в домашних каталогах пользователей?
  • Система MAC может быть настроена таким образом, чтобы только ограниченное число процессов могло читать и записывать в файл. В таких специально сконфигурированных системах пользователь, вошедший в систему как root, не может получить прямой доступ к файлу или даже перемещать его. Он даже не может изменить атрибуты файла:

Должен ли я использовать SELinux?

  • На этот вопрос нет простого ответа
  • Все зависит от требований, но общая рекомендация — оставить его в состоянии "Применяется".
  • SELinux повышает безопасность системы, поэтому, если безопасность является вашей главной заботой, вы должны использовать SELinux в своей среде.
  • Хотя я бы посоветовал вам оставить его в разрешенном состоянии, а не в отключенном.

Состояния и режимы SELinux

SELinux поддерживает три основных состояния, в которых он может находиться: отключено, разрешено и принудительно. Эти состояния задаются в файле /etc/selinux/config через переменную SELINUX

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

Принудительное выполнение

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

Разрешающий

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

Отключено

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

Проверить статус SELinux

Есть несколько методов, с помощью которых вы можете проверить состояние SELinux в вашей среде Linux.
Мы можем использовать команду getenforce, предоставляемую libselinux-utils

Чтобы получить более подробную информацию об этом статусе, используйте sestatus

Также можно запросить псевдофайл /sys/fs/selinux/enforce, чтобы получить аналогичную информацию. Если файл возвращает 1 , то SELinux находится в принудительном режиме. Если он возвращает 0 , то он находится в разрешительном режиме:

Изменить режим работы SELinux без перезагрузки

  • Вы можете переключать состояние SELinux между Permissive и Enforcing без перезагрузки.
  • Изменение состояния на разрешающее не является полностью отключенным, но SELinux не будет применять какую-либо политику, а вместо этого только сообщит о нарушениях.
  • Чтобы изменить состояние SELinux во время выполнения, вы можете использовать setenforce
  • Теперь setenforce не может отключить SELinux, но может переключаться между принудительным (1) и разрешающим (0) режимами

Чтобы изменить активный режим на Permissive , используйте:

Или вы также можете изменить значение /sys/fs/selinux/enforce на 0

Проверьте текущий режим

Чтобы переключить его обратно на Enforcing , используйте:

Или вы также можете изменить значение /sys/fs/selinux/enforce на 1

Проверьте текущий режим

Отключить режим SELinux с помощью GRUB2

Использование команды setenforce имеет смысл, когда мы хотим переключиться в разрешающий или принудительный режим в момент времени, когда у нас есть интерактивный доступ к системе.

Но что, если нам это нужно при загрузке системы?

Если система отказывается загружаться должным образом из-за контроля доступа SELinux, мы не можем редактировать файл /etc/selinux/config.
Вы можете определить любой из следующих параметров в /etc/sysconfig/grub, который будет иметь приоритет над настройкой /etc/selinux/config

Отключить SELinux

  • Используйте selinux=0
  • Это информирует систему о необходимости полного отключения SELinux и имеет тот же эффект, что и настройка SELINUX=disabled в файле конфигурации.
  • Если установлено, другой параметр (принудительный) не учитывается.
  • Помните, что загрузка системы с отключенным SELinux означает, что для его повторного включения файловая система должна быть полностью переименована.

Включить разрешающий режим

  • Использовать enforcing=0
  • Это информирует систему о необходимости запуска SELinux в разрешающем режиме и имеет тот же эффект, что и настройка SELINUX=permissive в файле конфигурации.

Включить принудительный режим

  • Использовать enforcing=1
  • Это информирует систему о необходимости запуска SELinux в принудительном режиме и имеет тот же эффект, что и настройка SELINUX=enforcing в файле конфигурации.

Например, для SELinux установлено значение Enforcing согласно файлу /etc/selinux/config

Но я продолжу и изменю SELinux на Permissive с помощью GRUB2

Я добавил enforcing=0 в конце GRUB_CMDLINE_LINUX

Следующая перестройка файла конфигурации GRUB2

Перезагрузите сервер, после перезагрузки я вижу, что SELinux находится в разрешающем режиме, хотя он помечен как принудительный в /etc/selinux/config

Если SELinux уже отключен с помощью /etc/selinux/config, то эти параметры ядра GRUB2 не будут учитываться

Если система не включается, то:

  • Перезагружайте систему, пока не появится экран загрузки GRUB2.
  • Перейдите с помощью клавиш со стрелками к загрузочной записи, для которой необходимо изменить состояние SELinux. Обычно это загрузочная запись по умолчанию, и она уже выбрана.
  • Нажмите клавишу E, чтобы отредактировать строку ввода загрузки. Сделайте это до того, как таймер GRUB2 достигнет нуля; в противном случае система продолжит загружаться.
  • Используйте клавиши со стрелками, чтобы перейти к концу строки, которая начинается с linux , linux16 или linuxefi.
  • Добавьте enforcing=0 в конец этой строки.
  • Нажмите Ctrl + X, чтобы загрузить запись.

Отключить SELinux для одной службы

  • Вместо того, чтобы менять режим SELinux на Permissive для всей системы, вы можете установить разрешающий режим для отдельных доменов, пока система работает в принудительном режиме.
  • Чтобы сделать домен разрешающим, выполните команду semanage permissive -a, где указан домен, который вы хотите сделать разрешительным.
  • semanage предоставляется пакетом policycoreutils-python-utils rpm в RHEL и CentOS.

Из /var/log/messages

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

Той же командой semanage мы можем вывести список разрешенных доменов, определенных в настоящее время.

Еще один способ вывести список настраиваемых разрешительных типов (тех, которые не помечены как разрешающие в дистрибутиве) — использовать команду semodule

Чтобы удалить разрешающий режим из домена, передайте аргумент -d команде semanage

Отключить SELinux навсегда

Если вы все еще хотите отключить SELinux, вам нужно изменить SELINUX=enforcing на SELINUX=disabled в /etc/selinux/config

Отключить SElinux

Если файл /etc/selinux/config был изменен, необходимо перезагрузить систему, чтобы изменения вступили в силу. Итак, после изменения этого файла перезагрузите сервер

После перезагрузки проверьте состояние SELinux

Заключение

В этом руководстве мы узнали, что SELinux является важной частью повышения безопасности серверов Linux. Вместо этого вы можете использовать SELinux в режиме Permissive, а не в состоянии Disabled. Или вы также можете изменить отдельный домен, чтобы он находился в разрешительном режиме, а не вносить общесистемные изменения.

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

Ссылки

Похожие сообщения

Не нашли то, что искали? Выполните быстрый поиск в GoLinuxCloud

Если мои статьи о GoLinuxCloud помогли вам, пожалуйста, купите мне кофе в знак признательности.

Для любых других отзывов или вопросов вы можете использовать раздел комментариев или форму обратной связи.

SELinux обеспечивает дополнительный уровень безопасности ресурсов в системе. Он обеспечивает MAC (обязательный контроль доступа) в отличие от DAC (дискреционный контроль доступа). Прежде чем мы углубимся в настройку режимов SELinux, давайте посмотрим, каковы различные режимы работы SELinux и как они работают. SELinux может работать в любом из трех режимов:

<р>1. Принудительно: действия, противоречащие политике, блокируются, и соответствующее событие регистрируется в журнале аудита.
2. Разрешающий: действия, противоречащие политике, регистрируются только в журнале аудита.
3. Отключено: SELinux полностью отключен.

Временное переключение режимов SELinux

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

0 –> Разрешающий
1 –> Принудительный

Или вы можете просто вывести значения в псевдофайл — /sys/fs/selinux/enforce или /selinux/enforce.

Чтобы проверить текущий режим SELinux:

или мы также можем использовать команду sestatus для получения подробного статуса:

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

Использование файла /etc/sysconfig/selinux
Один из способов навсегда изменить режим SELinux на Enforcing или Permissive — отредактировать файл /etc/sysconfig/selinux и установить для параметров SELINUX либо принудительное или разрешительный.

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

Использование параметров загрузки ядра
Мы также можем использовать параметр загрузки ядра при загрузке, чтобы установить режим SELinux. Для этого отредактируйте файл /etc/grub.conf и добавьте параметр «selinux=1 enforcing=[0|1]» в параметры загрузки.

selinux=1 –> включить SELinux
enforcing=0 –> разрешающий режим
enforcing=1 –> принудительный режим

Отключение SELinux

Иногда, если вы плохо знакомы с функциями SELinux, лучше его отключить. Мы не можем отключить SELinux без перезагрузки. Альтернативным вариантом может быть установка SELinux в Permissive режиме. Чтобы полностью отключить SELinux, отредактируйте файл конфигурации /etc/sysconfig/selinux или /etc/selinux/config, который является программной ссылкой на файл /etc/sysconfig/selinux.

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

SELinux расшифровывается как Security-Enhanced Linux, где это модуль безопасности ядра Linux. Он включен по умолчанию в большинстве дистрибутивов Linux, которые мы используем для таких серверов, как CentOS. Он обеспечивает расширенные измерения безопасности. Это дает вам полный контроль над всеми программами и демонами в их действиях, таких как взаимодействие с внешними программами или контроль над установлением внешних соединений для конкретной программы.

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

Для запроса текущего состояния SELinux используйте следующие команды

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

Отключение SELinux

Откройте файл /etc/selinux/config и измените параметр SELINUX на отключено

.

если вы откроете файл, вы увидите что-то вроде

Если SELinux включен, вы увидите, что enforced заменяет его на disabled.

Чтобы изменения вступили в силу, необходимо перезагрузить компьютер. Если вы измените статус SELINUX с Enabled на Disabled или наоборот.

Включение SELInux

Чтобы включить SELinux, следуйте приведенным ниже инструкциям.

Изменить режим

Чтобы изменить режим работающего SELinux

Проверить статус

SELinux — это модуль ядра Linux для повышения безопасности. SELinux расшифровывается как Security-Enhanced Linux. Если SELinux установлен на вашем компьютере или сервере, вы можете проверить текущий статус с помощью следующих команд

Приведенная выше команда выдаст вам один из следующих результатов

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

Если включено, вы выведете что-то вроде

Вы также можете проверить конфигурацию, расположенную по адресу /etc/selinux/config.

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

*Примечание: вам нужны права администратора, чтобы включить или отключить SELinux

SELinux — это средство принудительного контроля доступа (MAC), встроенное в ядро ​​Linux. Он ограничивает привилегии отдельных служб, уязвимости которых могут представлять угрозу для системы.

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

Зачем отключать SELinux?

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

  • Доступ к учетной записи пользователя с правами sudo
  • Доступ к терминалу/командной строке
  • Система на основе RHEL, например CentOS 7.
  • Текстовый редактор, например nano или vim

Шаги по отключению SELinux в CentOS

Шаг 1. Проверьте статус SELinux

Служба SELinux включена по умолчанию в CentOS и большинстве других систем на базе RHEL. Однако это может быть не так для вашей системы.

Начните с проверки состояния SELinux в вашей системе с помощью команды:

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

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

  • Файл неправильно помечен.
  • Несовместимое приложение пытается получить доступ к запрещенному файлу.
  • Служба работает с неверной политикой безопасности.
  • Обнаружено вторжение.

Если вы заметили, что службы работают неправильно, проверьте файлы журналов SELinux. Журналы находятся в /var/log/audit/audit.log. Наиболее распространенные сообщения журнала помечены «AVC». Если вы не можете найти журналы, попробуйте поискать в /var/log/messages. Система записывает журналы в этот файл, если демон auditd не запущен.

Шаг 2. Отключите SELinux

Вариант 1: временно отключить SELinux

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

В sudo setenforce 0 вместо 0 можно использовать permissive.

Эта команда изменяет режим SELinux с целевого на разрешающий.

В разрешающем режиме служба активна и проверяет все действия. Однако он не применяет никаких политик безопасности. Система регистрирует сообщения AVC.

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

Вариант 2: навсегда отключить SELinux

Чтобы навсегда отключить службу, используйте текстовый редактор (например, vim или nano) и отредактируйте файл /etc/sysconfig/selinux, как указано ниже.

<р>1. Откройте файл /etc/sysconfig/selinux. Мы будем использовать вим. Если вы не знакомы с текстовыми редакторами, обратитесь к нашему руководству по сохранению и закрытию файла vim.

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

<р>2. Измените директиву SELINUX=enforcing на SELINUX=disabled.

<р>3. Сохраните отредактированный файл.

Перезагрузите CentOS, чтобы сохранить изменения

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

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

Статус должен быть отключен, как показано на изображении выше. Система не будет загружать какие-либо политики SELinux или вести какие-либо журналы AVC.

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

Читайте также: