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} - действие над неизвестной политикой разрешением