LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В
..pdfГлава 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.)