SELinux

Материал из Записи-напоминании
Перейти к навигации Перейти к поиску

Ядро

/sys

/sys/fs/selinux/avc/cache_threshold - максимально занимаемый AVC объем памяти

/sys/fs/selinux/avc/hash_stats - записи кеша AVC (entries); занимаемый AVC объем памяти (buckets used); максимальная длина цепочки (longest chain)

/sys/fs/selinux/enforce - состояние enforce/permissive

/sys/fs/selinux/mls - состояние MLS


/proc/$$/attr

current - содержит текущие параметры безопасности

exec - содержит назначаемые дочерним процессам параметры безопасности (обычно пусто)

fscreate - содержит назначаемые файлам параметры безопасности (обычно пусто)

keycreate - содержит назначаемые параметры безопасности ключам и временно хранимым (cached) данным приложением в ядре (обычно пусто)

prev - содержит родительские параметры безопасности

sockcreate - содержит назначаемые сокетам параметры безопасности (обычно пусто)


Конфигурация ядра

SECURITY_SELINUX_BOOTPARAM - поддержка параметра загрузки ядра "selinux=0"

SECURITY_SELINUX_DEVELOP - режим разработки; поддержка параметра загрузки ядра "enforcing={0,1}"

Утилиты

dnf install policycoreutils-python-utils setools-console policycoreutils–newrole selinux-policy-*

aureport

ausearch -i -m avc,user_avc,selinux_err -ts {yesterday,today,recent}

getenforce / setenforce

getfattr -d -m . $path

matchpathcon $path

restorecon

selinuxexeccon

sestatus

setbool


chcon

chcon -u system_u -t bin_t /opt/nftables/nft

chcon -R -t httpd_sys_content_t /srv/www

chcon --reference /var/www/index.html /srv/www/index.html - скопировать параметры безопасности с /var/www/index.html на /srv/www/index.html


seinfo

seinfo -> Auditallow - регистрируемые разрешенные действия

seinfo -> Dontaudit - нерегистрируемые отказы действий

seinfo -r guest_r -x - отображение типов допустимых функций роли

seinfo -a {daemon,initrc_domain,unconfined_domain_type} -x - вывод списка доменов по атрибуту


semanage

semanage boolean -l

semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"

semanage login -a -s user_u {username,%groupname}

semanage port -a -t sshd_port_t -p tcp 2233

semanage permissive -a minidlna_t

semanage user -a –L s0 –r "s0–s0:c0.c127" –R user_r finance_u


semodule

semodule --disable_dontaudit --build - собрать политики без правил подавления регистрации отказов действий


setsebool

setsebool -P secure_mode_policyload on - блокировки изменений активной политики SELinux


ausearch

ausearch -ts recent -m user_avc,avc


sesearch

sesearch -T -s user_t -t tmp_t -c dir


Стандартные утилиты

cp --preserve=context - действие команды вместе с копией файла/директории так же копирует и параметры безопасности этого файла/директории.

mkdir --context=user_u:object_r:user_home_t:s0 /tmp/foo

mv -Z $path1 $path2 - действие команды в пределах одной ФС изменяет параметры безопасности перемещаемого файла/директории на параметры безопасности целевой директории.


mount

mount -o context="user_u:object_r:user_home_t:s0" /dev/sdc1 /media/usb - все директории/файлы (в т.ч. в не поддерживающей расширенные атрибуты файловой системе) оперируются с заданными в опции монтирования параметрами безопасности.

mount -o defcontext="system_u:object_r:var_t:s0" /dev/sdc1 /srv/backup - не имеющие параметры безопасности директории/файлы (в поддерживающей расширенные атрибуты файловой системе) оперируются с заданной в опции монтирования параметрами безопасности.

mount -o fscontext="system_u:object_r:iso9660_t:s0" /dev/sdc1 /mnt - применение параметров безопасности к файловой системе в целом.


sudo

sudo -r dbadm_r -t dbadm_t nano /var/lib/postgresql/14/pg_hba.conf

/etc/sudoers => myuser ALL=(ALL) ROLE=dbadm_r TYPE=dbadm_t ALL

Конфигурация

Сопоставление системного пользователя с SELinux-пользователем

Основная конфигурация /etc/selinux/${store}/seusers управляется только командой semanage login

Директория /etc/selinux/${store}/logins содержит вручную создаваемые/редактируемые файлы, имена которых соответствуют именам системных пользователей и предназначены для частных правил сопоставления системного пользователя с SELinux-пользователем относительно служб входа в систему.
Пример строки содержимого файла: sshd:user_u:s0


Назначение контекста

Директория содержания правил контекста /etc/selinux/${store}/contexts.

Файл default_contexts - правила назначения роли авторизованному пользователю по умолчанию.

Директория files - выражения путей объектов файловой системы, сопоставляемые с параметрами безопасности;
Виды объектов файловой системы в сопоставлениях: regular file (--), directory (–d), socket (–s), named pipe (–p), block device (–b), character device (–c), symbolic link (–l);
Приоритетным применяемым выражением из нескольких соответствующих является то, которое в наибольшей степени утечненно, в случае пользовательских выражений приоритетным является последнее добавленное выражение.

Директория users содержит вручную создаваемые/редактируемые файлы, имена которых соответствуют именам SELinux-пользователей и предназначены для частных правил назначения роли авторизованному пользователю.
Пример строки содержимого файла dbadm_u: system_r:sshd_t:s0 dbadm_r:dbadm_t:s0


Файл /etc/selinux/semanage.conf

handle–unknown={allow,deny,reject} - действие над неизвестной политикой разрешением