Intro

LIDS (Linux Intrusion Detection System) — по моему самый мощный
IDS для Linux систем (ну не считая всеми любимого SNORT-a). Его основными авторами и разработчиками являются: Xie Huagang из Китая (ему принадлежит идея создания LIDS-а), Philippe Biondi из Франции, администратор Steve Bremer (ведет LIDS_FAQ). При создании LIDS-а разработчики выделили основную проблему, связанную с безопасностью Linux систем, а именно получение взломщиком Root-овских привилегий,
после того, как хакер получал данные привилегии он мог творить в системе все что угодно.
Обычно действия средне статических взломщиков ограничиваются изменением содержимого главной страницы сайта (если взламываемая система является web-сервером),
расшифровкой /etc/shadow, запуском руткитов,
подчисткой лог-файлов и т.д. Поэтому основной задачей при создании LIDS-а являлось уменьшение root-овских возможностей (а также возможностей других пользователей), что привело бы к тому, что взломщик не смог бы проделать выше приведенные действия. LIDS позволяет распределять права доступа к файлам, устройствам, сетевым интерфейсам на уровне программ, а не на уровне пользователей (например мы сможем спрятать наш «/etc/shadow» от всех и разрешить к нему доступ на чтение только программе «/bin/login»), в нем есть встроенный детектор сканирования портов (который с каждой новой версией позволяет определить все более новые виды сканирования). LIDS
по сути не является программой, так как это патч для ядра => он работает на уровне ядра.

В данной статье я попытаюсь описать принцип работы и конфигурации LIDS-а на основе материала взятого из man-ов, HOWTO, и собственных знаний. Вообще документацию по LIDS-у его создатели не сильно часто пишут, некоторый период они вообще не подавали признаков жизни, и их официальный сайт был в дауне, но сейчас вроде все нормализовалось.

В данном материале описана версия LIDS-а под ядро
2.4.18 , на сайте создателей описывается только версии под ядро
2.2.* и они имеют некоторые отличия. Но это не значит, что если у вас иная версия ядра, то все, что описывается в данной статье, у вас не будет работать, напротив
— оно будет работать, только может возникнуть маленькое отличие в синтаксисе написания команд (например вместо слова READONLY вам придется писать слово READ и т.д.)

Приступим

