Skip to content

Операционная система должна предоставлять администратору возможность ограничения действий пользователей в консолях.


Документ [[ЛКНВ.11100-01 99 03 Руководство по комплексу средств защиты.pdf]], стр 199-207 программа [[control++]] https://www.altlinux.org/Control%2B%2B

Стенд: Межсетевой экран + ограничение действий в консоли

В ОС Альт СП механизм контроля запуска компонентов программного обеспечения реализуется при помощи программы control++.

Принцип работы control++

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

При каждой установке режима происходит предварительный сброс текущего режима.

При запуске программы для переключения режима, например, control++ <название_режима>, которому соответствует вариант ограничений ulims_x, вариант прав perm_y и сценарий sh_z, программа попытается скопировать файл /etc/control++/ulimits/ulims_x в каталог /etc/security/limits.d/ (таким образом, чтобы он имел наивысший приоритет среди уже имеющихся файлов ограничений), попытается применить права на файлы в соответствии с описанием в /etc/control++/permissions/perm_y и запустить сценарий /etc/control++/permissions/sh_z/do. В случае невозможности осуществления какой-либо из операций будет выведено сообщение об ошибке. Если какой-то из параметров не указан (например, название сценария оболочки), то соответствующая операция не будет выполняться.

При проверке соответствия текущего состояния системы параметрам установленного ранее режима осуществляется:

  • сравнение содержимого наиболее приоритетного ulimits-файла из каталога /etc/security/limits.d/ с содержимым ulimits-файла, сохраненного при установке данного режима;
  • сравнение текущих режимов всех файлов, затронутых установкой данного режима, с текущим описанием прав, которое носит название установленного подрежима;
  • запуск test-сценария данного режима, при наличии такого сценария (его отсутствие не считается ошибкой).

Если какой-то из файлов, перечисленных в описании прав для данного режима, отсутствует в системе, то установка данного режима не будет считаться по этой причине неуспешной. Также, при проверке соответствия режима, права отсутствующего файла не считаются несоответствующими правам, указанным в описании режима.

Пример: создание черного списка

Для настройки черного и (или) белого списка отредактировать содержимое файла /etc/control++/control++.conf, включив описание соответствующих режимов (wl и blacklist), каждый из которых имеет тип permissions (под названием wl и bl):

bash
[wl] 
permissions = wl 

[blacklist] 
permissions = bl

Пример создания конфигурационного файла черного списка /etc/control++/permissions/bl:

bash
[blacklist] 
path = "/etc/control++/black_list"

Далее необходимо сформировать черный список. Например, чтобы занести в черный список программу dig, необходимо создать файл /etc/control++/black_list и добавить в него строку:

bash
/usr/bin/dig

Просмотреть список доступных режимов:

bash
control++ --list 
# Available modes:
# wl 
# blacklist

Установка режима применения черного списка (blacklist):

bash
control++ blacklist 
# Setting 'blacklist' mode for the 'permissions' unit..............................[DONE] 
# Mode set OK 
# Current mode is 'blacklist'

После установки данного режима, пользователю будет запрещен запуск программ, перечисленных в файле /etc/control++/black_list (в примере dig).

Для сброса существующего режима следует выполнить команду:

bash
control++ --reset

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