Книга: Linux-сервер своими руками

8.9.4. Правила доступа

8.9.4. Правила доступа

Правила доступа системы LIDS чем-то напоминают правила бастиона, но данные правила распространяются не на пакеты, а на программы. Правила доступа хранятся в файле lids.conf и редактировать этот файл можно только с помощью программы lidsadm. Первоначально у вас уже установлены определенные правила, просмотреть которые вы можете с помощью команды:

lidsadm –L

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

lidsadm –U

Я рекомендую вам очистить все правила и создать собственные. К тому же, первоначально установленные правила у вас не будут работать, так как кроме имени файла система LIDS также использует и номер mode, а в вашей системе номера информационных узлов (inodes) будут отличаться от номеров узлов на машине разработчиков LIDS. Очистить правила можно с помощью команды:

lidsadm –Z

Правила состоят из трех частей:

1. Объекта.

2. Субъекта.

3. Доступа (цели).

Объект — это любой объект (файл, каталог), который будет защищен с помощью системы LIDS или на который будет действовать ограничение доступа. Если защитить каталог, то будут защищены все файлы в этом каталоге, все подкаталоги, все файлы в подкаталогах и т.д.

Субъектом является защищенная программа, которой предоставляется доступ к защищенному объекту. Субъект также должен быть защищен с помощью LIDS.

Параметр доступ (цель) устанавливает тип доступа к объекту:

READ — чтение.

WRITE — запись.

DENY — запрещает любой доступ.

APPEND — разрешает запись в конец файла.

IGNORE — игнорирование защиты.

Устанавливается правило так:

lidsadm –А –о объект –s субъект –j доступ

Если параметр «субъект» не указан, то правило будет действовать для всех программ.

Для начала защитим нашу систему от самого известного «троянского коня» — rootkit. О том, что такое rootkit и какой вред он может причинить вашей системе вы можете прочитать в статье Инги Захаровой «Сканирование на предмет обнаружения rootkit'oB» http://www.softerra.ru/review/security/16999/page1.html.

Пакет rootkit заменяет стандартные утилиты администрирования их «поддельными» версиями, что позволяет скрыть следы атаки и несанкционированного доступа.

Для защиты от такого рода «троянов» создайте такие правила:

lidsadm –А –о /bin –j READ
lidsadm –A –o /sbin –j READ
lidsadm –A –o /etc –j READ
lidsadm –A –o /usr/bin –j READ
lidsadm –A –o /usr/sbin –j READ
lidsadm –A –o /lib –j READ
lidsadm –A –o /boot –j READ

Как видите, мы не определили субъект в наших правилах, поэтому установленные ограничения будут распространяться на все программы: мы разрешаем доступ «только чтение» всем программам, но запрещаем запись в указанные каталоги.

Как я уже отмечал, при установке правил нужно учитывать особенности установленных в вашей системе программ. Если оставить все как есть, некоторые программы не смогут работать. Например, программа mount пишет в файл /etc/mtab при монтировании новой файловой системы. Установите такие дополнительные правила, разрешив некоторым субъектам доступ WRITE к некоторым файлам:

lidsadm –А –о /etc –s /bin/mount –j WRITE
lidsadm –A –s –o /etc /bin/umount –j WRITE
lidsadm –A –s –o /lib/modules/2.2.17-21mdk /sbin/depmod –j WRITE
lidsadm –A –s –o /etc/mtab /sbin/fsck.ext2 –j WRITE
lidsadm –A –s –o /etc /etc/rc.d/rc.local –j WRITE
lidsadm –A –s –o /etc/HOSTNAME /etc/rc.d/rc.sysinit –j WRITE
lidsadm –A –s –o /etc/mtab /etc/rc.d/rc.sysinit –j WRITE

Однако в этих правилах перечислены далеко не все субъекты, которым необходим доступ к указанным объектам, но этих правил достаточно для запуска системы и монтирования файловых систем. В этой главе будут еще рассмотрены субъекты регистрации пользователей в системе, которым необходим доступ к файлам /etc/passwd и /etc/shadow, а правила для всех остальных программ, которые используются в вашей системе вам предстоит добавить самостоятельно. Вот эти правила:

lidsadm –A –o /etc/shadow –j DENY
lidsadm –A - o /etc/shadow –s /bin/login –j READ
lidsadm –A /etc/shadow –s /bin/su –o –j READ
lidsadm –A –o /etc/shadow –s /usr/sbin/in.ftpd –j READ

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

Полезно также защитить системные журналы от изменений. Для этого нужно защитить каталог /var/log, установив доступ READ для всех программ, а затем отдельно разрешив каждой программе писать только в свой протокол. Это довольно утомительный процесс, но один раз проделав его, вы будете уверены, что никто уже не сможет изменить протоколы, чтобы «замести следы». При использовании программы logrotate предоставьте ей доступ ко всему каталогу /var/log.

В качестве объекта могут выступать не только программы, но и способность. Например, вы можете выключить способность для всех программ и предоставить ее только какой-нибудь одной определенной. Доступом в этом случае будут являться такие режимы:

INHERIT —  предоставлять потомкам процесса данную возможность.

NO_INHERIT — не предоставлять.

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

lidsadm –A –s СУБЪЕКТ –t –о СПОСОБНОСТЬ –j ДОСТУП (ЦЕЛЬ)

Вся разница между указанием обыкновенного объекта и способности заключается в наличии параметра –t.

После настройки LIDS перезагрузите систему для проверки ее работоспособности. Если что-то пошло не так, загрузите Linux, передав ядру параметр security=0. Указание данного параметра отключит систему LIDS и вы сможете настроить ее заново:

lilo boot: linux security=0

Оглавление книги


Генерация: 0.894. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз