→ SELinux - теория. Настройка SELinux, включение, отключение Что необходимо чтобы отключить защиту в Android

SELinux - теория. Настройка SELinux, включение, отключение Что необходимо чтобы отключить защиту в Android

Security- Enhanced Linux (SELinux) является особенностью механизма в Linux, что обеспечивает поддержку политик безопасности контроля доступа.

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

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

SELinux будет применять политики безопасности в том числе обязательного контроля доступа который определен в Linux Kernel. Каждые файлы и процессы в системе будут помечены определенными ярлыками, которые будут использоваться в SELinux. Вы можете использовать команду и просматривать эти ярлыки, как показано ниже:

# ls -Z /etc/

Это не полный список который я привел, он может быть другой у вас.

1-й метод отключения SELinux на CentOS. Временно.

Чтобы отключить SELinux временно необходимо изменить /selinux/enforce, как показано ниже. Обратите внимание, что этого параметра уже не будет после перезагрузки системы.

И так, проверим какое состояние имеет SELinux на сервере:

# cat /selinux/enforce 1

Или, можно использовать:

# /usr/sbin/sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: permissive Mode from config file: enforcing Policy version: 24 Policy from config file: targeted

Это означает что он включен. Чтобы выключить, используем следующую команду:

# echo 0 > /selinux/enforce

И, снова проверяем:

# cat /selinux/enforce 0

Возможные параметры для setenforce являются:

  • 1 (включить).
  • 0 (отключить).

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

# setenforce 0

Или, предоставлю еще один вариант использования:

# setenforce Permissive

PS: Для проверки, служит еще одна замечательная команда:

# getenforce Permissive

2-й метод отключения SELinux на CentOS. Раз и навсегда!

Проверим состояние SELinux на CentOS.

# cat /etc/selinux/config

У меня он включен, я хочу его выключить, то для этого нужно открыть конфиг и прописать:

# vim /etc/selinux/config

Нужно найти:

SELINUX=enabled

Заменить на:

Как показано на следующем скриншоте:

После чего нужно перезапустить нашу ОС:

# reboot

3-й метод. Отключение SELinux в самом загрузчике Grub.

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

# cat /boot/grub/grub.conf

4-й метод. Отключение только конкретной услуги в SELinux — HTTP / Apache

Если вы не заинтересованы в отключении всего SELinux, вы также можете отключить SELinux только для конкретной услуги. Например, вы хотите отключить SELinux для обслуживания HTTP / Apache, то нужно изменить переменную httpd_disable_trans в файле /etc/selinux/targeted/booleans.

SELinux (Security-Enhanced Linux) - это система принудительного контроля доступа, она может работать параллельно со стандартной классической системой контроля доступа в linux. SELinux может создавать правила обращения пользователям или программам, что дает возможность ограничить некоторые возможности доступа им. В данной материале описано как задать различные режимы работы подсистемы защиты или просто выключить её в ОС Linux.

Статус SELinux

Команды /usr/sbin/getenforce и /usr/sbin/sestatus используются для проверки текущего статуса SELinux. Команда getenforce возвращает значение Enforcing , Permissive , или Disabled . Команда getenforce возвращает Enforcing когда SELinux активирован (правила политики SELinux принудительные):

# /usr/sbin/getenforce Enforcing

Команда getenforce возвращает Permissive когда SELinux активирован, но правила политики SELinux не принудительные enforced, и используются только правила DAC. Команда getenforce возвращает Disabled , если SELinux отключен.

Команда sestatus возвращает статус SELinux и используемой политики SELinux:

# /usr/sbin/sestatus

Значение SELinux status: enabled возвращается, когда SELinux включен. Current mode: enforcing возвращается, когда SELinux включен в принудительном enforced режиме. Policy from config file: targeted возвращается, когда используется политика SELinux targeted.

Управление SELinux

В операционных системах с отключенным SELinux, сконфигурирована опция SELINUX=disabled в /etc/selinux/config:

# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted

Также, команда getenforce возвращает значение Disabled :

# /usr/sbin/getenforce Disabled

