Control++:Blacklist/Whitelist: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 6: Строка 6:
# Имеется текстовый файл <code>/some_path/some_whitelist.txt</code>, называемый <i><b>белым списком</b></i>, каждая строка которого представляет собой абсолютный путь к файлу данной системы; По единой команде должно производиться запрещение запуска (исполнения) всех файлов системы, кроме файлов белого списка, а запуск (исполнение) файлов белого списка должен быть резрешён (по-умолчанию - для всех пользователей).
# Имеется текстовый файл <code>/some_path/some_whitelist.txt</code>, называемый <i><b>белым списком</b></i>, каждая строка которого представляет собой абсолютный путь к файлу данной системы; По единой команде должно производиться запрещение запуска (исполнения) всех файлов системы, кроме файлов белого списка, а запуск (исполнение) файлов белого списка должен быть резрешён (по-умолчанию - для всех пользователей).


== Решения поставленной задачи ==
== Решение поставленной задачи ==


=== Правка основного файла настройки control++ ===
=== Правка основного файла настройки control++ ===
Строка 30: Строка 30:


Возможно задание следующих дополнительных параметров:
Возможно задание следующих дополнительных параметров:
* <code>excluded_paths</code> - определяет набор каталогов, содержимое которых (в том числе содержимое вложенных каталогов) не будет затронуто применением прав, описанных данной секцией;
* <code>mode_for_dirs</code> - определяет режим для вложенных каталогов, затрагиваемых применением прав, описанных данной секцией (с учётом base_dir);
* <code>base_dir</code> - определяет каталог, рассматриваемый при применении данного режима прав как каталог верхнего уровня;
* <code>base_dir</code> - определяет каталог, рассматриваемый при применении данного режима прав как каталог верхнего уровня;
* <code>mode</code> - режим в формате <code>rwxrwxrwx</code>, применяемый к файлам, перечисленным в чёрном/белом списке (по-умолчанию для белого списка <code>**x**x**x</code>, для чёрного списка <code>**-**-**-</code>).
* <code>excluded_paths</code> - определяет набор каталогов, содержимое которых (в том числе содержимое вложенных каталогов) не будет затронуто применением прав, описанных данной секцией (с учётом base_dir);
* <code>mode_for_dirs</code> - определяет режим для вложенных каталогов, затрагиваемых применением прав, описанных данной секцией;
* <code>mode</code> - режим в формате <code>rwxrwxrwx</code>, применяемый к файлам, перечисленным в чёрном/белом списке (по-умолчанию для белого списка <code>**x**x**x</code>, для чёрного списка <code>**-**-**-</code>, где символ <code>*</code> означает сохранение текущего значения данного бита прав).


Пример описания режима прав с применением дополнительных параметров:
Пример описания режима прав с применением дополнительных параметров:
Строка 39: Строка 39:
[whitelist]
[whitelist]
path = /some_path/some_whitelist.txt
path = /some_path/some_whitelist.txt
base_dir = "/usr"
excluded_paths = "lib", "local/lib",
excluded_paths = "lib", "local/lib",
base_dir = "/usr"
mode_for_dirs = *********
mode = *-x*-x*-x
mode = *-x*-x*-x
</source>
</source>


Любой из дополнительных параметров может отсутствовать/присутствовать в описании прав независимо от присутствия/отсутствия других дополнительных параметров.
Задание значения любого из дополнительных параметров может отсутствовать/присутствовать в описании прав независимо от присутствия/отсутствия задания значений других дополнительных параметров.


== Ссылки ==
== Ссылки ==

Версия от 16:38, 22 ноября 2018

control++ может быть использован для применения чёрных/белых списков файлов.

Постановка задачи

  1. Имеется текстовый файл /some_path/some_blacklist.txt, называемый чёрным списком, каждая строка которого представляет собой абсолютный путь к файлу данной системы; По единой команде должно производиться запрещение запуска (исполнения) всех файлов чёрного списка (по-умолчанию - для всех пользователей);
  2. Имеется текстовый файл /some_path/some_whitelist.txt, называемый белым списком, каждая строка которого представляет собой абсолютный путь к файлу данной системы; По единой команде должно производиться запрещение запуска (исполнения) всех файлов системы, кроме файлов белого списка, а запуск (исполнение) файлов белого списка должен быть резрешён (по-умолчанию - для всех пользователей).

Решение поставленной задачи

Правка основного файла настройки control++

Добавить в файл настройки /etc/control++/control++.conf секцию, обозначающую режим control++ с определённым названием (в данном примере режим имеет название some_mode_name), и требующую установку определённого режима прав на файлы (в данном примере режим прав на файлы имеет название some_perm_mode_name):

[some_mode_name]
permissions = some_perm_mode_name

Создание/правка файла настройки режима прав на файлы

Поместить в каталог /etc/control++/samples/permissions файл с описанием режима прав на файлы (в данном примере режим прав на файлы имеет название some_perm_mode_name, его абсолютный путь при этом будет равен /etc/control++/samples/permissions/some_perm_mode_name) и задать ему следующее содержимое (минимальный вариант):

  • Для задания применения чёрного списка
[blacklist]
path = /some_path/some_blacklist.txt
  • Для задания применения белого списка
[whitelist]
path = /some_path/some_whitelist.txt

Если в белом/чёрном списке присутствуют абсолютные пути к каталогам, файлы которых требуется рекурсивно обработать соответствующим образом, то вместо секций [blacklist] / [whitelist] следует задавать секции [blacklist_r] / [whitelist_r] соответственно.

Возможно задание следующих дополнительных параметров:

  • base_dir - определяет каталог, рассматриваемый при применении данного режима прав как каталог верхнего уровня;
  • excluded_paths - определяет набор каталогов, содержимое которых (в том числе содержимое вложенных каталогов) не будет затронуто применением прав, описанных данной секцией (с учётом base_dir);
  • mode_for_dirs - определяет режим для вложенных каталогов, затрагиваемых применением прав, описанных данной секцией;
  • mode - режим в формате rwxrwxrwx, применяемый к файлам, перечисленным в чёрном/белом списке (по-умолчанию для белого списка **x**x**x, для чёрного списка **-**-**-, где символ * означает сохранение текущего значения данного бита прав).

Пример описания режима прав с применением дополнительных параметров:

[whitelist]
path = /some_path/some_whitelist.txt
base_dir = "/usr"
excluded_paths = "lib", "local/lib",
mode_for_dirs = *********
mode = *-x*-x*-x

Задание значения любого из дополнительных параметров может отсутствовать/присутствовать в описании прав независимо от присутствия/отсутствия задания значений других дополнительных параметров.

Ссылки

Основное описание control++