Добавить в цитаты Настройки чтения

Страница 53 из 57

context=сущность;роль;домен

Команда id выводит как раз контекст безопасности.

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

7.7.3. Включение/выключение SELinux в Fedora

Включить или выключить SELinux (кстати, в Fedora SELinux по умолчанию включена) можно с помощью конфигуратора system-config-securitylevel. После запуска конфигуратора нужно в его окне перейти во вкладку Настройка SELinux (рис. 7.16) и задать режим работы SELinux.

Принудительный режим - нормальный режим работы, при котором SELinux будет запрещать доступ к объектам, если это необходимо.

Режим предупреждений - данный режим нужно использовать для отладки работы SELinux: доступ к объектам разрешается, но если SELinux считает, что при выполнении операции нарушена политика безопасности, то будет выведено предупреждение о том, что операция запрещена (предупреждение заносится в файл /var/ log/messages).

Выключен - SELinux не используется.

Рис. 7.16. Окно конфигуратора system-config-securitylevel

Учтите, что при каждом включении/выключении SELinux ваша файловая система будет перемаркирована (рис.7.17). В этой операции нет ничего страшного (при перемаркировке будут изменены контексты безопасности), но она может занять довольно много времени. Перемаркировка производится при первой перезагрузке после включения/выключения SELinux.

Рис. 7.17. Предупреждение о выполнении перемаркировки файловой системы

7.7.4. Каталог /etc/selinих

В каталоге /etc/selinux хранятся конфигурационные файлы и политики SELinux. Главный файл конфигурации - /etc/selinux/config (листинг 7.6)

Листинг 7.6. Главный файл конфигурации SELinux

# 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 - Only targeted network daemons are protected.

# strict - Full SELinux protection.

SELIHUXTYPE=targeted

Директива SELINUX может принимать три значения:

• enforcing - принудительный режим;

• permissive - режим предупреждений;

• disabled - SELinux выключена.

Теперь вы знаете, какой файл редактирует конфигуратор sys-tem-config-securitylevel.





Директива SELINUXTYPE позволяет выбрать тип защиты:

• targeted - будут защищены объекты, описанные в политике безопасности;

• strict - полная защита.

По умолчанию используется политика targeted. Файлы политики strict не установлены по умолчанию. Для их установки (если нужно) используется команда:

# yum install selinux-policy-strict

7.7.5. Управление SELinux

Для управления системой контроля доступом используется конфигуратор system-config-selinux (рис. 7.18). С помощью этого конфигуратора можно полностью настроить SELinux, но чаще всего вы будете посещать раздел Boolean, в котором задаются возможности той или иной сетевой службы - например, FTP-сервера, Web-сеpвepa, Х-сервера и т.д.

Рис. 7.18. Конфигуратор system-config-selinux

Также с помощью этого конфигуратора можно определить привилегии пользователей (User Privs) и администратора (Admin) (рис. 7.19).

Рис. 7.19. Привилегии пользователей

Каталог /selinux - это псевдофайловая система selinuxfs, которую можно использовать как для управления SELinux, так и для получения информации о работе SELinux. Но, как правило, данный каталог используется самой системой SELinux, а для изменения параметров системы намного удобнее использовать конфигуратор system-config-selinux.

7.7.6. Режим предупреждений

Как уже было отмечено, в режиме предупреждений в файл /var/log/messages выводятся предупреждения о запрещении доступа, но сам доступ к объекту не запрещается. Вывести все SELinux сделанные предупреждения можно с помощью команды:

# cat /var/log/messages | audit

Рассмотрим пример типичного сообщения о запрещении доступа к объекту (это не реально сделанное предупреждение, а просто пример предупреждения):

Oct 21 16:l0:l5 dhsilabs kernel: audit(2149208252_610:29):avc: denied {read} for pid=1554 comm="bash" name="/etc/shadow" dev=hda5 ino=13671 sсontext =root:system_r:hotplug_t tcontext-root:object_r:user_home_t tclass=file

Оно означает, что 21 октября в 16:10 на машине dhsilabs процесс bash (comm) с PID (идентификатор процесса) 1554 (pid) попытался открыть для чтения (read) файл /etc/shadow (name) с номером инода 13671 (ino), yстройство, на котором находился файл, называется hda5, контекст безопасности задается как scontext. Операция чтения была запрещена (denied).

7.8. Псевдофайловая система /proc

7.8.1. Кратко о /proc

Псевдофайловая система /proc является специальным механизмом, который позволяет получать информацию о системе от самого ядра, а также передавать информацию ядру, модулям ядра и его процессам.

Файловая система /proc находится в оперативной памяти компьютера, однако вы можете обращаться к файлам и подкаталогам каталога /proc так же, как и к остальным файлам на жестком диске. Единственное, что напоминает о ее "виртуальности" (файловая система /proc является виртуальной - Virtual File System) - это размер файлов. Посмотрите на размер любого файла из каталога /proc: он равен 0. Но если вы его откроете, то увидите, что файл содержит-таки информацию. Это объясняется тем, чти содержимое файла формируется "на лету" - сразу после получения запроса на открытие файла,

В каталоге /proc есть только два типа файлов. Первый тип - это информационные файлы, позволяющие получить информацию о системе и о процессах. Данные файлы доступны только для чтения.

Второй тип файлов используется для передачи информации ядру или его модулям. Такие файлы доступны как для чтения (чтобы узнать текущие значения параметров), так и для записи (чтобы изменить это значение).

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

cat /proc/путь/файл [| less]

Изменить параметр системы можно путем записи нового значения параметра в соответствующий proc-файл:

echo "значение" /proc/путь/файл