Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 56
Текст из файла (страница 56)
В приведенном примере конфигурирования LogSentry отсылает по электронной почтесообщения администратору системы только в случае, если произошли события, оставившие в файлах регистрации сообщения с ключевыми словами из перечня, указанного в конфигурационных файлах LogSentry.Для ежедневного запуска LogSentry необходимо выполнить некоторые операции.226Часть 4. Программное обеспечение для ограничения доступа к серверу...Шаг 1Создайте в каталоге /etc/cron.daily файл logsentry, содержащий следующие строки:cat <<EOF > /etc/cron.daily/logsentry#!/bin/sh/usr/bin/logcheck.shEOFШаг 2Установите права доступа к файлу:[root@www /]# chmod 510 /etc/cron.daily/logsentryТестирование LogSentryДля тестирования работоспособности LogSentry выполните следующие операции.Шаг 1Внесите какие-нибудь уникальные ключевые слова (которые не могут появиться сами по себе в регистрационных файлах системы) в файл /etc/logsentry/hacking и /etc/logsentry/violations.Например, соответственно, WALBR и BAMBR.Шаг 2Добавьте в конец файла /var/log/messagess строки:Apr 25 12:00:16 www -- root[1027]: ROOT LOGIN ON tty2 WALBRApr 25 12:00:30 www -- root[1027]: ROOT LOGIN ON tty2 BAMBRШаг 3Проверьте через сутки почту администратора системы.
Если в ней будет сообщение, сгенерированноеlogcheck, содержащее информацию о двух «страшных» событиях (записи о которых вы сами внесли вфайл регистрации):From root Fri Apr 25 12:08:04 2003Date: Fri, 25 Apr 2003 12:08:04 +0400From: root <root@www.dymatel.und>To: root@www.dymatel.undSubject: www.dymatel.und 04/25/03:12.08 system checkSecurity Violations=-=-=-=-=-=-=-=-=-=Apr 25 12:00:16 www -Apr 25 12:00:30 www -Unusual System Events=-=-=-=-=-=-=-=-=-=-=Apr 25 12:00:16 www -Apr 25 12:00:30 www --root[1027]: ROOT LOGIN ON tty2 WALBRroot[1027]: ROOT LOGIN ON tty2 BAMBRroot[1027]: ROOT LOGIN ON tty2 WALBRroot[1027]: ROOT LOGIN ON tty2 BAMBRто LogSentry установлен, корректно настроен и надежно отслеживает нежелательные события в вашей системе.Шаг 4Подождите еще сутки и проверьте почту администратора системы.
В ней не должно быть сообщения,сгенерированного logcheck, содержащего информацию о событиях, оставляющих в файлах регистрациистроки, где есть ключевые слова WALBR и BAMBR (сами по себе записи, содержащие эти слова, вряд ли смогут появиться на вашей системе).ЗАМЕЧАНИЕ Если вы не желаете проверять работоспособность и правильность настроек logcheck втечение двух дней, то запустите его вручную, используя команду:[root@www /]# /usr/bin/logcheck.shШаг 5WALBRУдалитестроки,содержащиеключевыеслова/etc/logsentry/hacking и /etc/logsentry/violations.иBAMBR,изфайловГлава 17. HostSentry – программное обеспечение для обнаружения необычной активности...Глава 17HostSentry – программное обеспечение для обнаружения необычной активностипользователейВ этой главе:1.
Ограничения и допущения2. Пакеты3. Компиляция, оптимизация и инсталляция HostSentry4. Конфигурирование HostSentry5. Конфигурационный файл /etc/hostsentry/hostsentry.conf6. Конфигурационный файл /etc/hostentry/hostsentry.ignore7. Конфигурационный файл /etc/hostentry/hostsentry.modules8. Конфигурационный файл /etc/hostsentry/moduleForeignDomain.allow9. Конфигурационный файл /etc/hostsentry/moduleMultipleLogins.allow10.Файл инициализации /etc/init.d/hostsentry: hostsentry файл инициализации11. Тестирование HostSentry227228Часть 4.
Программное обеспечение для ограничения доступа к серверу...В системах, где пользователи имеют доступ к командному интерпретатору, важно отслеживать нестандартные попытки регистрации в системе (Login Anomaly Detection, LAD). Именно для этого предназначена программа HostSentry, которая позволяет администратору выявлять необычную активность пользователей, например, попытку одновременной регистрации пользователя tetushka_luba, допущенного к работе лишь на одной рабочей станции в локальной сети, на корпоративном сервере одновременно из Кореи иПольши в 3.00 первого января.Ограничения и допущенияИсходные коды находятся в каталоге /var/tmp.Все операции выполняются пользователем с учетной записью root.Используется дистрибутив ASPLinux 7.3 (Vostok).Перекомпиляция ядра не требуется.Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы это не проверяли.ПакетыПоследующие рекомендации основаны на информации, полученной с домашней страницы проектаhttp://www.psionic.com в сентябре 2002 г.
На момент написания этой главы – 25.04.2003 – с адресаhttp://www.psionic.com осуществляется переадресация на сервер компании Cisco System Inc.(http://www.cisco.com). По неофициальной и документально неподтвержденной информации, полученной авторами из различных списков рассылки, компания Psionic Software System приобретена Cisco System Inc. в конце 2002 г. Несмотря на это, разработчики проекта надеются в ближайшем будущем выложитьисходные коды HostSentry для свободного использования в личных целях.Исходные коды HostSentry содержатся в архиве hostsentry-version.tar.gz (последняя доступная на момент написания главы стабильная версия hostsentry-0.02.tar.gz). Надеемся, что ближайшее время вы сможете найти в Интернете исходные коды этой удобной и необходимой на каждой серверной системе программы.
В противном случае никто не сможет запретить вам использовать исходные коды программы, свободно распространяемые ранее компанией Psionic Software System, для использования вличных целях. Вы также можете воспользоваться rpm-пакетом hostsentry-0.02-4.noarch.rpm.ЗАМЕЧАНИЕ Авторы сожалеют, что лицензионное соглашение, по которому ранее распространяласьпрограмма HostSentry, не позволяет распространять ее без разрешения правообладателей.Для нормальной инсталляции и работы программного обеспечения необходимо, чтобы в системе были установлены пакеты db3-3.3.11-6.i386.rpm и python2-2.2-16.i386.rpm, входящие в комплект поставки дистрибутива ASPLinux 7.3 (Vostok).Компиляция, оптимизация и инсталляция HostSentryШаг 1Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кодамис использованием процедур, описанных в шаге 1 радела «Компиляция, оптимизация и инсталляцияOpenSSL» главы 12.Шаг 2Установите rpm-пакеты db3-3.3.11-6.i386.rpm и python2-2.2-16.i386.rpm.Если вы следовали нашим рекомендациям из главы 2, то первый пакет уже установлен.
А для установки второго перейдите в каталог /home/distrib и выполните команду:[root@www distrib]# rpm –ihv python2-2.2-16.i386.rpmШаг 3Распакуйте архив с исходными кодами в каталоге /var/tmp:[root@www /]# cd /var/tmp/[root@www tmp]# tar xzpf hostsentry-0.02.tar.gzШаг 4Измените заданное по умолчанию расположение файлов HostSentry.Для этого в файле /var/tmp/hostsentry-0.02/Makefile замените строку:Глава 17. HostSentry – программное обеспечение для обнаружения необычной активности...229INSTALLDIR = /usr/local/abacus/hostsentryна:INSTALLDIR = /etc/hostsentryLIBDIR = /usr/lib/hostsentryЗамените строки:@echo "Installing hostsentryin:$ (INSTALLDIR)"install -d-g 0-o root -m 0700 $(INSTALLDIR)install -d-g 0-o root -m 0700 $(INSTALLDIR)/modulesinstall -g 0 -o root -m 0700 host* $(INSTALLDIR)install -g 0 -o root -m 0700 module* $(INSTALLDIR)/modulesна:@echo "Installing HostSentry in:$(INSTALLDIR)"install -d -m 0700 $(INSTALLDIR)install -d -m 0700 $(LIBDIR)/modulesinstall -m 0400 host* $(LIBDIR)install -m 0400 module* $(LIBDIR)/modulesШаг 5В файле /var/tmp/ hostsentry-0.02/hostSentryConfig.py замените строку:CONFIG= '/usr/local/abacus/hostsentry/hostsentry.conf'на:CONFIG= '/etc/hostsentry/hostsentry.conf'Шаг 6В файле /var/tmp/ hostsentry-0.02/hostSentryStat.py замените строку:db = '/usr/iocal/abacus/hostsentry/hostsentry.db'на:db = '/var/host.sentry/hostsentry.db'Шаг 7В файле /var/tmp/ hostsentry-0.02/moduleForeignDomain замените строку:ALLOW_FILE = '/moduleForeignDomain.allow'на:ALLOW_FILE = 'moduleForeignDomain.allow'Замените строку:allowPath = config.parseToken('MODULE_PATH')на:allowPath = ' /etc/hostsentry/ 'Шаг 8В файле /var/tmp/ hostsentry-0.02/MultipleLogins.py замените строку:ALLOW_FILE = '/moduleMultipleLogins.allow'на:ALLOW_FILE = 'moduleMultiplelogins.allow'Строку:allowPath = config.parseToken('MODULE_PATH')на:allowPath = '/etc/hostsentry/'Шаг 9В начало файла hostsentry.py добавьте строку:#!/usr/bin/env pythonШаг 10Откомпилируйте исходные коды, проинсталлируйте файлы HostSentry, создайте и сохраните списокинсталлированных файлов:[root@www tmp]# cd hostsentry-0.02/230Часть 4.
Программное обеспечение для ограничения доступа к серверу...[root@www hostsentry-0.02]# find /* > /root/hostsentry1[root@www hostsentry-0.02]# make install[root@www hostsentry-0.02]# mkdir -m0700 /var/hostsentry[root@www hostsentry-0.02]# find /* > /root/hostsentry2[root@www hostsentry-0.02]# diff /root/hostsentry1 /root/hostsentry2>hostsentry.installed[root@www hostsentry-0.02]# mv /root/hostsentry.installed/very_reliable_place/hostsentry.installed.YYYYMMDDШаг 11Удалите архив и исходные коды программы:[root@www /]# cd /var/tmp/[root@www tmp]# rm -rf hostsentry-0.02/[root@www tmp]# rm -f hostsentry-0.02.tar.gzКонфигурирование HostSentryКонфигурирование HostSentry осуществляется с использованием следующих файлов:• главного конфигурационного файла /etc/hostsentry/hostsentry.conf;• файла /etc/hostentry/hostsentry.ignore, содержащего список игнорируемых пользователей;• файла /etc/hostentry/hostsentry.action, неиспользуемого в версии 0.02;• файла /etc/hostentry/hostsentry.modules, содержащего список модулей, выполняемыхпри входе и выходе пользователя из системы;• файла /etc/hostentry/moduleForeignDomain.allow, содержащего список доменов, приудаленной регистрации с которых входы и выходы пользователей не регистрируются;• файла /etc/hostentry/moduleMultipleLogins.allow, содержащего список хостов, приудаленной регистрации с которых пользователям разрешено одновременно несколько регистраций в системе;• файла /etc/init.d/hostsentry для инициализации HostSentry.Конфигурационный файл /etc/hostsentry/hostsentry.confШаг 1Создайте файл /etc/hostsentry/hostsentry.conf, содержащий следующие строки:IGNORE_FILE = "/etc/hostsentry/hostsentry.ignore"ACTION_FILE = "/etc/hostsentry/hostsentry.action"MODULE_FILE = "/etc/hostsentry/hostsentry.modules"MODULE_PATH = "/usr/iib/hostsentry/modules"WTMP_FILE = "/var/log/wtmp"DB_FILE = "/var/hostsentry/hostsentry.db"DB_TTY_FILE = "/var/hostsentry/hostsentry.tty.db"WTMP FORMAT = "384/8:32/44:32/76:256"Шаг 2Установите права доступа к файлу и определите его владельцем пользователя root:[root@www /]# chmod 600 /etc/hostsentry/hostsentry.conf[root@www /]# chown 0.0 /etc/hostsentry/hostsentry.confКонфигурационный файл /etc/hostentry/hostsentry.ignoreШаг 1Создайте файл /etc/hostentry/hostsentry.ignore, содержащий список пользователей, входи выход которых из системы не регистрируется HostSentry.
Например, если программа установлена на FTPсервере, в этот файл следует включить FTP-пользователей, которым разрешен анонимный доступ. Это позволит существенно снизить количество «ложных тревог». Имя каждого пользователя должно размещатьсяв отдельной строке. Для начала авторы рекомендуют в файл добавить только одну строку, содержащуюкомментарий, например:# Place user-names in this file that you want to ignore (ftp, etc.)Глава 17. HostSentry – программное обеспечение для обнаружения необычной активности...231Шаг 2Установите права доступа к файлу и определите его владельцем пользователя root:[root@www /]# chmod 600 /etc/hostsentry/hostsentry.ignore[root@www /]# chown 0.0 /etc/hostsentry/hostsentry.ignoreКонфигурационный файл /etc/hostentry/hostsentry.modulesШаг 1Создайте файл /etc/hostentry/hostsentry.modules, содержащий список модулей, выполняемых при входе и выходе пользователя из системы:moduleLoginLogoutmoduleFirstLoginmoduleForeignDomainmoduieMultipleLoginsmoduleRhostsCheckmoduleHistoryTruncatedmoduleOddDirnamesШаг 2Установите права доступа к файлу и определите его владельцем пользователя root:[root@www /]# chmod 600 /etc/hostsentry/hostsentry.modules[root@www /]# chown 0.0 /etc/hostsentry/hostsentry.modulesКонфигурационный файл /etc/hostsentry/moduleForeignDomain.allowШаг 1Создайте файл /etc/hostsentry/moduleForeignDomain.allow, содержащий список доменов, при удаленной регистрации с которых входы и выходы пользователей не регистрируются.