Fedora 8 Руководство пользователя
Шрифт:
uid=500(den) gid=500(den) группы=500 (den) context=user_r:system_r:unconfined_t
Теперь введите команду su, а затем снова команду id. Вы получите следующий вывод (рис. 7.14):
uid=0(root) gid=0(root) группы=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=user_r:system_r:unconfined_t
Обратите внимание: UID (идентификатор пользователя) изменился, а сущность осталась прежней - user_r. Ради эксперимента, введите следующую команду:
/sbin/init 3
Рис. 7.14.
Вы перейдете на третий уровень запуска. Войдите в систему как пользователь root. Затем введите команду id, и вы получите следующий вывод (рис. 7.15):
uid=0(root) gid=0(root) группы=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Рис. 7.15. Команда id om имени пользователя root
Обратите внимание: изменилась сущность и контекст безопасности. Это доказывает, что сущность никак не привязана к идентификатору пользователя.
Пора разобраться, что же такое роль и домен. Домен (domain) определяет привилегии процесса; он представляет собой список возможностей, т.е. действий, которые разрешены процессу. Описывать данные действия самостоятельно вам не придется, об этом уже позаботились разработчики Fedora, описав более 200 процессов, которые могут выполняться в операционной системе. Все остальные процессы, которые не описаны в политике безопасности, попадают в домен unconfined_t. Данные процессы не защищаются SELinux.
Иногда домен называют типом. Тип (type) - это то же самое, что и домен, но домен относится к процессам, а тип - к файлам, каталогам, сетевым сокетам.
Роль (role) задает список доменов, которые могут быть использованы. Вот пример описания роли в конфигурационном файле (об этом позже): role user_r types user_passwd_t
Данная запись означает, что роли user_r разрешен доступ к домену user_passwd_t, т.е. пользователям с этой ролью разрешено использовать программу passwd для смены своего пароля.
Говоря обобщенно, сущность определяет, какие домены и какие роли, могут быть использованы.
Контекст безопасности состоит из сущности, роли и домена. Контекст безопасности выводится в формате:
context=сущность;роль;домен
Команда id выводит как раз контекст безопасности.
Теперь, когда мы знакомы с основными понятиями SELinux, пора рассмотреть политику безопасности. Политика безопасности – это правила, контролирующие списки ролей, к которым пользователь имеет доступ, доступ доменов к типам, доступ ролей к доменам.
7.7.3. Включение/выключение SELinux в Fedora
Включить или выключить SELinux (кстати, в Fedora SELinux по умолчанию включена) можно с помощью конфигуратора system-config-securitylevel. После запуска конфигуратора нужно в его окне перейти во вкладку Настройка SELinux (рис. 7.16)
Принудительный режим - нормальный режим работы, при котором 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, Х-сервера и т.д.