Тотальный контроль над пингвином Денис Колисниченко Хакер, номер #091, стр. 091-112-5 # useradd -c "New user" -m -d /home/newuser -g users \ -s /bin/bash -u 1005 newuser # passwd newuser Но этого мало. Также требуется настроить роли пользователя. Для этого в файл /etc/selinux/users добавляем строку: user newuser roles { user_r }; Таким образом мы назначаем пользователю newuser роль user_r. Если тебе нужно, чтобы пользователь имел доступ к нескольким ролям — тогда укажи несколько ролей через пробел, например: user setest roles { user_r sysadm_r }; Для активации изменений введи команду: # make -C /etc/selinux load По окончании этой операции ты увидишь такие сообщения: Success touch tmp/load make: Leaving directory `/usr/share/selinux/policy/current' Нужно отметить, что если пользователю нужен доступ только к роли user_r, то это можно даже не указывать. Явное указание необходимо лишь в случае, когда пользователю требуется изменить свой пароль самостоятельно. Влезаем в политику Теперь начинается самое интересное. Мы будем редактировать нашу политику. Сейчас у нас используется политика targeted, подразумевающая защиту только указанных тобой сетевых демонов. Запусти конфигуратор system-config-securitylevel. На закладке SELinux появится возможность редактирования политики. Там все просто: приводится список служб и для каждой службы набор опций SELinux. Например, вот список опций для FTP: * выключить защиту SELinux для демона ftpd; * выключить защиту SELinux для демона initd; * разрешить ftp читать/записывать файлы в домашних каталогах. А вот список привилегий пользователя: * позволить пользователям читать любые файлы по умолчанию; * разрешить пользователям запускать pppd-соединения. Читаем сообщения SELinux Рассмотрим пример типичного ругательства SELinux, которое можно обнаружить в /var/log/messages: May 21 14:44:12 localhost kernel: audit (1148208252.610:29): avc: denied { read } for pid=2054 comm="bash" name=".bash_profile" dev=hda6 ino=23695 scontext=root:system_r:hotplug_t tcontext=root:object_r:user_home_t tclass=file Строка «avc: denied» означает, что операция была запрещена. Далее следует идентификатор процесса, пытающегося выполнить операцию (for pid), имя процесса (comm), имя объекта (name), имя устройства (dev), номер инода объекта (ino), контекст безопасности процесса (scontext), контекст безопасности объекта (tcontext) - в данном случае это файл «.bash_profile» и тип целевого объекта (tclass=file - тип объекта - файл). INFO В UNIX может использоваться одна из следующих моделей доступа: * дискретное управление доступом (Discretionary Access Control, DAC); * принудительное управление доступом (Mandatory Access Control, MAC); * модель тип-домен (Domain Type Enforcement, DTE). WIKIPEDIA SELinux (от англ. Security-Enhanced Linux — Линукс с улучшенной безопасностью) — это специальная версия ядра Линукс и программ, которые обеспечивают поддержку принудительного контроля доступа, базирущегося на принципе наименьших прав. Это не дистрибутив Linux, а набор изменений, которые могут быть применены к операционным системам на базе ядра Linux и некоторым не-Linux системам, таким как BSD. |