Астра линукс ограничение прав пользователя

Узнай, как в Астра Линукс жёстко ограничить права пользователя и спать спокойно

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Почему важно ограничивать права

  • Сокращение поверхности атаки.
  • Соответствие требованиям регуляторов (ФСТЭК, ФСБ).
  • Исключение случайного выполнения привилегированных команд.

Типовые уровни безопасности Astra Linux

Уровень Описание Назначение
Минимальный (baseline) Стандартные ACL + sudo Офисные рабочие станции
Усиленный (hardened) RBAC, SELinux, chroot-окружения Отделы разработки
Максимальный (trusted) Мандатный контроль доступа (MAC), категории «конфиденциально»/«совершенно секретно» Госорганы, оборонные предприятия

Создание «оболочки-минимум» (restricted shell)

Подготовка

  1. Установите rbash (restricted bash) из репозитория Astra:
  2. Создайте каталог /etc/restricted/ и скрипт allowed-commands, где перечислите разрешённые утилиты (ls, cat, pwd, nano).

Создание пользователя

Настройка PATH и ограничений

Настройка дискреционных прав владельца и группы

Для каждого файла/каталога действуют три набора битов: владелец, группа, остальные. Пример:

-rw-r--r-- 1 alice devs 4096 2026-07-01 10:00 secret.txt
  • Владелец alice может читать/писать.
  • Группа devs может только читать.
  • Остальные пользователи тоже только читают.

Мандатный контроль доступа (MAC) в Astra Linux

Создание политики SELinux

  1. Убедитесь, что SELinux включён:
    $ getenforce
    Enforcing
    
  2. Создайте модуль myconfined.pp:
  3. Назначьте пользователю контекст user_u без прав перехода в sysadm_t.

Категории доступа (для максимального уровня)

Теперь файлы в /opt/secure/ доступны только тем пользователям, чья категория совпадает.

Ограничение sudo до минимума

Редактируйте /etc/sudoers.d/restricted_user:

restricted_user ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

Тем самым пользователь restricted_user может только перезапускать nginx и не может получать интерактивную оболочку root (sudo su -).

Шаблон Ansible для массового развёртывания

---
- hosts: astra_servers
 become: yes
 tasks:
 ⎼ name: Создать пользователя с ограниченной оболочкой
 user:
 name: "{{ item.username }}"
 shell: /bin/rbash
 home: "/home/{{ item.username }}"
 groups: "{{ item.group }}"
 state: present
 loop: "{{ restricted_users }}"

Проверка и аудит

  • ausearch -m avc -ts recent — просмотр SELinux-отказов.
  • sudo -lU restricted_user — проверка прав sudo.
  • getfacl /opt/secure/ — просмотр ACL.

Распространённые ошибки и их решение

Ошибка Причина Как исправить
«Permission denied» при входе через rbash PATH содержит каталог вне $HOME/bin Перезаписать .profile
SELinux блокирует скрипты Не прописан контекст httpd_script_exec_t chcon -t httpd_script_exec_t script.sh
Пользователь получает полный root В sudoers разрешён ALL Заменить на точечные команды

Check-list для администратора

  1. Определить классификацию данных (публичные, служебные, конфиденциальные).
  2. Выбрать уровень безопасности Astra Linux (1–3).
  3. Создать группы: devs, analysts, auditors.
  4. Назначить пользователей в группы.
  5. Настроить ограниченные оболочки или контейнеры LXC.
  6. Прописать SELinux-политику или категории security.astra.*.
  7. Убедиться, что никто не состоит в группе sudo без явной необходимости.
  8. Запланировать регулярный аудит (ежемесячно).