CentOS Linux 8 зависает при изменении логических значений SELinux (setsebool)

Проблема

Различные серверы CentOS Linux 8 зависают/зависают при изменении логических значений SELinux.

Подробности и исследования

Мы управляем сотнями серверов CentOS Linux. В последнее время мы наблюдаем отклоняющееся поведение на некоторых (но не на всех) серверах при изменении логических значений SELinux. Сразу после команды изменения сервер полностью зависает, и ICMP/SSH/TTY вообще невозможны. Только простой цикл включения и выключения восстановит функциональность.

Объем:

  • Различные установки CentOS Linux 8 (8.1–8.3).
  • SELinux включен в принудительном режиме на всех серверах.
  • Не обнаружено согласованности, на каких серверах возникает эта проблема.
  • Проблема существует второстепенная версия для разных ОС.
  • Проблема существует в кросс-ядерных выпусках.

Что я пробовал

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

Последовательности, которые я пробовал (см. ниже), имеют в качестве примера логическое значение zabbix_run_sudo, но такое поведение применимо и к другим логическим значениям.

Использование setsebool

Выполнятьsetsebool zabbix_run_sudo onсразу зависает сервер. Ожидаемое поведение заключается в том, что команда выполняется максимум несколько секунд, а затем возвращается в оболочку. С использованиемstraceв этой команде показано, что этот инструмент изменяет псевдо-FS SELinux (/sys/fs/selinux) и на втором этапе сервер зависает.

Изменение псевдо-FS SELinux

При изменении псевдо-FS SELinux вручную, отображая 1 в некоторых путях, я могу имитировать использование предыдущего протестированногоsetseboolинструмент. Эти шаги также описаны на веб-сайте «Дневник компьютерщика»: https://www.thegeekdiary.com/understanding-selinux-booleans/.

Проверенные шаги:

  1. echo 1 > /sys/fs/selinux/booleans/zabbix_run_sudo(без проблем)
  2. echo 1 > /sys/fs/selinux/commit_pending_bools(зависает сервер)

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

Любая помощь по отладке и устранению этой проблемы приветствуется!

0 ответов

Другие вопросы по тегам