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

Материал из ALT Linux Wiki
Нет описания правки
мНет описания правки
 
(не показаны 3 промежуточные версии 1 участника)
Строка 3: Строка 3:
== Постановка задачи ==
== Постановка задачи ==


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


== Решение поставленной задачи ==
== Решение поставленной задачи ==
Строка 10: Строка 10:
=== Правка основного файла настройки control++ ===
=== Правка основного файла настройки control++ ===
Добавить в файл настройки <code>/etc/control++/control++.conf</code> секцию, обозначающую режим control++ с определённым названием (в данном примере режим имеет название <i>some_mode_name</i>), и требующую установку определённого режима прав на файлы (в данном примере режим прав на файлы имеет название <i>some_perm_mode_name</i>):
Добавить в файл настройки <code>/etc/control++/control++.conf</code> секцию, обозначающую режим control++ с определённым названием (в данном примере режим имеет название <i>some_mode_name</i>), и требующую установку определённого режима прав на файлы (в данном примере режим прав на файлы имеет название <i>some_perm_mode_name</i>):
:<source>
:<source lang="text">
[some_mode_name]
[some_mode_name]
permissions = some_perm_mode_name
permissions = some_perm_mode_name
Строка 17: Строка 17:
=== Создание/правка файла настройки режима прав на файлы ===
=== Создание/правка файла настройки режима прав на файлы ===
Поместить в каталог <code>/etc/control++/samples/permissions</code> файл с описанием режима прав на файлы (в данном примере режим прав на файлы имеет название <i>some_perm_mode_name</i>, его абсолютный путь при этом будет равен <code>/etc/control++/samples/permissions/some_perm_mode_name</code>) и задать ему следующее содержимое (минимальный вариант):
Поместить в каталог <code>/etc/control++/samples/permissions</code> файл с описанием режима прав на файлы (в данном примере режим прав на файлы имеет название <i>some_perm_mode_name</i>, его абсолютный путь при этом будет равен <code>/etc/control++/samples/permissions/some_perm_mode_name</code>) и задать ему следующее содержимое (минимальный вариант):
* Для задания применения чёрного списка
* для задания применения чёрного списка:
:<source>
*:<source lang="text">
[blacklist]
[blacklist]
path = /some_path/some_blacklist.txt
path = /some_path/some_blacklist.txt
</source>
</source>
* Для задания применения белого списка
* для задания применения белого списка:
:<source>
*:<source lang="text">
[whitelist]
[whitelist]
path = /some_path/some_whitelist.txt
path = /some_path/some_whitelist.txt
Строка 29: Строка 29:


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


Пример описания режима прав с применением дополнительных параметров:
Пример описания режима прав с применением дополнительных параметров:
:<source>
:<source lang="text">
[whitelist]
[whitelist]
path = /some_path/some_whitelist.txt
path = /some_path/some_whitelist.txt

Текущая версия от 17:08, 20 апреля 2022

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
    

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

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

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

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

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

Ссылки

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