Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

ACL файлов в LIDS.

Рубрика: Безопасность -> Управление доступом
Метки: | | |
Четверг, 9 июля 2009 г.
Просмотров: 5914
Подписаться на комментарии по RSS

В LIDS есть два типа ACL:

  • ACL файлов — контролирует доступ к файлам и каталогам.
  • ACL возможностей — регулирует возможности исполнимых файлов.

     ACL файлов.

     LIDS определяет четыре режима для объектов:

  • DENY - доступ к файлу запрещен. При обращении приложения (к примеру, Is или cat) к этому файлу, оно получит сообщение об ошибке "No such file or directory" (ENOET) - «Нет такого файла или каталога». Внешне будет выглядеть так, как будто файла не сущест­вует.
  • READ - объект может быть открыт исключительно в режиме «толь­ко чтение», запись запрещена.
  • WRITE — чтение и запись не ограничивается. LIDS не защищает этот файл.


     Эти режимы могут быть заданы для файла и для каталога. Если режим используется для каталога, то он будет применен ко всем файлам данного ка­талога.

В LIDS ACL отображается так:

<Тип ACL> <субъект> <объект> <доступ> <наследование>

     Тип ACL определяет, на какой стадии деятельности системы будет контролиро­ваться доступ к системе. Доступно четыре типа:

  • BOOT — доступ будет контролироваться на стадии загрузки системы.
  • POSTBOOT — после загрузки.
  • SHUTDOWN — при разгрузке системы.
  • null — контроль доступа вне зависимости от стадии работы системы.

     Обычно тип ACL просто не показывается (null) - для постоянного контроля, а первые три типа используются для ослабления определенных ограничений.

Элемент - это приложение, которому предоставляется доступ (режимы доступа описаны выше) к объекту - файлу или каталогу. Последнее поле, на­следование, определяет, будет ли ACL наследоваться дочерними процессами или нет, и может принимать значения 0, 1 и -1.

     Объект и элемент тесно связаны друг с другом. К примеру, элементу /usr/bin/sshd (демону SSH) нужен доступ к объекту /var/run/sshd.pid. Есди определяется доступ, к примеру WRITE. Но нужно понимать, что это правило определяет доступ только этого элемента к данному объекту, оно не относится к другим элементам. Если же поле Элемент пусто (то есть элемент не указан), то данный режим доступа используется к объекту для любого элемента (для любого процесса).

     Многие приложения (особенно shell-сценарии) вызывают другие програм­мы во время своего выполнения, что можно учитывать при разработке ACL. По умолчанию наследование выключено и дочерние процессы не наследу­ют режимы доступа, определенные для родительского процесса.

     Такой режим деятельности может стать настоящей ключевой болью для админис­тратора - ведь придется установить режим доступа для каждого про­цесса, вызываемого сценарием. Наследование надо включить, установив значение 1 поля наследования - это так называемый нерекурсивный режим наследования, то есть режим доступа будет унаследован только дочерним процессом.

     Если нужно, чтобы режим доступа был унаследован не только до­черним процессом, но и всеми его потомками (его дочерними процессами), надо установить рекурсивный режим - значение -1 для поля Наследование.

     Lids.conf

     ACL хранятся в файле /etc/lids/lisd.conf. Открыв этот файл, можно уви­дить, что правила записаны в не совсем понятном для человека виде. Но не надо править этот файл вручную - для данного нужна утилита lidsconf. Но поначалу перейдем к рассмотрению lidsconf, можно все-таки узнать, что означают все данные числа:

0:0::1:0:1114128:834:/sbin:0-0 0:0::1:0:193332 6:834:/bin:0-0

     ACL системы LIDS содержит номера инодов вместо имен файлов. К примеру, если установить режим APPEND для /var/log/messages, LIDS сохранит в ACL номер инода данного файла.

     Данное позволяет более жестко контролировать доступ к файлу - ведь имя ничего не значит, основное - инод: нужно удалить файл с именем /var/ log/messages и заново создать файл с таким же именем. Имя не поменяется, а номер инод - да.

     Lidsconf.

     Начиная со второй версии, для администрирования и конфигурирования LIDS используются две различные утилиты. Утилита администрирования lidsadm была рассмотрена в предыдущей статье. Осталось рассмотреть утилиту конфигуриро­вания lidsconf. Наиболее важными опциями lidsconf являются:

  • -A, —add: добавить запись.
  • -С,—check: проверить существующие записи.
  • -D, —delete: удалить запись.
  • -Z, —zero: удалить все записи.
  • -U, —update: обновить /dev и номера инодов.
  • -L, —list: вывести все записи.

     Следующий пример отображает ACL по умолчанию, который поставляется наряду с lidstools-2.2.5rcl (для удобства в листинг были добавлены номера строк):

# lidsconf -L

Subject ACCESS inherit Object

1) Any file READONLY: 0 /sbin

2) Any file READONLY: 0 /bin

3) Any file READONLY: 0 /boot

4) Any file READONLY: 0 /lib

5) Any file READONLY: 0 /usr

6) Any file READONLY: 0 /etc

7) Any file DENY: 0 /etc/lids

8) Any file DENY: 0 /etc/shadow

9) Any file APPEND: 0 /var/log

10) Any file WRITE: 0 /var/log/ wtmp

11) /bin/login READONLY: 0 /etc/shadow

12) /bin/login GRANT: 0 CAP_SETUI.D

13) /usr/sbin/sshd GRANT: 0 CAP_NET_ADMIN

14) /bin/login GRANT: 0 CAP_GETID

     Если несколько правил используется к одному объекту, будет использовано последнее правило. Данное лучше всего продемонстрировать на примере ка­талога /etc: который указан в правилах 6, 7, 8 и 11. В первую очередь /etc объяв­ляется как READONLY (только чтение), затем объекты /etc/lids и / etc/ shadow делаются невидимыми (DENY). Потому что элемент не указан (Any file - какой угодно файл), то ограничение используется к любому процессу. А в строке 11 READONLY-доступ к файлу /etc/shadow предоставляется только элементу /bin/login.

     Для добавления новых записей используется опция -А программы lidsconf:

lidsconf -А [тип ACL] [-s субъект] -о объект [-t с-по] [-i уровень] -j действие

     Как отсюда видно, обязательными в этом случае являются только опции А, о и j:

lidsconf -А -о /etc/hosts.conf -j READ

     Все опции понятны, кроме опции [-t с-по]. Эта опция позволяет указать, установить время действия правила. Время показывается в формате ЧЧММ-ЧЧММ. К примеру, чтобы правило действовало с 8-00 по 19-35, нужно ис­пользовать следующую опцию: -t 0800-1935.

     Для удаления записи применяется синтаксис:

lidsconf -D [тип ACL] [-S субъект] [-о объект]

     Можно указать элемент и/или объект - будут удалены все совпадающие правила. Надо тоже указать и тип ACL, к примеру POSTBOOT.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)