Для включения SELinux:

Если это не так, то выполните команду от root пользователя для исправления ошибок в отображениях пользователей. Безопаснее проигнорировать предупреждения SELinux-user username is already defined , если они появляются, где username может быть unconfined_u , guest_u , или xguest_u.

В версии Android 5.0 Lollipop компания Google по умолчанию активировала функцию SeLinux по умолчанию, что сильно усложнило возможность модификацию системного раздела! Как отключить? Читайте на !

Для тех кто любит модифицировать прошивку или необходимо встроить приложение компания Google крепко постаралась чтобы этого недопустить — активирована технология selinux , которая «ломает» файлы которые попадают в системный раздел, а также заимствованная у Samsung и модифицированная система безопасности на основе Knox . Все это создано для того чтобы мы простые пользователи не могли изменять системный раздел! Пора это исправить!

Что необходимо чтобы отключить защиту в Android?

1. Компьютер с ОС UBUNTU

2. Ядро boot.img от вашего смартфона или планшета Android

Инструкция как в ядре Android отключить защиту

Подготовка

Установим пакет встраивающий открытие терминала в файловом менеджере

1. Открываем терминал и вводим следующую команду

Для 32х разрядных систем:

sudo apt-get install nautilus-open-terminal:i386

Для 64х разрядных систем:

sudo apt-get install nautilus-open-terminal

2. После чего выполнить команду перезапуска файлового менеджера

3. Установить пакет необходимый для работы с ядром Android

sudo apt-get install abootimg

Работа с ядром

1. Создайте в папке home (Домашняя папка) папку с любым удобным именем и переместите туда ядро Android — boot.img . (В примере будет указана папка kernel)

2. Перейдите в папку kernel , в любом пустом месте нажмите правую кнопку мыши и выбрать «Открыть в терминале»

3. В открывшемся терминале введите команду:

abootimg -x boot.img

После чего в папке kernel вы увидите что появились новые папке (ядро распаковано)

4. Создадим новую папку (назовем ее rw ) внутри папки kernel , в терминале пишем

5. Пишем команду в терминале для дальнейшей распаковки раздела initrd.img

zcat ../initrd.img | cpio -i

6. После чего в папке rw вы обнаружите множество файлов

7. Найдите и откройте файл default.prop

8. В файле измените строку

и сохраните файл и выйдете с него

9. В терминале выполняем сборку файла initrd.img, пишем команду

find . | cpio -o -H newc | gzip > ../initrd.img

10. Возвращаемся обратно в папку kernel, для этого в терминале пишем

11. Собираем ядро Android с внесенными изменениями

abootimg --create boot.img -k zImage -r initrd.img

и после еще одну команду

abootimg --create boot.img -f bootimg.cfg -k zImage -r initrd.img

Ядро Android с поддержкой init.d собрано! Далее вам необходимо прошить!

На этом все! Оставайтесь с и подписывайтесь в социальные группы! Дальше будет интересней!

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

Как временно отключить-деактивировать SELinux

Шаг 1: Прежде всего, проверьте текущий статус SELinux с помощью следующей команды:

# getenforce Enforcing #

Использование другого метода командой, которая приводит к тому же:

# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted #

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

# echo 0 > /selinux/enforce

Другой метод

# setenforce 0

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

# setenforce Permissive

Прежде всего описанный метод, работает до перезагрузке. В результате он будет работать до следующей перезагрузки. Кроме того Если вы хотите сделать это на постоянной основе через перезагрузку, выполните описанную ниже процедуру.

Как отключить-отключить SELinux навсегда

Для того, чтобы отключить его навсегда, измените значение параметра “SELinux ” на “disabled ” в файле “/etc/sysconfig/SELinux “, как показано ниже

Наконец перепроверьте с помощью команды ниже:

# sestatus SELinux status: disabled

