Logo Спонсор сайта — Хостинг Fornex.com Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Сверхбыстрый хостинг от 69 р./мес., VPS от 299 р./мес.

Бесплатно: администрирование + ISPmanager + DDoS защита + SSL + 7 дней тестовый период

Скидка 50% на первый месяц VPS и хостинга по промокоду CITFORUM

хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

Тарифы от 59 руб в месяц за 512MB RAM и 5Gb NVMe SSD!

Hi-CPU тарифы с повышенной частотой процессора 3.8 – 4.2 GHz, автоматическая установка Windows

Дата-центры на выбор, защита от DDoS-атак

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

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

Вся настройка LIDS делается с помощью одной программы - LIDSadm. LIDSadm работает в двух режимах - настройки правил доступа и ввода команд администрирования. Каждому режиму соответствует несколько параметров запуска.

Как я уже указывал, установки правил доступа находятся в файле /etc/LIDS/LIDS.conf. Изначально он не пустой. Авторы внесли туда наиболее часто используемые правила доступа. Можешь посмотреть его содержимое - все равно ничего не поймешь.:) Да оно и не надо. Файл этот просматривается и изменяется посредством LIDSadm. Посмотреть установки можно с помощью команды LIDSadm -L. Ты должен увидеть следующее:

LIST
Subject ACCESS TYPE Object
Any File READ /sbin
Any File READ /bin
Any File READ /boot
Any File READ /lib
Any File READ /usr
Any File DENY /etc/shadow
/bin/login READ /etc/shadow
/bin/su READ /etc/shadow
Any File APPEND /var/log
Any File WRITE /var/log/wtmp
/sbin/fsck.ext2 WRITE /etc/mtab
Any File WRITE /etc/mtab
Any File WRITE /etc
/usr/sbin/sendmail WRITE /var/log/sendmail.st
/bin/login WRITE /var/log/lastlog
/bin/cat READ /home/xhg
Any File DENY /home/httpd
/usr/sbin/httpd READ /home/httpd
Any File DENY /etc/httpd/conf
/usr/sbin/httpd READ /etc/httpd/conf
/usr/sbin/sendmail WRITE /var/log/sendmail.st
/usr/X11R6/bin/XF86_SVGA NO_INHERIT RAWIO
/usr/sbin/in.ftpd READ /etc/shadow
/usr/sbin/httpd NO_INHERIT HIDDEN

Данные правила доступа прекрасно подходят для большинства случаев. Но использовать ты их не сможешь, т.к. в файле /etc/LIDS/LIDS.conf кроме имен файлов, хранятся также номера inode'ов, а они не будут совпадать с номерами inode'ов на твоей Linux-партиции.:) Информацию об inode'ах можно обновить. Делается это командой LIDSadm -U. Кроме этого некоторые правила доступа неправильны. Объекты типа RAWIO и HIDDEN в данной версии не работают. Советую очистить все правила доступа и создать их заново. Очистить можно командой LIDSadm -Z.

Правила доступа состоят из трех элементов: субъекта (в оригинале subject), объекта (в оригинале object) и цели (в оригинале target). Объектом является любой файл или каталог, на который и должны действовать правила доступа и защита LIDS. Если в качестве объекта указывается каталог, то все файлы в нем и вложенные каталоги с их файлами автоматически становятся объектами. Субъектом является любая защищенная программа, которой дают доступ к защищаемому объекту, т.е. прежде чем использовать программу в качестве субъекта, ее саму надо защитить средствами LIDS от посягательств, применив к ней правила доступа как к объекту. Если субъект не указан, то субъектом является любая программа. Целью является тип доступа - доступ на чтение (READ), запись (WRITE), запрет на какой-либо доступ (DENY), открытие только для дозаписи (APPEND) и игнорирование защиты (IGNORE). Не слишком замудренно?:) Покажу на примерах.

Добавление нового правила происходит по команде:

LIDSadm -A -s субъект -o объект -j цель

Для начала необходимо защитить каталоги /bin, /sbin, /etc, /usr/bin, /usr/sbin, /lib, /boot определив для них доступ только на чтение всем программам.

LIDSadm -A -o /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

Данные настройки защитят систему от установки rootkit'а или какого другого "трояна". Но в Linux'е есть программы, которые пишут в вышеперечисленные каталоги. Например, /bin/mount, /bin/umount, /sbin/fsck.ext2 пишут в файл /etc/mtab и создают временные файлы в /etc. В каталог /etc также пишут /etc/rc.d/rc.local (создает файлы /etc/issue и /etc/issue.net) и /etc/rc.d/rc.sysinit (очищает /etc/mtab и создает /etc/HOSTNAME). Лучше закомментировать строки, отвечающие за запись в /etc в этих скриптах. Но можно и дать им доступ - хуже не будет. В каталог /lib/modules/2.2.16-5tr пишет /sbin/depmod (пересоздает /lib/modules/2.2.16-5tr/modules.dep, название каталога зависит от версии твоего ядра). Таким образом получается:

LIDSadm -A -s /bin/mount -o /etc -j WRITE
LIDSadm -A -s /bin/umount -o /etc -j WRITE
LIDSadm -A -s /sbin/fsck.ext2 -o /etc/mtab -j WRITE
LIDSadm -A -s /etc/rc.d/rc.local -o /etc -j WRITE
LIDSadm -A -s /etc/rc.d/rc.sysinit -o /etc/HOSTNAME -j WRITE
LIDSadm -A -s /etc/rc.d/rc.sysinit -o /etc/mtab -j WRITE
LIDSadm -A -s /sbin/depmod -o /lib/modules/2.2.16-5tr -j WRITE

Естественно, я указал не все программы, которые должны иметь доступ в каталог /etc. Вычислять остальные программы я предоставляю тебе.:)

Файл /etc/shadow лучше спрятать вообще. Это защитит от кражи паролей пользователей.

LIDSadm -A -o /etc/shadow -j DENY

Если оставить все так, ни один пользователь (как и сам root) не сможет зарегистрироваться в системе.:) Доступ к /etc/shadow требуют многие программы. К ним можно смело отнести /bin/login, /bin/su. Также пользователям может потребоваться доступ по ftp.

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

В описании LIDS есть прекрасный пример защиты от замены головной страницы web-сервера, самой любимой шутки хакеров.:) Сначала прячем от всех и вся каталог /home/httpd:

LIDSadm -A -o /home/httpd -j DENY

Затем даем демону httpd доступ на чтение на этот каталог:

LIDSadm -A -s /usr/sbin/httpd -o /home/httpd -j READ

То же можно сделать и с файлами конфигурации web-сервера:

LIDSadm -A -o /etc/httpd/conf -j DENY
LIDSadm -A -s /usr/sbin/httpd -o /etc/httpd/conf -j READ

Неплохо было бы также защитить от изменений файлы логов. Сначала надо сделать каталог /var/log доступным только для дозаписи:

LIDSadm -A -o /var/log -j APPEND

Некоторые файлы дожны быть доступны для записи:

LIDSadm -A -s /bin/login -o /var/log/lastlog -j WRITE
LIDSadm -A -o /var/log/wtmp -j WRITE
LIDSadm -A -s /usr/sbin/sendmail -o /var/log/sendmail.st -j WRITE

Если ты пользуешься /usr/sbin/logrotate, то лучше предоставить этой программе доступ на запись ко всему каталогу:

LIDSadm -A -s /usr/sbin/logrotate -o /var/log -j WRITE

В качестве объекта правил доступа может также служить способность, т.е. если ты отключил какую-то способность для всех программ, ты можешь предоставить ее какой-то определенной. Целью в данном случае могут являться - предоставлять потомкам процесса данную способность (INHERIT) или не предоставлять (NO_INHERIT). Предположим, если ты убрал способность CAP_SYS_RAWIO у всех программ, то такая способность должна быть предоставлена X-серверу, причем этой способностью не должны обладать его потомки.

LIDSadm -A -s /usr/X11R6/bin/XF86_SVGA -t -o CAP_SYS_RAWIO -j NO_INHERIT

Заметь: для использования способности в качестве объекта правил доступа, должно применяться сочетание параметров -t -o, а не просто -o, как в случае с доступом к файлам.

Еще один пример: если ты отменил способность CAP_SYS_ADMIN, то она понадобиться /bin/update и ее потомкам.

LIDSadm -A -s /bin/update -t -o CAP_SYS_ADMIN -j INHERIT

Существует одна способность, которая не влияет на все программы, но может предоставлена какой-то определенной - эта способность скрывать себя во время выполнения CAP_HIDDEN. Программа, имеющая такую способность не видна в списке процессов, а следовательно с ней ничего нельзя сделать.:)

LIDSadm -A -s /usr/sbin/httpd -t -o CAP_HIDDEN -j NO_INHERIT
LIDSadm -A -s /sbin/syslogd -t -o CAP_HIDDEN -j NO_INHERIT
LIDSadm -A -s /sbin/klogd -t -o CAP_HIDDEN -j NO_INHERRIT

Таким образом в списке процессов не будет видет http-сервер, system logger и kernel logger, хотя они могут быть запущены.:)

Если какое-то правило доступа тебе уже не нужно, или оно внесено ошибочно, его можно удалить командой LIDSadm -D.

LIDSadm -D -s субъект -o объект -j цель

Можно указывать только субъект или только объект, в этом случае удалятся все правила, в которых встречается указанный субъект или объект. Если указан и субъект, и объект, удалится правило, в котором присутствует и указанный субъект, и указанный объект одновременно.

Это далеко не полный список правил, который должен быть. Список правил зависит от программного обеспечения, которое у тебя установлено и работает, и от тех способностей, что ты отключил. Тебе придется попотеть, прежде чем твоя система заработает должным образом.:)

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

LILO boot: linux security=0

Также в процессе работы можно отключить LIDS и изменить любые способности и правила доступа. Об этом - в следующей главе.:)

©Ерижоков А.А., 2000.
Использование данного документа разрешено только с согласия автора и с указанием первоисточника: DH's Linux Site

Назад | Содержание | Вперед

 

VPS/VDS за 1 евро!

vCore x1, 1 GB RAM ECC, 15 GB SSD (RAID 10), Port 1 Gbps, Трафик ∞, Виртуализатор KVM.

Выбор стран: Нидерланды, Молдова и Россия!

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...