Selinux ubuntu не включается

Обновлено: 05.07.2024

check-selinux-installation command gives following output ../proc/1 kernel..

SELinux is not enabled. The init process (PID 1) is running in an incorrect domain. /etc/pam.d/login is not SELinux enabled FSCKFIX is not enabled - not serious, but could prevent system from booting. udev will create nodes not labeled correctly

101 1 1 gold badge 1 1 silver badge 5 5 bronze badges check-selinux-installation command gives following output ../proc/1 kernel.. SELinux is not enabled. The init process (PID 1) is running in an incorrect domain. /etc/pam.d/login is not SELinux enabled FSCKFIX is not enabled - not serious, but could prevent system from booting. udev will create nodes not labeled correctly Have you rebooted the machine after installing SELinux ? May be this problem possible because in Debian Jessie there not exist a selinux-policy-default?

2 Answers 2

This error might be because you are running AppArmor along with SELinux. AppArmor is installed by default in Ubuntu. You can't use 2 LSM (Linux security modules) at the same time. You need to remove AppArmor if you wish yo use SELinux


check-selinux-installation gives following error getfilecon: getfilecon(/proc/1) failed SELinux is not enabled. Could not read the domain of PID 1. /etc/pam.d/login is not SELinux enabled FSCKFIX is not enabled - not serious, but could prevent system from booting. udev will create nodes not labeled correctly FSCKFIX probelm is fixed. now when I run check-selinux-installation command. It gives following error. .. /proc/1 kernel. The init process (PID 1) is running in an incorrect domain. I am not able to enable SELINUX(I installed 3.9 kernel also). Please help. There is one more probelm that /selinux folder is empty. How can I get it contents back as without it i can get my system booted once I enable SELINUX. Please help

An absurdly old question, but it helped me track my problem down partially, so I'm adding another response.

Not only do you need to remove AppArmor like cioby23 says, but there are some extra steps received from the upstream Debian that aren't well documented at all. Here are the commands to convert a standard Ubuntu system (16.04.6 for me) to use SELinux in Permissive mode using the standard provided packages:

EDIT1: Update language to avoid confusion on policy naming.
EDIT2: Split up the commands with better descriptions for each

Favorite

Добавить в избранное

Главное меню » CentOS » Как установить SELinux в разрешающий режим

Как установить SELinux в разрешающий режим

S ELinux или Linux с повышенной безопасностью, т. е. механизм безопасности систем на базе Linux по умолчанию работает на основе обязательного контроля доступа (MAC). Для реализации этой модели управления доступом SELinux использует политику безопасности, в которой явно указаны все правила, касающиеся управления доступом. На основе этих правил SELinux принимает решения относительно предоставления или запрета доступа к любому объекту пользователю.

В сегодняшней статье мы хотели бы поделиться с вами методами установки SELinux в «Permissive» режим после ознакомления с его важными деталями.

Что такое режим Permissive в SELinux?

«Permissive» режим также является одним из трех режимов, в которых работает SELinux, т. е. «Enforcing», «Permissive» и «Disabled». Это три конкретные категории режимов SELinux, тогда как в целом мы можем сказать, что в любом конкретном случае SELinux будет либо «включен», либо «отключен». Оба режима «Enforcing» и «Permissive» подпадают под категорию «Включено». Другими словами, это означает, что всякий раз, когда SELinux включен, он будет работать либо в принудительном, либо в разрешающем режиме.

Вот почему большинство пользователей путаются между режимами «Enforcing» и «Permissive», потому что, в конце концов, оба они подпадают под категорию «Включено». Мы хотели бы провести четкое различие между ними, сначала определив их цели, а затем сопоставив их с примером. «Enforcing» режим работает путем реализации всех правил, изложенных в политике безопасности SELinux. Он блокирует доступ всех пользователей, которым запрещен доступ к определенному объекту в политике безопасности. Более того, это действие также регистрируется в файле журнала SELinux.

С другой стороны, «Permissive» режим не блокирует нежелательный доступ, а просто записывает все такие действия в файл журнала. Поэтому этот режим в основном используется для отслеживания ошибок, аудита и добавления новых правил политики безопасности. Теперь рассмотрим пример пользователя «A», который хочет получить доступ к каталогу с именем «ABC». В политике безопасности SELinux упоминается, что пользователю «A» всегда будет отказано в доступе к каталогу «ABC».