LIDS можно скачать с официального сайта
www.lids.org или его зеркал (одно из которых
http://lids.gnuchina.org). Номер версии LIDS-а, состоит из 2 частей, давайте посмотрим, почему это так. Для примера возьмем пакет «lids-1.1.1r2-2.4.18.tar.gz» — мы видим что «1.1.1r2» это первая часть, она указывает на версию самого LIDS-а, а «2.4.18» вторая часть которая указывает на версию ядра, которое может быть пропатченно данной версией LIDS-а, поэтому если у вас стоит ядро иной версии то вы должны
будете выбрать LIDS именно под вашу версию.

Внимание! Не забудьте создать загрузочную дискету с вашей текущей версией ядра, для того чтобы в случае каких-либо проблем с LIDS-ом вы смогли бы загрузить вашу систему без него.

Конфигурация ядра

Перед тем как пропатчить ядро, вам нужно будет зайти в папку с вашим ядром («/usr/src/linux») и ввести команду «make config» или «make menuconfig», которая сгенерирует различные файлы, в том числе и файл version.h.
Теперь вы можете пропатчить код вашего ядра, для этого запустите утилиту «patch» которая пропатчит его :

# patch -p1 < /путь_к_lids-у/*.patch

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

# make xconfig
# make menuconfig
# make config

Для того чтобы теперь включить LIDS в ядро, вам нужно в разделе «Code maturity level options» выбрать опцию «Prompt for development and incomplete code/drivers», которая позволит выводить все ошибки возникшие в LIDS-e (у меня таких не возникало, ну кто знает…:), и в разделе «General setup» включить опцию «Sysctl support
(CONFIG_SYSCTL)», которая позволяет производить различные конфигурационные изменения в ядре (и в LIDS-е), не
перекомпилируя его. Теперь у вас должен появится новый раздел с названием «Linux Intrusion Detection System», который позволяет сконфигурировать основные опции LIDS-а. Ниже приводятся сами опции и краткие советы по их использованию (советы заключены в скобки) :

Maximum protected objects to manage — максимальное количество защищаемых объектов (лучше ставить не меньше 1024 и не больше 2024).

Maximum ACL subjects to manage — максимальное количество субъектов, которые будут заноситься в качестве правил (лучше ставить не меньше 1024 и не больше 2024).

Maximum ACL objects to manage — максимальное количество объектов, которые будут заноситься в качестве правил (лучше ставить не меньше 1024 и не больше 2024).

Hang up console when raising a security alert — закрывать консоль когда нарушаются правила установленные LIDS-ом (желательно ее конечно включить, но если вы впервые настраиваете LIDS, то данную опцию лучше не трогать, пока вы полностью не разберетесь с его настройкой).

Security alert when execing unprotected programms before sealing — данная опция отвечает за вывод предупреждений при нарушении правил установленных в LIDS-e до того, как LIDS будет инициализирован (у меня данная опция отключена).

Attempt not to flood logs — устанавливает режим, при котором LIDS будет пытаться не засорять логи, то есть туда будет заноситься только важная информация о нарушении правил, работе LIDS-a и т.д. (желательно включить эту опцию).

Attempt between two identic logs — устанавливает таймаут при котором не будут логироваться 2 идентичных сообщения (лучше оставить значение по умолчанию 60).

Allow switching LIDS protections — отвечает за возможность выключения/включения LIDS-a в процессе работы.

Restrict mode switching to specified terminals — позволяет выбрать определенные терминалы, c которых можно будет отключить LIDS (включайте данную опцию).

Allow mode switching from a Linux console — разрешает выключать/включать LIDS с Linux консоли (tty*), чтобы туда попасть просто нажмите [Ctrl+Alt+F(1-6)]. (следует включить).

Number of attempts to submit password — количество попыток ввода неправильного пароля для LIDS-a (выбирайте данную опцию).

Time to wait after fail — указать время задержки, при котором если кто-то ввел неправильный пароль заданное в верхней опции количество раз, то LIDS заблокируется и запретит производить какие либо с ним действия, в том числе и отключать его (на ваше усмотрение).

Allow remote users to switch LIDS protections — разрешает удаленным пользователям включать/выключать LIDS (данную опцию лучше не включать).

Allow any program to switch LIDS protections — разрешает программам включать/выключать LIDS (данную опцию лучше не включать).

Allow reloading config. file — разрешает перезагрузку конфигураций LIDS-а (данную опцию нужно включить).

Port Scanner Detector in kernel — детектор сканинга портов, может детектить большое количество различных методов сканирования включая
SYN, FIN, NULL (желательно включить).

Send security alerts through network — позволяет отправлять все предупреждения/логи на ваш е-мэйл
(по вашему усмотрению).

Hide klids network threads — прятать демон который будет производить отправку писем (желательно включить). 

Number of connection tries before giving up — количество попыток отправки писем (на ваше усмотрение). 

Sleep time after a failed connection — таймаут при неудачных попытках послания письма (на ваше усмотрение).

Message queue size — число не отправленных писем в очереди, при превышении которого последнее письмо будет удаляться (на ваше усмотрение). 

Use generic mailer pseudo-script — использовать стандартный скрипт для отправки писем (нужно включить).

LIDS debug — отвечает за вывод отладочных сообщений (желательно выключить).

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

# make dep
# make clean
# make bzlilo
# make modules
# make modules_install
# mv /vmlinuz /boot/vmlinuz
# mv /System.map /boot/System.map

Также в файл «/etc/lilo.conf» добавьте такие строки : 

image=/boot/vmlinuz
label=linuxLIDS
read-only
root=/dev/hda6 # у вас может отличаться, поэтому введите команду «df», и удостоверьтесь в том что Linux установлен именно тут.

После чего перезапустите лилу 🙂

# lilo

Внимание! Разработчики LIDS-а в целях безопасности, и лучшей настройки запрещают перезагружать комп до того, как не будет настроен сам LIDS (но если вы его и перезагрузите, то ничего страшного не произойдет).

(Продолжение следует)

Оставить мнение

Check Also

Страдания с ReactOS. Почему в заменителе Windows работают трояны, но не работает Word

Сегодня в нашей кунсткамере демонстрируется необычайный организм — двадцатилетний зародыш …