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

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

Генерирование ACL.

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

Создание ACL - достаточно утомительная и рутинная задача, поэтому даже для опытных пользователей Grsecurity, рекомендуется употреблять встроенный режим обучения для создания начального ACL. Процесс авто­матического создания ACL был рассмотрен в предыдущей статье. Сейчас будет рассмотренно создание ACL для демона sshd.

     После долгой деятельности Grsecurity в режиме обучения был получен следующий ACL:


subject /usr/sbin/sshd о {

/ h

/bin h

/bin/bash x

/dev h

/dev/log rw

/dev/ptmx rw

/dev/pts

/dev/pts/1 rw

/dev/tty rw

/etc r

/etc/grsec h

/lib rx

/proc h

/proc/1817

/proc/1819

/usr h

/usr/lib/libcrack.so.2.7 rx

/usr/lib/libglib-1.2.so.0.0.10 rx

/var h

/var/empty/sshd

/var/log

/var/log/lastlog rw

/var/log/wtmp w

/var/run/utmp rw

/root

-CAP_ALL

+CAP_DAC_OVERRIDE

+CAP_SETGID

+CAP_SETUID

+CAP_SYS_CHROOT

+CAP_SYS_TTY_CONFIG

bind 0.0.0.0/32:0 dgram ip

connect 192.168.9.100/32:53 dgram udp

}

     Задавать правила для /рrос/<число> не нужно, потому что число (РШ) будет изменяться при каждом запуске процесса, поэтому удаление записей для /ргос/<число> надо записать так:

/рrос

     Обязательно нужно снять флаг h с /ргос .

     Аналогично терминал не всегда будет pts1, поэтому надо обеспечить rw-доступ (чтение/запись) ко всем /dev/pts:

/dev/pts rw

     Правило bind сейчас разрешает привязку к любому порту и любому ин­терфейсу. Учитывая, что идет настраивание демона SSH, надо четко указать порт 22:

bind 0.0.0.0/32:22 dgram ip

     Инструкцию connect тоже нужно подправить. В данной инс­трукции перечислены адреса компьютеров, с которыми элемент может соединяться (но некоторые могут соединяться с субъектом!).

     Автоматически сгенерированный ACL содержит правило, разрешаю­щее элементу соединяться с сервером имен (192.168.9.100). Но ведь серверов имен может быть несколько. Обычно их 2, а это правило разрешает соединение только с одним сервером - с тем, с которым соединялась про­грамма во время режима обучения.

     Если этот сервер недоступен, программа будет обращаться к другому сер­веру имен, указанному в конфигурационных файлах системы, но не сможет данного сделать, потому что второй сервер не указан в ACL. Указывать два (или более) сервера надо так:

connect {

10.0.0.1:53 dgram udp 10.0.0.2:53 dgram udp }

     Если серверов больше двух и не охота все их указывать, надо использо­вать следующую инструкцию, разрешающую подключение к любому серве­ру имен (порт 53):

connect 0.0.0.0/32:53 dgram up

     Не надо забыватб, что SSH-демону может понадобиться соединение с демоном AUTH (IDENT), работающим по 113 порту. В момент обучения такого соединения не произошло, поэтому в автоматически сгенерированном ACL и слова нет о IDENT. Исправим это:

connect {

192.168.0.0/8:113 dgram ip 10.0.0.0/24:113 dgram ip }

     Как и в предыдущем случае, надо разрешить соединение с любым IDENT-сервером:

connect 0.0.0.0/32:133 dgram up

     Рассмотрим окончательный листинг ACL для элемента /usr/sbin/sshd:

subject /usr/sbin/sshd о {

/ h

/bin h

/bin/bash x

/dev h

/dev/log rw

/dev/ptmx rw

/dev/pts rw

/dev/tty rw

/etc r

/etc/grsec h

/lib rx

/proc h

/usr h

/usr/lib/libcrack.so.2.7 rx

/usr/lib/libglib-1.2.so.0.0.10 rx

/var h

/var/empty/sshd /var/log

/var/log/lastlog rw

/var/log/wtmp w

/var/run/utmp rw

/root -CAP_ALL

+CAP_DAC_OVERRIDE +CAP_SETGID +CAP_SETUID +CAP_SYS_CHROOT +CAP_SYS_TTY_CONFIG bind 0.0.0.0/32:22 dgram ip connect {

192.168.9.100/32:53 dgram udp 192.168.9.200/32:53 dgram udp 192.168.0.0/16:113 dgram udp } }

     Однако это еще не все. В этом примере применяется режим элемента о. Надо задать несколько дополнительных режимов, например:

  • h - чтобы скрыть процесс от ненужных глаз (но тогда не надо забывать «прятать» объект /var/run/sshd.pid);
  • А — чтобы защитить разделяемую память процесса;
  • Т — для защиты от троянов;
  • X — для активации RANDEXEC.

     Учитывая новые режимы, первая строка описания элемента будет выгля­деть так:

subject /usr/sbin/sshd ohATX {

     Также желательно ограничить сбои процесса — не более двух за час:

RES CRACH 2 60m

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

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

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

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



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