Читать Как решить ошибку “Could not open lock file /var/lib/dpkg/lock-frontend”

Теперь, если ваш SELinux включен и работает в режиме «Enforcing», то всякий раз, когда пользователь «A» будет пытаться получить доступ к каталогу «ABC», в доступе будет отказано, и это событие будет записано в файл журнала. С другой стороны, если ваш SELinux работает в «Permissive» режиме, то пользователю «A» будет разрешен доступ к каталогу «ABC», но все же это событие будет записано в файл журнала, чтобы администратор может знать, где произошло нарушение безопасности.

Способы установки SELinux в Permissive режим в CentOS 8

Теперь, когда мы полностью поняли назначение «Permissive» режима SELinux, мы можем легко поговорить о методах установки режима «Permissive» SELinux в CentOS 8. Однако, прежде чем переходить к этим методам, всегда полезно проверьте состояние SELinux по умолчанию, выполнив следующую команду в своем терминале:

Метод временной установки SELinux в Permissive режим в CentOS 8

Временная установка SELinux в режим «Permissive» означает, что этот режим будет включен только для текущего сеанса, и, как только вы перезапустите свою систему, SELinux вернется в свой режим работы по умолчанию, то есть в режим «Enforcing». Для временной установки SELinux в режим «Permissive» вам необходимо выполнить следующую команду на вашем терминале CentOS 8:

Устанавливая значение флага «setenforce» на «0», мы по существу меняем его значение на «Permissive» с «Enforcing». Выполнение этой команды не приведет к отображению каких-либо выходных данных.

Теперь, чтобы проверить, установлен ли SELinux в режим «Permissive» в CentOS 8 или нет, мы запустим следующую команду в терминале:

Выполнение этой команды вернет текущий режим SELinux, и это будет «Permissive», как показано на изображении, показанном ниже. Однако, как только вы перезагрузите свою систему, SELinux вернется в режим принудительного выполнения.

Метод постоянной установки SELinux в Permissive режим в CentOS 8

В методе №1 мы уже указали, что следование описанному выше методу только временно установит SELinux в режим «Permissive». Однако, если вы хотите, чтобы эти изменения присутствовали даже после перезапуска системы, вам потребуется получить доступ к файлу конфигурации SELinux следующим образом:

Теперь вам нужно установить значение переменной «SELinux» на «permissive», как показано на следующем изображении, после чего вы можете сохранить и закрыть свой файл.

Теперь вам нужно еще раз проверить статус SELinux, чтобы узнать, был ли его режим изменен на «Permissive» или нет. Вы можете сделать это, выполнив следующую команду в своем терминале:

Вы можете видеть из выделенной части изображения, показанного ниже, что прямо сейчас только режим из файла конфигурации изменен на «Permissive», тогда как текущий режим все еще «Enforcing».

Теперь, чтобы наши изменения вступили в силу, мы перезапустим нашу систему CentOS 8, выполнив следующую команду в терминале:

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

Вывод:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Favorite

Добавить в избранное

Устранение неполадок в SELinux

Предпосылки

Эта статья предполагает две вещи:

  1. Вы знаете основы SELinux. Если вы не узнаете основы SELinux, сейчас прекрасное время, чтобы сделать это.
  2. Вы используете SELinux в режиме enforcing. Режим enforcing является нормальным и ожидаемым способом запуска Fedora. Если вы отключили SELinux, вам необходимо включить его. Отредактируйте файл /etc/sysconfig/selinux для установки SELINUX=permissive. Используя режим permissive гарантирует, что любые радикальные проблемы все еще могут быть исправлены автоматически с помощью следующих команд. Затем выполните следующие действия:

Не удивляйтесь, если вы начинаете видеть ошибки после того, как перемаркируете файлы, если вы уже работаете в режиме disabled некоторое время. Работа в режиме disabled, это как клеить обои через утечку. При удалении обоев, вы, вероятно, найти повреждение водой. Точно так же, если вы уже работаете без включенным SELinux, вы, вероятно, создали больше проблем, которые в настоящее время должны быть решены.

После того как машина перезагрузится, вы можете переключиться на режим enforcing:

Это действительно в selinux?

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

Затем попробуйте процесс снова, в другом терминале, если это необходимо. В случае успеха политики SELinux происходит ошибка. Чтобы найти ошибки в течение последних 10 минут, используйте команду ausearch:

Если процесс все еще не в режиме permissive, то проблема, скорее всего, не в политике SELinux. В этом случае убедитесь, в запуске sudo setenforce 1, чтобы вернуться в режим enforcing. Помните, этот параметр является глобальным.

Определение проблемы

Проблема также скажет вам контекст источника (scontext) действуя части вашей системы, и контекст цели (tcontext) вещи, котор она попыталась подействовать дальше. Часто, но не всегда, источник является бинарным и целевым файлом. Чтобы понять ошибки лучше, вы можете использовать SELinux Troubleshooter. Вы можете установить это с программным обеспечением инструмента в Fedora Workstation, или использовать sudo с dnf в терминале:

Для запуска программы используйте Обзор в Fedora Workstation, чтобы найти SELinux Troubleshooter, или запустить из терминала:

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

Устранение неполадок в SELinux

На этом экране, например, вы можете получить список всех предупреждений, присутствующие в системе, чтобы устранить их систематически.

Решение проблемы

При выборе неполадок вы увидите несколько вариантов вашей ошибки.

Устранение неполадок в SELinux

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

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

Примечание о булевых операциях в SELinux

Есть много доступных булевых операций. Каждый из них позволяет установить широкий класс доступа, который можно ожидать для функционирования приложения. Чтобы увидеть весь список и их текущие настройки, выполните следующую команду:

Если установить пакет selinux-policy-devel первым, вы также можете увидеть краткое описание для каждой булевой операции при выполнении команды выше:

Чтобы установить логическое временно запустить эту команду, где boolname это имя логического значения и value является либо on или 1, или off или 0.

Для того, чтобы установить его постоянно, добавьте переключатель -P:

Вывод

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

I am trying to install SELinux on Ubuntu 18.04, but after running the following commands Ubuntu can't boot.

loading start screen photo


93.8k 73 73 gold badges 222 222 silver badges 255 255 bronze badges


3 Answers 3

There's a permanent fix for it, You'll just need to press shift to boot in recovery mode then go to terminal then put disabled=1 then resume booting without a restart then go to /etc/selinux then go to the config file then default choice turn selinux=enforcing to selinux=disabled. There u go uve got ur machine booting again!

I've had a similar problem. In order to boot the machine, I stopped GRUB and edited the Ubuntu boot entry (press e ) and removed SELinux temporarily from the boot arguments, just as explained by @poige in his answer.

Since AppArmor and SELinux conflict, I suggest this procedure to disable apparmor and install more SELinux packages:

Remove apparmor from your system

Reboot (if you get stuck in boot again, edit the GRUB entry to boot)

Install SELinux with some auxiliary packages:

  • Note: After rebooting your system, SELinux should be enabled, but in permissive mode. Permissive mode means any actions that would have been disallowed are allowed, but logged in your system’s audit log located in the /var/log/audit/audit.log file.

After reboot, check that selinux is installed:

Now you should be able play with SELinux and change its settings to get your desired level of security. More info about this in Installing SELinux on Ubuntu 18.04.

9,336 3 3 gold badges 51 51 silver badges 90 90 bronze badges

Bad thing is Ubuntu is a bad choice for playing with SELinux — they pet Apparmor instead (which isn't up to SELinux' level with quite different approach, but that's another story).

The issue you've run into is easy to fix (that was good thing part):

  • During boot you'd need to get to GRUB's menu and edit kernel's parameter which enforces use of SELinux: selinux=1 .
  • Unset it with …=0 (IOW, replacing 1 with 0) and proceed with booting then.

At this point the system should be successfully booted but it's not all done yet.

— It's time to put long-term fix. May be uninstall SELinux? :) It might still be not enough though. Checkout /etc/default/grub with an sudo …YourEditor… and if you'd see there

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