Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В

..pdf
Скачиваний:
92
Добавлен:
24.05.2014
Размер:
3.66 Mб
Скачать

Глава 15. sXid – программное обеспечение для поиска файлов...

221

Шаг 2

 

 

 

 

Запустите sXid:

 

 

 

[root@drwalbr home]# sxid –k

 

 

sXid Vers

: 4.0.2

 

 

 

Check run

: Wed Apr 23 19:06:53 2003

 

 

This host

: drwalbr.und

 

 

 

Spotcheck

: /home

 

 

 

Excluding

: /proc /mnt /cdrom /floppy

 

 

Ignore Dirs: /home

 

 

 

Forbidden

: /home /tmp

 

 

 

(enforcing removal of s[ug]id bits in forbidden paths)

 

No changes

found

 

 

 

Проверка прошла успешно, файлы с SUID или SGID-битами не обнаружены.

 

Шаг 3

 

 

 

 

Установите SUID или SGID-биты в правах доступа к файлу /home/worm:

 

[root@drwalbr home]# chmod +s worm

 

 

[root@drwalbr home]# ls -l worm

0 Апр 23 19:02 worm

 

-rwsr-sr-x

1 root

root

 

Шаг 4

Снова запустите sXid:

[root@drwalbr home]# sxid –k

sXid Vers

:

4.0.2

 

Check run

:

Wed Apr 23 19:09:44 2003

 

This host

:

drwalbr.und

 

Spotcheck

:

/home

 

Excluding

:

/proc /mnt /cdrom /floppy

 

Ignore Dirs:

/home

 

Forbidden

:

/home /tmp

 

(enforcing

removal of s[ug]id bits in forbidden paths)

Checking for

any additions or removals:

 

+ /home/worm

*root.*root

6755

Checking for

changed attributes or sums/inodes:

 

Checking for

no user/group matches:

 

Checking for

forbidden s[ug]id items:

 

home/worm

 

 

*root.*root

755

sXid обнаружил файл home/worm с SUID или SGID-битами в правах доступа и удалил эти биты из

прав доступа:

 

ls -l worm

 

 

[root@drwalbr

home]#

 

Апр 23 19:02 worm

-rwxr-xr-x

1 root

root

0

222

Часть 4. Программное обеспечение для ограничения доступа к серверу...

Глава 16

LogSentry – программное обеспечение для регистрации попыток несанкционированного доступа к системе

В этой главе:

1. Ограничения и допущения

2.Пакеты

3.Инсталляция с помощью rpm-пакетов

4.Компиляция, оптимизация и инсталляция LogSentry

5.Конфигурирование LogSentry

6.Тестирование LogSentry

Глава 16. LogSentry – программное обеспечение для регистрации попыток...

223

Одной из важных задач в области обеспечения безопасности является регулярная проверка файлов регистрации. Частенько администраторы просто не успевают это сделать, что нередко приводит к довольно печальным последствиям.

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

Ограничения и допущения

Исходные коды находятся в каталоге /var/tmp.

Все операции выполняются пользователем с учетной записью root. Используется дистрибутив ASPLinux 7.3 (Vostok).

Перекомпиляция ядра не требуется.

Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы это не проверяли.

Пакеты

Последующие рекомендации основаны на информации, полученной с домашней страницы проекта LogSentry http://www.psionic.com в сентябре 2002 г. На момент написания этой главы – 24.04.2003 – с адреса http://www.psionic.com осуществляется переадресация на сервер компании Cisco System Inc.(http://www.cisco.com). По неофициальной и документально неподтвержденной информации, полученной авторами из различных списков рассылки, компания Psionic Software System приобретена Cisco System Inc. в конце 2002 г. Несмотря на это, разработчики проекта надеются в ближайшем будущем выложить исходные коды LogSentry для свободного использования в личных целях.

Исходные коды LogSentry содержатся в архиве logsentry-version.tar.gz (последняя доступная на момент написания главы стабильная версия logsentry-1.1.1.tar.gz). Надеемся, что в ближайшее время вы сможете найти в Интернете исходные коды этой удобной и необходимой на каждой серверной системы программы. В противном случае никто не сможет запретить вам использовать исходные коды программы, распространяемые ранее компанией Psionic Software System. Вы также можете воспользоваться rpm-пакетом logcheck-1.1.1-7.asp.i386.rpm, входящим в комплект поставки ди-

стрибутива ASPLinux 7.3 (Vostok).

Инсталляция с помощью rpm-пакета

Если вы предпочитаете использование системы со стандартным ядром и программным обеспечением, установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить следующие операции.

ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.

Шаг 1

Проверьте, установлен ли пакет LogSentry с помощью следующей команды:

[root@www /]# rpm –iq logchec

Если вы следовали нашим рекомендациям, то пакет уже должен быть установлен.

Шаг 2

В случае его отсутствия перейдите в каталог, где находится пакет logcheck-1.1.1- 7.asp.i386.rpm. Если вы в соответствии с рекомендациями главы 2 скопировали все пакеты, входящие в дистрибутив, в каталог /home/distrib, то выполните команду:

[root@www /]# cd /home/distrib

и установите:

224

Часть 4. Программное обеспечение для ограничения доступа к серверу...

[root@www distrib]# rpm –ihv logcheck-1.1.1-7.asp.i386.rpm

или обновите пакет:

[root@www distrib]# rpm –Uhv logcheck-1.1.1-7.asp.i386.rpm

После установки пакета перейдите к настройке программы.

Компиляция, оптимизация и инсталляция LogSentry

Шаг 1 Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кодами

с использованием процедур, описанных в шаге 1 радела «Компиляция, оптимизация и инсталляция

OpenSSL» главы 12.

Шаг 2

Распакуйте архив с исходными кодами в каталоге /var/tmp:

[root@www /]# cd /var/tmp/

[root@www tmp]# tar xzpf logsentry-1.1.1.tar.gz

Шаг 3

Измените заданное по умолчанию расположение конфигурационных файлов LogSentry. Для этого в файле /var/tmp/logsentry/logcheck-1.1.1/system/linux/logcheck.sh замените строку:

LOGTAIL=/usr/local/bin/logtail

на:

LOGTAIL=/usr/bin/logtail

Замените строку:

TMPDIR=/usr/local/etc/tmp

на:

TMPDIR=/var/logsentry

Замените строку:

HACKING_FILE=/usr/local/etc/logcheck.hacking

на:

HACKING_FILE=/etc/logsentry/hacking

Замените строку:

VIOLATIONS_FILE=/usr/local/etc/logcheck.violations

на:

VIOLATIONS_FILE=/etc/logsentry/violations

Замените строку:

VIOLATIONS_IGNORE_FILE=/usr/local/etc/logcheck.violations.ignore

на:

VIOLATIONS_IGNORE_FILE=/etc/logsentry/violations.ignore

Замените строку:

IGNORE_FILE=/usr/local/etc/logcheck.ignore

на:

IGNORE_FILE=/etc/logsentry/ignore

Шаг 4 Для установки флагов оптимизации и изменения заданного по умолчанию расположения исполняе-

мых файлов LogSentry отредактируйте файл /var/tmp/logsentry/logcheck-1.1.1/Makefile.

Замените строку:

CFLAGS = -O

на:

-O2 -march=i686 -funroll-loops

Замените строку:

INSTALLDIR = /usr/local/etc

на:

Глава 16. LogSentry – программное обеспечение для регистрации попыток...

225

INSTALLDIR = /etc/logsentry

Замените строку:

INSTALLDIR_BIN = /usr/local/bin

на:

INSTALLDIR_BIN = /usr/bin

Замените строку:

NSTALLDIR_SH = /usr/local/etc

на:

INSTALLDIR_SH = /usr/sbin

Замените строку:

TMPDIR = /usr/local/etc/tmp

на:

TMPDIR = /var/logsentry

Шаг 5

Откомпилируйте исходные коды, проинсталлируйте файлы LogSentry, создайте и сохраните список инсталлированных файлов:

[root@www tmp]# cd logcheck-1.1.1

[root@www logcheck-1.1.1]# find /* > /root/logsentry1 [root@www logcheck-1.1.1]# mkdir -m0700 /etc/logsentry [root@www logcheck-1.1.1]# make linux

[root@www logcheck-1.1.1]# strip /usr/bin/logtail [root@www logcheck-1.1.1]# cd /etc/logsentry

[root@www logsentry]# mv logcheck.hacking hacking [root@www logsentry]# mv logcheck.violations violations

[root@www logsentry]# mv logcheck.violations.ignore violations.ignore [root@www logsentry]# mv logcheck.ignore ignore

[root@www logsentry]# cd var/tmp/logcheck-1.1.1

[root@www logcheck-1.1.1]# find /* > /root/logsentry2

[root@www logcheck-1.1.1]# diff /root/logsentry1 /root/logtsentry2

>/root/logsentry.installed

[root@www logcheck-1.1.1]# mv /root/logsentry.installed

/very_reliable_place/logsentry.installed.YYYYMMDD