Всем привет, давайте поговорим немного о SELinux, но перед этим немного определения для тех, кто не слышал что это вообще такое. SELinux сокращение от анг. слова Security-Enhanced Linux что означает Linux с улучшенной безопасностью. Иными словами это реализация системы принудительного контроля доступа, которая способна функционировать параллельно с классической избирательной системой контроля доступа. Разница в том, что в SELinux посредством определенных политик определяются права доступа самой системой, в свою очередь избирательная система контроля доступа выполняет разделение доступа процессов к ресурсам, основываясь на правах пользователя, для простого понимания это права rwx на трех уровнях – владелец, группа-владелец и остальные пользователи.
После небольшого описания давайте попробуем рассмотреть некоторые команды и параметры SELinux. Наши примеры будут демонстрироваться на операционной системе Linux CentOS 6. Пожалуй, первое и наверное самое востребованное это команды для проверки статуса SELinux.

/usr/sbin/getenforce

/usr/sbin/sestatus

Возвращаемые значения для команды getenforce
Enforcing – указывает на то что SELinux активирован и правила политики принудительные;
Permissive – указывает на то что SELinux активирован, но правила политики не принудительные enforced и используются только правила DAC;
Disabled – указывает на то, что SELinux отключен.

Возвращаемые значения для команды sestatus
Данная команда возвращает помимо статуса SELinux так же используемую политику SELinux, пример:

$ /usr/sbin/sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 23 Policy from config file: targeted

SELinux status: enabled – обозначает что SELinux включен;
Current mode: enforcing – обозначает что SELinux включен в принудительном enforced режиме;
Policy from config file: targeted – обозначает что используется политика SELinux targeted.

Включение SELinux
Включается / отключается SELinux в операционной системе в файле конфигурации
/etc/selinux/config

# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted

Опция SELINUX=disabled обозначает, что SELinux отключен. Перед тем как запустить SELinux необходимо выполнить некоторые манипуляции.
1. Проверить инсталляцию пакетов SELinux

Rpm -qa | grep selinux rpm -q policycoreutils rpm -qa | grep setroubleshoot

Так же убедитеть в том, что установлены следующие пакеты: selinux-policy-targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, policycoreutils, setroubleshoot, setroubleshoot-server, setroubleshoot-plugins . Пакеты policycoreutils-gui, setroubleshoot, selinux-policy-devel, и mcstrans опциональны.
Отсутствующие пакеты можно установить с помощью команды (под пользователем root)

Yum install package-name

2. Каждый файл файловой системы должен быть промаркирован контекстом SELinux перед запуском. До этого момента ограниченным доменам может быть отказано в доступе, что может привести к некорректной загрузке операционной системы. Ситуация исправляется выставлением опции SELINUX=permissive в конфигурационном файле /etc/selinux/config.

3. Маркировка файлов произойдет во время следующей перезагрузки системы. Метки для всех файлов выставляются в контексте SELinux в ходе процесса. В последней строке каждый символ * обозначает 1000 промаркированных файлов. Длительность процесса зависит от количества файлов в системе, а так же скорости работы дисков.

*** Warning -- SELinux targeted policy relabel is required. *** Relabeling could take a very long time, depending on file *** system size and speed of hard drives. ****

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

Grep "SELinux is preventing" /var/log/messages

Вывод должен быть пустой, это означает что всё в порядке, и SELinux не запрещает действия.
5. После того как вы убедились что сообщений о запретах в логах нет, установите параметр SELINUX в enforcing (файл /etc/selinux/config):

# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted

6. После этого операционную систему следует перезапустить. После перезапуска нужно проверить возвращаемое значение Enforcing командой getenforce.

$ /usr/sbin/getenforce Enforcing

7. Для просмотра отображений между SELinux и пользователями системы, выполните команду

/usr/sbin/semanage login –l

Вывод команды должен быть такого плана:

Login Name SELinux User MLS/MCS Range __default__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023

Есть некоторые особенности, которые так же следует учитывать. При отключенном SELinux созданные пользователями файлы не маркируются, вследствие чего, при переводе в состояние enforcing могут появляться проблемы. Маркировка файлов произойдет по изменению опции с disabled на permissive/enforcing режим, таким образом, будет предотвращена проблема с появлением немаркированных файлов.

 

 

Это интересно: