Настройка Selinux Centos 7
Обновлено: 21.11.2024
В следующих разделах представлен краткий обзор основных пакетов SELinux в Red Hat Enterprise Linux; установка и обновление пакетов; какие файлы журналов используются; основной файл конфигурации SELinux; включение и выключение SELinux; режимы SELinux; настройка логических значений; временное и постоянное изменение меток файлов и каталогов; переопределение меток файловой системы с помощью команды mount; монтирование томов NFS; и как сохранить контексты SELinux при копировании и архивировании файлов и каталогов.
4.1. Пакеты SELinux
При полной установке Red Hat Enterprise Linux пакеты SELinux устанавливаются по умолчанию, если только они не были исключены вручную во время установки. При выполнении минимальной установки в текстовом режиме пакеты policycoreutils-python и policycoreutils-gui не устанавливаются по умолчанию. Кроме того, по умолчанию SELinux работает в принудительном режиме, и используется целевая политика SELinux. Следующие пакеты SELinux установлены в вашей системе по умолчанию:
policycoreutils предоставляет такие утилиты, как restorecon , secon , setfiles , semodule , load_policy и setsebool для работы и управления SELinux.
libselinux-utils предоставляет утилиты avcstat, getenforce, getsebool, matchpathcon, selinuxconlist, selinuxdefcon, selinuxenabled и setenforce.
Следующие пакеты не устанавливаются по умолчанию, но их можно установить дополнительно, запустив yum install
selinux-policy-doc содержит справочные страницы, описывающие, как настроить SELinux вместе с различными службами.
setroubleshoot-server переводит сообщения об отказе, выдаваемые SELinux, в подробные описания, которые можно просмотреть с помощью утилиты sealert, также входящей в этот пакет.
setools-console предоставляет дистрибутив Tresys Technology SETools, ряд утилит и библиотек для анализа и запроса политик, мониторинга журналов аудита и составления отчетов, а также управления контекстом файлов. Пакет setools — это метапакет для SETools. Пакет setools-gui содержит утилиты apol и seaudit. Пакет setools-console содержит утилиты командной строки sechecker, sediff, seinfo, sesearch и findcon. Информацию об этих утилитах см. на странице Tresys Technology SETools. Обратите внимание, что пакеты setools и setools-gui доступны, только если включен дополнительный канал Red Hat Network. Дополнительную информацию см. в разделе Сведения об объеме покрытия.
mcstrans переводит уровни, такие как s0-s0:c0.c1023 , в более удобную для чтения форму, например SystemLow-SystemHigh .
policycoreutils-python предоставляет такие утилиты, как semanage , audit2allow , audit2why и chcat , для работы и управления SELinux.
SELinux — это механизм безопасности, встроенный в ядро Linux. Дистрибутивы Linux, такие как CentOS, RHEL и Fedora, по умолчанию оснащены SELinux.
SELinux повышает безопасность сервера, ограничивая и определяя, как сервер обрабатывает запросы, а пользователи взаимодействуют с сокетами, сетевыми портами и важными каталогами.
Например, если неавторизованный пользователь получает доступ, доступ к серверу ограничивается определенным разделом, что ограничивает ущерб, вызванный утечкой данных. SELinux также может препятствовать установке пакетов программного обеспечения или прерывать процессы во время обычного использования.
Прочитайте это краткое руководство, чтобы узнать, как включить SELinux в CentOS 7.
- Учетная запись пользователя с правами sudo
- Доступ к терминалу/консоли
- Система на основе RHEL, например CentOS 7.
- Текстовый редактор, например nano
Режимы SELinux
SELinux имеет 3 режима.
- Принудительный режим. Это режим по умолчанию. Он блокирует и регистрирует действия, противоречащие определенной политике.
- Разрешающий режим: разрешает выполнение действий и подробно регистрирует события. Этот режим полезен при тестировании возможностей SELinux. Изменение режима между принудительным и разрешительным не требует перезагрузки системы.
- Отключенный режим: разрешены все действия и не регистрируются никакие действия. Для перехода в этот режим требуется перезагрузка системы. Узнайте больше об отключении SELinux.
Проверка состояния SELinux
Чтобы проверить текущие настройки, введите в терминале следующую команду:
Вывод подтверждает, что SELinux отключен.
Как включить SELinux
Чтобы включить SELinux, выполните следующие действия:
<р>1. Нам нужно изменить статус службы в файле /etc/selinux/config.Используйте текстовый редактор, например Nano.Например, используя nano, откройте файл с помощью команды:
<р>2. Теперь вы можете изменить режим SELinux на принудительный или разрешающий.Измените выделенную строку в нужный вам режим.
<р>3. Затем нажмите CTRL + X, чтобы сохранить изменения и выйти из режима редактирования. Нажмите «y» и нажмите Enter для подтверждения.
<р>4. Для перезагрузки введите: <р>5. Чтобы проверить состояние SELinux, еще раз введите sestatus в командной строке.Теперь результат подтверждает, что служба включена и находится в принудительном режиме.
Изменить режим SELinux
Вместо того, чтобы полностью отключать SELinux, рекомендуется установить разрешающий режим. Когда действия происходят, они оставляют след в файле журнала.
Примечание. По умолчанию сообщения журнала SELinux находятся в файле /var/log/audit/audit.log.
Чтобы изменить режим с принудительного на разрешающий, введите:
Чтобы снова включить режим принудительного применения, введите:
Эти изменения применяются только к текущему сеансу. Они возвращаются к значениям по умолчанию после перезагрузки. Чтобы сделать изменения постоянными, отредактируйте файл конфигурации с помощью текстового редактора, как описано выше.
Теперь вы знаете, как включить SELinux в CentOS 7. Начните защищать свои серверы уже сегодня.
Владимир является постоянным техническим писателем в phoenixNAP. Он имеет более чем 7-летний опыт внедрения решений для электронной коммерции и онлайн-платежей с различными глобальными поставщиками ИТ-услуг. Его статьи призваны привить другим страсть к инновационным технологиям, давая практические советы и используя увлекательный стиль письма.
SELinux — это средство принудительного контроля доступа (MAC), встроенное в ядро Linux. Это ограничивает привилегии.
Хакеры всегда ищут уязвимости серверов. Минимизируйте риски и будьте уверены в безопасности ваших данных.
Растущие потребности в экстремальных вычислительных мощностях привели к неизбежному появлению серверов без ПО.
MySQL – это инструмент сервера реляционных баз данных с открытым исходным кодом для операционных систем Linux. Он широко используется в.
SELinux повысит безопасность сервера, что обеспечит повышенную безопасность для систем Linux. В ядре Linux, где SELinux имеет встроенный механизм безопасности, дистрибутивы Linux, такие как CentOS, RHEL и Fedora, оснащены SELinux по умолчанию.
Если вы настроите SELinux, который поможет в устранении неполадок с доступом к сообщению об ошибке, это значительно уменьшит риск безопасности. SELinux ограничивает обработку сервером запросов и взаимодействие пользователей с сокетами, сетевыми портами и другими важными каталогами.
Из этого блога вы получите четкое представление об этапах настройки SELinux на CentOS в рамках нашего плана управления сервером. Вы также можете получить помощь от нашей технической поддержки 24/7 для дальнейшей миграции и настройки
Почему важно настроить SELinux на CentOS 7
Прежде чем приступить к настройке SElinux на CentOS 7, давайте взглянем на причину установки SELinux.
SELinux реализует обязательный контроль доступа (MAC). В каждом дискреционном контроле доступа (DAC) и дистрибутиве Linux эта реализация всегда на высоте.
В более ранней традиционной модели безопасности предполагается наличие трех объектов, т. е. (u,g,o)Пользователь, Группа и Другое с комбинацией разрешений на чтение, запись и выполнение (r,w,x) в файле.< /p>
Если пользователи создали файл в домашнем каталоге, где пользователь может получить доступ для чтения/записи к этой конкретной группе, а другие записи будут запрещены.
Используйте следующую команду, чтобы проверить содержимое в домашнем каталоге.
Здесь вы можете предоставить или запретить доступ к файлу другим пользователям или группе.
Однако с помощью SELinux мы можем определить, что может делать пользователь или процесс.
Где он привязывает каждый процесс к своему домену, из-за чего процесс взаимодействует только с определенными типами файлов из разрешенного домена.
Мы используем тестовый сервер, на котором работает как веб-сервер, так и сервер SFTP.
Сначала установите Centos 7 с минимальным пакетом, а также установите демоны Apache и vsftp.
Однако мы не будем настраивать ни одно из этих приложений.
Сначала создайте тестовую учетную запись пользователя на облачном сервере, а затем установите пакеты, связанные с SELinux.
Установка Apache и служб SFTP
Во-первых, вам нужно войти на сервер как пользователь root и выполнить команду для установки Apache:
Используйте следующие команды для запуска демона вручную.
Позже попробуйте установить vsftp:
Установка пакетов SELinux
В SELinux есть множество пакетов, некоторые из которых установлены по умолчанию. Отображает список дистрибутивов на основе Red Hat.
Выполните команды, чтобы проверить, установлены ли пакеты SELinux в CentOS7.
Если вы не установили все пакеты, используйте следующую команду с именем пакета.
Режимы SELinux
SELinux будет доступен в следующих трех возможных режимах
В этом принудительном режиме пользователю с несанкционированным доступом будет отказано. Отказы в доступе записываются в соответствующие файлы журнала.
Разрешающий режим подобен полуактивному состоянию, в котором он не будет запрещать любой доступ к любой политике насилия, которая может быть зарегистрирована в журналах аудита.
Поэтому обязательно протестируйте SELinux, прежде чем применять его.
главные режимы и статус SELinux
Чтобы проверить текущий режим SELinux, вам нужно запустить команду getenforce
вы можете запустить команду sestatus:
Файл конфигурации SELinux
Основной файл конфигурации для SELinux — /etc/selinux/config.
Чтобы просмотреть содержимое, выполните команду.
Включить SELinux просто, но его отключение можно выполнить в два этапа. Убедитесь, что SELinux в данный момент отключен.
Во-первых, нам нужно отредактировать файл /etc/selinux/config, чтобы изменить директиву SELINUX на разрешающий режим.
Используйте следующие команды для перезагрузки системы
Выполните поиск строки после повторного входа на сервер с правами root.
"SELinux препятствует" содержимому файла /var/log/messages.
Выполните команду:
Если такой ошибки не возникает, переходите к следующему шагу.
Однако мы можем сразу искать текст, содержащий «SELinux», в файле /var/log/messages.
Выполните команду:
Если вы получаете какие-либо ошибки следующего типа, мы можем их игнорировать.
22 марта 11:31:02 ядро локального хоста: SELinux: инициализация.
22 марта 11:31:17 ядро локального хоста: SELinux: отключено во время выполнения.
22 марта, 11:31:22, журнал localhost: невозможно найти контекст процесса SELinux: неверный аргумент
22 марта 11:33:20 localhost gnome-session: Средство устранения неполадок SELinux: для запуска апплета требуется, чтобы SELinux был включен.
22 марта 11:37:16 ядро локального хоста: SELinux: Инициализация.
22 марта, 11:37:18 ядро локального хоста: SELinux: отключено во время выполнения.
22 марта, 11:37:24, журнал localhost: невозможно найти контекст процесса SELinux: недопустимый аргумент
20 августа, 11:37:45 localhost gnome-session: Средство устранения неполадок SELinux: для запуска апплета требуется, чтобы SELinux был включен.
Мар 22:11:39:43 ядро локального хоста: SELinux: Инициализация.
22 марта, 11:39:45 ядро локального хоста: SELinux: отключено во время выполнения.
22 марта, 11:39:51, журнал localhost: невозможно найти контекст процесса SELinux: неверный аргумент
Это происходит, когда SELInux был отключен или находился в разрешительном режиме.
На втором этапе измените директиву SELINUX с разрешающей на принудительную, отредактировав файл конфигурации в файле /etc/sysconfig/selinux:
Выполните команду для перезагрузки сервера
Запустите команду sestatus, когда сервер подключится к сети, чтобы проверить статус SELinux.
Используйте команду для проверки файла var/log/messages
Следующее будет выведено без ошибок.
- Проверка режимов и состояния SELinux (еще раз)
Чтобы проверить режим SELinux, запустите команду getenforce.
Если система работает в принудительном режиме, вы увидите следующий вывод.
Вывод будет другим, если SELinux отключен:
Чтобы получить лучшее изображение, запустите команду sestatus
Когда SELinux отключен, в выводе будет указано:
Статус SELinux: отключен
Используйте команду setenforce для временного переключения принудительного и разрешающего режимов.
Примечание: вы не сможете запустить setenforce, если SELinux отключен.
Используйте команду, чтобы изменить режим SELinux с принудительного на разрешительный в CentOS 7.
Запуск команды sestatus покажет разницу между текущим режимом и режимом, определенным в файле конфигурации.
Выполните команду, чтобы вернуться к принудительному применению
Заключение
Короче говоря, следуйте инструкциям по настройке SELinux на CentOS 7. Где SELinux повысит безопасность сервера, что обеспечит повышенную безопасность для систем Linux.
Разработанный АНБ для предотвращения злонамеренного доступа и вторжений, Security-Enhanced Linux или SELinux представляет собой расширенную функцию контроля доступа, которая поставляется с большинством современных дистрибутивов Linux. SELinux определяется как система обязательного контроля доступа (MAC), разработанная в качестве замены системы дискреционного контроля доступа (DAC).
SELinux может показаться пугающим и очень трудным для реализации в большинстве современных систем.Однако настройка SELinux дает огромные преимущества как в обеспечении безопасности, так и в устранении неполадок.
В этом руководстве обсуждаются различные концепции, реализованные в SELinux, и исследуются различные практические методы реализации SELinux.
ПРИМЕЧАНИЕ. Прежде чем мы начнем, рекомендуется использовать команды из этого руководства в качестве пользователя root или пользователя в группе sudoers.
Установка пакетов SELinux
Давайте установим различные пакеты SELinux, которые в свою очередь помогут работать с политиками SELinux.
Прежде чем мы приступим к установке пакетов SELinux, хорошо бы проверить, какие из них установлены в текущей системе.
В большинстве дистрибутивов REHL некоторые пакеты устанавливаются по умолчанию. Эти пакеты включают:
- setools — этот пакет используется для мониторинга журналов, политик запросов и управления контекстными файлами.
- policycoreutils-python – содержит базовые утилиты Python для управления SELinux.
- policycoreutils — этот пакет также содержит утилиты для управления SELinux.
- mcstrans — mcstrans предоставляет демон перевода SELinux, который переводит различные уровни в простые форматы, которые легко понять.
- setools-console — аналогично setools.
- Selinux-policy — ссылка для настройки политики SELinux.
- Selinux-policy-targeted — аналогично SELinux-policy
- Libselinux-utils — утилиты SELinux libselinux, помогающие управлять SELinux
- Setroubleshoot-server — инструменты для устранения неполадок SELinux
Чтобы проверить, какие пакеты уже установлены в вашей системе, вы можете использовать команду rpm –qa и передать результат в grep для SELinux следующим образом:
об/мин –qa | grep selinux
libselinux-utils- 2.9 - 4 .el8_3.x86_64
rpm-plugin-selinux-4.14.3- 4 .el8.x86_64
selinux-policy-targeted-3.14.3- 54 .el8_3.2.noarch
python3-libselinux- 2.9 - 4 .el8_3.x86_64
selinux-policy-3.14.3- 54 .el8_3.2.noarch
libselinux- 2.9 - 4 .el8_3.x86_64
Это должно дать вам вывод всех пакетов, установленных для поддержки SELinux
Если в вашей системе установлены не все пакеты SELinux, используйте yum для их установки, как показано в приведенной ниже команде:
yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans
Режимы и состояния SELinux
Теперь давайте поиграем с SELinux, а именно с режимами SELinux.
Режимы SELinux
При включении SELinux может работать в трех возможных режимах:
- Принудительное выполнение
- Разрешающий
- Отключено
Принудительный режим
Если принудительно применить режим SELinux, это гарантирует, что не будет запрещен несанкционированный доступ к системе со стороны любого пользователя или процесса. В принудительном режиме также ведется журнал любых попыток несанкционированного доступа.
Разрешающий режим
Разрешающий режим действует как частично включенное состояние SELinux. В этом режиме доступ не запрещен, так как SELinux не применяет свои политики в этом режиме. Однако разрешающий режим ведет журнал любых попыток нарушения политики. Этот режим очень эффективен для тестирования перед его полным включением, так как пользователи и компоненты могут по-прежнему взаимодействовать с системой, но при этом собирать журналы. Это позволит вам настроить систему так, как вы считаете нужным.
Отключенный режим
Отключенный режим также можно рассматривать как отключенное состояние, в котором SELinux отключен и не обеспечивает никакой безопасности.
Состояния SELinux
После установки SELinux в системе. Он может иметь бинарные состояния: включено и отключено. Чтобы просмотреть состояние SELinux, используйте команду:
Приведенный выше вывод показывает, что SELinux в настоящее время отключен.
Вы также можете использовать команду sestatus, как показано ниже:
Включить и отключить SELinux
Состояния и конфигурация SELinux обрабатываются файлом конфигурации, расположенным в /etc/selinux/config. Вы можете использовать команду cat для просмотра его содержимого.
Из приведенного выше вывода у нас включены две основные директивы. Директива SELINUX указывает режим, в котором настроен SELinux. Директива SELINUXTYPE указывает набор политик SELinux. По умолчанию SELinux использует целевую политику, позволяющую настраивать права доступа. Другая политика — Многоуровневая безопасность или MLS.
Вы можете найти минимальную политику в некоторых версиях.
cd /etc/selinux/
[ ls -l
всего 4
-rw-r--r-- 1 root root 548 Feb 16 22 : 40 config
drwxr-xr-x 1 root root 4096 16 февраля 22 : 43 mls
-rw-r--r-- 1 root root 2425 21 июля 2020 г. semanage.conf
drwxr-xr-x 1 root root 4096 16 фев 22 : 40 целевой
Теперь посмотрим, как включить SELinux в системе. Мы рекомендуем сначала установить для режима SELINUX разрешающий, а не принудительный режим.
Теперь отредактируйте директиву SELINUX следующим образом:
После сохранения файла перезагрузите систему.
ПРИМЕЧАНИЕ. Мы настоятельно рекомендуем установить разрешающую директиву SELINUX перед применением SELinux.
После перезагрузки системы проверьте наличие журналов, сообщаемых SELinux, в /var/log/messages.
Затем убедитесь, что у вас нет ошибок, и примените SELinux, установив директиву для принудительного применения в /etc/selinux/config
Наконец, вы можете просмотреть статус SELinux с помощью команды sestatus:
Статус SELinux: включен
Подключение SELinuxfs: /sys/fs/selinux
Корневой каталог SELinux: /etc/selinux
Имя загруженной политики: target
Текущий режим: enforcing < br />Режим из конфигурационного файла: ошибка (успешно)
Статус политики MLS: включен
Статус политики deny_unknown: разрешен
Проверка защиты памяти: актуальная (безопасная)
Максимальная версия политики ядра : 31
Вы также можете использовать команду setenforce для переключения между различными режимами SELinux. Например, чтобы установить разрешающий режим, используйте команду:
Этот режим является временным и будет восстановлен в файле конфигурации после перезагрузки.
Статус SELinux: включен
Подключение SELinuxfs: /sys/fs/selinux
Корневой каталог SELinux: /etc/selinux
Имя загруженной политики: target
Текущий режим: permissive < br />Режим из конфигурационного файла: принудительное
Статус политики MLS: включен
Статус политики deny_unknown: разрешен
Проверка защиты памяти: актуальная (безопасная)
Максимальная версия политики ядра: 31< /p>
Политика и контекст SELinux
Чтобы не запутать новичков в SELinux, мы не будем углубляться в реализацию политик SELinux, а просто коснемся этого, чтобы дать вам представление.
SELinux реализует политики безопасности. Политика SELinux относится к правилу, которое используется для определения прав доступа для каждого объекта в системе. Объекты относятся к пользователям, процессам, файлам и ролям.
Каждый контекст определяется в виде пользователь:роль:тип:уровень.
Например, создайте каталог в своем домашнем каталоге и просмотрите его контекст безопасности SELinux, как показано в приведенных ниже командах:
Это отобразит выходные данные, как показано ниже:
Вы также можете найти другие каталоги с такими контекстами безопасности, как:
Вы можете понять, что приведенный выше вывод соответствует синтаксису пользователь:роль:тип:уровень.
Заключение
Это был учебник для начинающих по SELinux с использованием CentOS 8. Хотя учебник предназначен для начинающих, его более чем достаточно, чтобы начать работать с SELinux и избавиться от пугающей природы SELinux.
Спасибо, что прочитали.
Об авторе
Джон Отиено
Меня зовут Джон, и я такой же гик, как и вы. Я увлечен всеми вещами компьютеров от аппаратного обеспечения, операционных систем до программирования. Моя мечта — поделиться своими знаниями с миром и помочь другим гикам. Следите за моим контентом, подписавшись на список рассылки LinuxHint
Читайте также: