Включить или выключить 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
Псевдофайловая система /proc является специальным механизмом, который позволяет получать информацию о системе от самого ядра, а также передавать информацию ядру, модулям ядра и его процессам.
Файловая система /proc находится в оперативной памяти компьютера, однако вы можете обращаться к файлам и подкаталогам каталога /proc так же, как и к остальным файлам на жестком диске. Единственное, что напоминает о ее "виртуальности" (файловая система /proc является виртуальной - Virtual File System) - это размер файлов. Посмотрите на размер любого файла из каталога /proc: он равен 0. Но если вы его откроете, то увидите, что файл содержит-таки информацию. Это объясняется тем, чти содержимое файла формируется "на лету" - сразу после получения запроса на открытие файла,
В каталоге /proc есть только два типа файлов. Первый тип - это информационные файлы, позволяющие получить информацию о системе и о процессах. Данные файлы доступны только для чтения.
Второй тип файлов используется для передачи информации ядру или его модулям. Такие файлы доступны как для чтения (чтобы узнать текущие значения параметров), так и для записи (чтобы изменить это значение).
Как и в случае с обычными файлами, просмотреть информационный файл можно с помощью команды cat:
cat /proc/путь/файл [| less]
Изменить параметр системы можно путем записи нового значения параметра в соответствующий proc-файл:
echo "значение" › /proc/путь/файл
7.8.2. Некоторые информационные файлы
Рассмотрим некоторые информационные файлы, доступные в псевдофайловой системе /proc:
• /proс/version - содержит версию ядра;
• /proc/cmdline - позволяет просмотреть список параметров, которые были переданы ядру при загрузке;
• /proс/apuinfo - Содержит информацию о процессоре;
• /proc/meminfo - предоставляет информацию об использовании оперативной памяти;
• /proc/devices - содержит список устройств;
• /proc/filesystems - содержит список файловых систем, которые поддерживаются вашей системой;
• /proc/mounts - содержит список "подмонтированных" в данный момент файловых систем;
• /proc/modules - содержит список загруженных модулей;
• /proc/swaps - список используемых разделов и файлов подкачки.
Например, вы можете получить информацию о процессоре с помощью следующей команды:
cat /proc/cpuinfо
Система выдаст в ответ следующую информацию:
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 15
model name: Genuine Intel(R) CPU 2160 @ 1.80GHz
stepping: 2
cpu MHz: 1798.238
cache size: 1024 KB
physical id: 0
Siblings: 2
core id: 0
cpu cores: 2
fpu: yes
fpu_exception: yes
cpuid level: 10
wp: yes
flags: fpu vme de рsе tsc msr рае
mce cx8 apic sep mtrr pge mca cmov pat pse36 сlflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
bogomips: 3599.18
сlflush size: 64
cache_alignment: 64
address sizes: 36 bits physical, 46 bits virtual
power management:
processor: 1
vendor_id: GenuineIntel
cpu family: 6
model: 15
model name: Genuine Intel(R) CPU 2160 @ 1.80GHz
stepping: 2
cpu МHz: 1798.238
cache size: 1024 KB
physical id: 0
siblings: 2
core id: 1
cpu cores: 2
fpu: yes
fpu_exception: yes
cpuid level: 10
wp: yes
flags: fpu vme de pse tsc msr pae mce сx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl est tm2 ssse3 cx1б xtpr lahf_lm
bogomips: 3595.87
clflush size: 64
cache_alignment: 64
address sizes: 36 bits physical, 48 bits virtual
power management:
Данная команда позволяет узнать:
• кто производитель процессора (vendor_id);
• модель процессора (model name);
• частоту процессора (cpu MHz);
• размер кэша первого уровня (cache size);
• другие параметры процессора.
В данном случае в системе установлено два процессора, что видно из вывода команды.
В каталоге /proc/sys/kernel находятся файлы, позволяющие изменять некоторые важные параметры ядра. Перечислим некоторые (самые важные) файлы из этого каталога.
• ctrl-alt-del - задает реакцию системы на нажатие комбинации клавиш ‹Ctrl+Alt+Del›. Может содержать значение 0 ("мягкая перезагрузка", при которой управление передастся программе init) или 1 ("жесткая" перезагрузка, практически равносильная нажатию кнопки Reset на корпусе компьютера, поскольку никаких действий по деинициализации системы не производится).
• domainname - содержит сетевое доменное имя.
• hostname - содержит имя хоста.
• msgmax - максимальный размер сообщения (в байтах), которое может быть передано от одного процесса к другому при межпроцессном взаимодействии. Значение по умолчанию 8192. Если увеличить это значение, то увеличится размер ОЗУ, занимаемый операционной системой.