Шаг 6

Удалите архив и каталог с исходными кодами LogSentry:

[root@www logcheck-1.1.1]# cd /var/tmp/

[root@www tmp]# rm -rf logcheck-1.1.1/ [root@www tmp]# rm -f logsentry-1.1.1.tar.gz

Конфигурирование LogSentry

Конфигурирование LogSentry осуществляется с использованием следующих файлов:

файла /etc/logsentry/hacking, содержащего перечень ключевых слов, соответствующих сообщениям о попытках неудачных регистраций в системе;

файла /etc/logsentry/violations, содержащего перечень ключевых слов, соответствующих сообщениям о негативных событиях;

файла /etc/logsentry/ignore, содержащего перечень ключевых слов, соответствующих сообщениям о негативных событиях, которые должны быть проигнорированы LogSentry.

ЗАМЕЧАНИЕ Более подробная информация о назначении каждого из конфигурационных файлов LogSentry содержится в файле INSTALL, находящимся в корневом каталоге исходных кодов LogSentry.

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

Для ежедневного запуска LogSentry необходимо выполнить некоторые операции.

226

Часть 4. Программное обеспечение для ограничения доступа к серверу...

Шаг 1

Создайте в каталоге /etc/cron.daily файл logsentry, содержащий следующие строки: cat <<EOF > /etc/cron.daily/logsentry

#!/bin/sh

/usr/bin/logcheck.sh EOF

Шаг 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 WALBR Apr 25 12:00:30 www -- root[1027]: ROOT LOGIN ON tty2 BAMBR

Шаг 3 Проверьте через сутки почту администратора системы. Если в ней будет сообщение, сгенерированное

logcheck, содержащее информацию о двух «страшных» событиях (записи о которых вы сами внесли в файл регистрации):

From root Fri Apr 25 12:08:04 2003 Date: Fri, 25 Apr 2003 12:08:04 +0400 From: root <root@www.dymatel.und>

To: root@www.dymatel.und

Subject: www.dymatel.und 04/25/03:12.08 system check

Security Violations =-=-=-=-=-=-=-=-=-=

Apr 25 12:00:16 www -- root[1027]: ROOT LOGIN ON tty2 WALBR Apr 25 12:00:30 www -- root[1027]: ROOT LOGIN ON tty2 BAMBR Unusual System Events

=-=-=-=-=-=-=-=-=-=-=

Apr 25 12:00:16 www -- root[1027]: ROOT LOGIN ON tty2 WALBR Apr 25 12:00:30 www -- root[1027]: ROOT LOGIN ON tty2 BAMBR

то LogSentry установлен, корректно настроен и надежно отслеживает нежелательные события в вашей системе.

Шаг 4 Подождите еще сутки и проверьте почту администратора системы. В ней не должно быть сообщения,

сгенерированного logcheck, содержащего информацию о событиях, оставляющих в файлах регистрации строки, где есть ключевые слова WALBR и BAMBR (сами по себе записи, содержащие эти слова, вряд ли смогут появиться на вашей системе).

ЗАМЕЧАНИЕ Если вы не желаете проверять работоспособность и правильность настроек logcheck в течение двух дней, то запустите его вручную, используя команду:

[root@www /]# /usr/bin/logcheck.sh

Шаг 5

Удалите строки, содержащие ключевые слова WALBR и BAMBR, из файлов

/etc/logsentry/hacking и /etc/logsentry/violations.

Глава 17. HostSentry – программное обеспечение для обнаружения необычной активности...

227

Глава 17

HostSentry – программное обеспечение для обнаружения необычной активности пользователей

В этой главе:

1. Ограничения и допущения

2.Пакеты

3.Компиляция, оптимизация и инсталляция HostSentry

4.Конфигурирование HostSentry

5.Конфигурационный файл /etc/hostsentry/hostsentry.conf

6.Конфигурационный файл /etc/hostentry/hostsentry.ignore

7.Конфигурационный файл /etc/hostentry/hostsentry.modules

8.Конфигурационный файл /etc/hostsentry/moduleForeignDomain.allow

9.Конфигурационный файл /etc/hostsentry/moduleMultipleLogins.allow

10.Файл инициализации /etc/init.d/hostsentry: hostsentry файл инициализации

11. Тестирование HostSentry

228

Часть 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 – программное обеспечение для обнаружения необычной активности...

229

INSTALLDIR = /usr/local/abacus/hostsentry

на:

INSTALLDIR = /etc/hostsentry LIBDIR = /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)/modules install -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)/modules install -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.)

Соседние файлы в предмете Информатика