Почему важно ограничивать права
- Сокращение поверхности атаки.
- Соответствие требованиям регуляторов (ФСТЭК, ФСБ).
- Исключение случайного выполнения привилегированных команд.
Типовые уровни безопасности Astra Linux
| Уровень | Описание | Назначение |
|---|---|---|
| Минимальный (baseline) | Стандартные ACL + sudo | Офисные рабочие станции |
| Усиленный (hardened) | RBAC, SELinux, chroot-окружения | Отделы разработки |
| Максимальный (trusted) | Мандатный контроль доступа (MAC), категории «конфиденциально»/«совершенно секретно» | Госорганы, оборонные предприятия |
Создание «оболочки-минимум» (restricted shell)
Подготовка
- Установите rbash (restricted bash) из репозитория Astra:
- Создайте каталог
/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
- Убедитесь, что SELinux включён:
$ getenforce Enforcing
- Создайте модуль
myconfined.pp: - Назначьте пользователю контекст
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 для администратора
- Определить классификацию данных (публичные, служебные, конфиденциальные).
- Выбрать уровень безопасности Astra Linux (1–3).
- Создать группы:
devs, analysts, auditors. - Назначить пользователей в группы.
- Настроить ограниченные оболочки или контейнеры LXC.
- Прописать SELinux-политику или категории
security.astra.*. - Убедиться, что никто не состоит в группе
sudoбез явной необходимости. - Запланировать регулярный аудит (ежемесячно).