Skip to content

Операционная система должна предоставлять механизм управления фиксированными состояниями ключевых объектов безопасности системы, сохраняющий установленные права доступа к объектам файловой системы при обновлении пакетов.


https://www.altlinux.org/Управление_правамиchown, chmod, SUID, GUID, sticky bit, ACL, umask

https://metanit.com/os/linux/5.8.php

Acess Control Lists

ACL или Access Control Lists (Списки контроля доступом) в Linux предоставляют еще одну возможность предоставлять разрешения нескольким пользователям и группам для одного и того же файла или каталога. ACL позволяют решить некоторые ограничения других общих инструментов управления разрешениями, в частности:

  • У файла/каталога может быть только один пользователь-владелец и одна группа-владелец
  • Не работает наследование разрешений, чтобы разрешения каталога передавались его файлам и подкаталогам

Списки ACL часто применяются к каталогам, чтобы гарантировать, что новые файлы, созданные в каталоге, автоматически получат необходимые разрешения. Для установки ACL применяется команда setfacl:

bash
setfacl [options] operation entity:entityname:permissions file

Она принимает следующие компоненты:

  • options: с помощью необязательных опций позволяет управлять работой команды setfacl. Распространенные опции:

    • -d: устанавливает ACL по умолчанию. Это параметр ACL также наследуется подкаталогами и файлами.
    • -k: удаляет список ACL по умолчанию.
    • -R: рекурсивно применяет настройки ACL.

    ACL по умолчанию предназначен для новых файлов и не влияет на существующие файлы. Все новые файлы получат разрешения, установленные в ACL по умолчанию. Без опции -d команда setfacl работает только с существующими файлами. Чтобы убедиться, что все новые файлы получат желаемые настройки ACL, следует дважды использовать команду setfacl. Сначала с опцией -d, чтобы был установлен список ACL по умолчанию, а затем с опцией -R и без опции -d, чтобы позаботиться о существующих в данный момент файлах.

  • operation: устанавливает, что надо сделать: добавить или удалить настройку ACL. Доступны следующие операции:

    • --set: используется для установки ACL. Стоит учитывать, что она заменит любой существующий ACL.
    • -m: дополняет текущие настройки ACL, без полной замены.
    • -x: удаляет существующий ACL.
  • entity и entity name: тип объекта имя объекта, которые определяют, для кого надо установить ACL. Существует два типа объектов: u для пользователя и g для группы. После указания типа объекта надо указать имя объекта.

  • permissions: разрешения, которые надо установить с помощью списков управления доступом.

  • file: имя файла или каталога, к которому надо применить списки ACL.

Для получения информации о списках ACL применяется команда getfacl, которой передается имя файла/каталога:

bash
getfacl file

В ОС Альт СП реализован механизм дискреционного разграничения доступа. Управление доступом применяется ко всем объектам, включая объекты файловой системы, базы данных, процессам и устройствам. Разграничение прав доступа осуществляется администратором в соответствие с типами операций (чтение, запись, исполнение). Реализуется такими средствами как ACL, alterator-users, alterator-group, DAC, polkit, kiosk.

Разделение полномочий (ролей) пользователей осуществляется администратором с помощью инструментов: alterator-users, alterator-ldap-users, alterator-group, alterator-root, alterator-multiseat, chmod, chown, setfacl, chgrp, ACL. Настройка проводится в соответствии с организационно-распорядительными документами оператора.

Назначение минимально необходимых прав и привилегий, разделение полномочий (ролей) пользователей осуществляется администратором с помощью инструментов управления учетными записями: alterator-users, alterator-ldap-users, alterator-group, alterator-root, alterator-multiseat, chmod, chown, setfacl, chgrp, chow, DAC. Настройка проводится в соответствии с организационно-распорядительными документами оператора.

В ОС каждый объект хранит свои права доступа, назначенные ему в соответствие с DAC (Discretionary Access Control)

SELinux (Не заработало) (Появилась задача 183415)

SELinux (Security-Enhanced Linux) – это модуль ядра Linux, который предоставляет механизмы контроля доступа на основе политик безопасности. SELinux может быть важным инструментом для повышения безопасности вашей системы ALT Linux.

Чтобы проверить, активирован ли SELinux в вашей системе, используйте следующую команду:

sestatus

Если SELinux не активирован, вы можете включить его, отредактировав файл конфигурации:

sudo nano /etc/selinux/config

В этом файле измените значение SELINUX:

SELINUX=permissive
SELINUXTYPE=strict

enforcing - SELinux security policy is enforced. permissive - SELinux prints warnings instead of enforcing. disabled - No SELinux policy is loaded.

SELINUXTYPE can take one of these four values: targeted - Only targeted network daemons are protected. strict - Full SELinux protection. mls - Full SELinux protection with Multi-Level Security mcs - Full SELinux protection with Multi-Category Security (mls, but only one sensitivity level)

https://www.altlinux.org/Sl

Howto get working SeLinux Alt Linux policy

Факты

libselinux для своей работы требует /proc это требует учитывать для зачрученных приложений, которые могут отказывать работать по необяснимым причинам. Это относится к всяким родам службам, которые в ALT часто делают chroot с целью усиления защищенности.

Force relabeling

bash
touch /.autorelabel

Update Grub config

Update configuration GRUB's file: /etc/sysconfig/grub2:

bash
GRUB_CMDLINE_LINUX_DEFAULT='panic=30 quiet splash security=selinux selinux=1'

It is also possible to add:

  • enforcing=1
  • log_buf_len=1M
bash
grub-mkconfig  > /boot/grub/grub.cfg

PAM configuration

  • Add to /etc/pam.d/newrole before pam_namespace.so module
bash
session        required pam_exec.so debug /etc/security/alt.newrole/helper /etc/security/alt.newrole/config
  • Add to /etc/pam.d/common-login:

The first session module pam_selinux.so close should be the first session rule

bash
session    required     pam_selinux.so close

The last session module pam_selinux.so open should only be followed by sessions to be executed in the user context

bash
session    required     pam_selinux.so open verbose

Reboot

reboot system with enabled selinux

Install policy

Install package selinux-policy-altlinux

Reboot system again

Грузиться система не хочет, переходит в emergency mode Setting SELINUX context failed

| Продемонстрировать наличие соответствующих возможностей

Механизм control

Пример настройки через механизм control

Просмотреть температуру жёсткого диска можно также средствами консоль режима:

hddtemp — утилита мониторинга температуры жёсткого диска

Настройка прав доступа можно выполнить через control-механизм в консоли:

control | grep hdd

control hddtemp list

control hddtemp restricted

control hddtemp public

control hddtemp wheelonly

Настройка прав доступа к hddtemp через control-механизм средствами администрирования «Альт Домена» описана в разделе документации ⁠10.4.2. Управление control framework https://docs.altlinux.org/ru-RU/domain/10.4/html/group-policy/control.html

Контакты: bystrovno@basealt.ru