Text
                    Лабораторная работа №
12
(
2
часа)
Ведение аудита в ОС
Linux
и оптимизация производительности
Цели:
ознакомиться с возможностями ведения аудита и анализа файлов
протоколов, изучить настро
йку
Syslog
,
logrotate
, получить навыки
использования средств анализа лог
-
файлов.
Инструкции по выполнению
:
Загрузите ОС
Linux
, войдите в сеанс и
получите доступ к командной строке. Перед выполнением заданий
лабораторной работы ознакомьтесь с главой 23 (с.
1001) книги «
UNIX
и
Linux
. Руководство системного администратора» Эви Немет и др.
Большинство сервисов в
Linux
реализовано как процессы
-
демоны.
Отслеживать их работу достаточно сложная задача для администратора, так
как они не взаимодействуют с ним напрям
ую. Например, чтобы проверить,
что
Web
-
сервер
Apache
работает, необходимо отправить ему
HTTP
-
запрос.
Для решения этой проблемы
используется протоколирование своих
действий процессами
-
демонами в файлы протокола (в так называемые
лог
-
файлы
(
log
files
), «логи
»
или
«системные логи
» (
«
system
logs
»
)
). Файлы
протоколов сохраняются обычно в каталоге
/
var
/
log
или одном из его
подкаталогов. Как правило, точное название файла протокола указывается в
документации соответствующего сервиса.
Для поддержания сервисов в раб
очем состоянии и
обнаружения
ошибок в их работе до того, как на это начнут жаловаться возмущенные
пользователи, администратору приходится периодически просматривать и
анализировать файлы протоколов. Кроме того, файлы протоколов позволяют
следить за безопас
ностью системы, а в случае инцидентов
–
расследовать и
ликвидировать их последствия.
Для того чтобы не выполнять эту работу вручную, можно использовать
специализированные инструменты для анализа лог
-
файлов (обычно
достаточно объемных по размеру). Подобные
инструменты существуют для
логов
Web
-
сервера (
analog
,
awstats
,
webalizer
), для прокси
-
серверов, для
FTP
-
серверов, почтовых серверов,
DNS
, брандмауэров и т.д.
Некоторые из подобных инструментов построены по модульному
принципу и позволяют обраб
атывать прото
колы разных типов (
lire
,
modlogan
,
logcheck
).
Задание
. Просмотрите каталог
/
var
/
log
и определите, лог
-
файлы каких
сервисов доступны на вашем компьютере. Попытайтесь выполнить обратную
задачу
–
по списку настроенных Вами сервисов определите, куда эти сервис
ы
пишут свои протоколы.
Внесите полученные списки в отчёт.
В
Debian
GNU
\
Linux
есть специальный сервис
:
rsyslogd
, задачей
которого является сбор логов
сервисов от приложений и ядра операционной
системы и «раскладывание» их по лог
-
файлам
. Он может записыват
ь
сообщения других сервисов в указанные файлы или отправлять их на


консоль администратора. Для настройки этого сервиса используется файл конфигурации / etc / rsyslog . conf . Каждое сообщение ассоциируется с определенной подсистемой, которая в документации назыв ается « facility »: auth и authpriv для аутентификации, cron для планировщика, daemon для сервисов, ftp для FTP - сервера, kern для сообщений ядра, lpr для подсистемы печати, mail для электронной почты, syslog для сообщений самого сервиса syslogd , user для общ их сообщений пользователя и др. Каждое сообщение связано со своим уровнем приоритета: emerg , alert , crit , err , warn , notice , info , debug (в порядке убывания приоритета). Синтаксис настроек rsyslogd описан в 5 секции rsyslog . conf справочных страниц, а также в / usr / share / doc / rsyslog - doc / html / index . html . Общий принцип настройки заключается в написании пар «селектор» - «действие». Селектор определяет требуемые сообщения, а действия описывают что с этими сообщениями делать. Селектор представляет собой список раз деленных точкой с запятой пар вида подсистема.приоритет (например, auth . notice или mail . info ). Также может использоваться символ «*», который представляет все подсистемы или все приоритеты (например, *. alert или mail .* ). Приоритет обрабатывается как соотве тствующий всем приоритетам выше или равным указанному. Это поведение может меняться символом «!», который задает приоритеты строго меньше указанного (например, auth .! notice ). Для того чтобы использовался только указанный приоритет он должен предваряться си мволом «=» (например, auth .= notice ). Для того чтобы исключить какую - то подсистему для нее может быть указан приоритет « none » (например, *. crit ; kern . none задает сообщения с приоритетом выше или равным crit и полученным не от ядра). В качестве возможных дейс твии можно указать: добавление сообщения в файл (пример: / var / log / messages ); отправка сообщения удаленному syslog - серверу; отправка сообщения по существующему каналу ( | / dev / xconsole ); отправка сообщения одному или более пользователю, если они вошли в сис тему ( root , user ); отправка сообщения всем пользователям в системе (*); запись сообщения на консоль ( / dev / tty 8) . Задание . Ознакомьтесь с настройкой rsyslogd на Вашей машине. Отметьте в отчете, какие сообщения и каких приоритетов как обрабатываются. Измените настройки так, как Вам будет удобнее работать с файлами протоколов. Файлы протоколов очень быстро рас тут в размерах. Поэтому периодически их нужно заменять. Рекомендуется не удалять старые файлы протоколов, а архивировать их. Они могут быть полезны для расследования инцидентов с безопасностью. Подобное поведение реализует программа logrotate . За ее настройку отвечает файл конфигурации / etc / logrotate . conf и все файлы в каталоге / etc / logrotate . d / . Часто требуется увеличить или уменьшить частоту ротации лог ов в зависимости от загруженности сервисов или переместить файлы 
протоколов в указанную директорию вместо их удаления. Также можно отправлять их по электронной почте . Сама программа logrotate исполняется периодически планировщиком cron . Задание . Установите logrotate . Определите настройки программы по умолчанию: какие файлы протоколов обрабатываются, как и с какой периодичностью. Найдите запись logrotate в настройках cron . Попробуйте изменить настройки и проверьте их эффективность ( возможно, потребуется пере вести системные часы). В качестве одного из средств мониторинга файлов протоколов рассмотрим logcheck . Эта программа по умолчанию просматривает файлы протоколов каждый час и отправляет интересные сообщения на электронную почту администратора. Список чита емых логов сохраняется в файле / etc / logcheck / logcheck . logfiles . Настройка по умолчанию хорошо работает с настройкой по умолчанию для / etc / syslog . conf . logcheck может работа т ь в одном из трех режимов: paranoid , server и workstation . Первый режим предназначе н для некоторых серверов и брандмауэров и отличается очень подробным анализом. Второй режим – режим по умолчанию для logcheck – рекомендуется для обычных серверов. Последний режим используется на рабочих станциях. Во всех трех режимах logcheck может быть н астроен на исключение некоторых типов оповещени й , если конечно Вы, как администратор, не скучаете и хотите получать каждый час кипу длинных сообщений по электронной почте. Механизм настройки logcheck подробно описывается в / usr / share / doc / logcheck - database / README . logcheck - database . gz . В целом его правила можно разбить на следующие типы:  Сообщения, которые можно расценить как попытку взлома системы (каталог / etc / logcheck / cracking . d / );  Сообщения, не относящиеся к указанному типу ( / etc / logcheck / cracking . ignore . d / );  Сообщения, которые можно рассматривать как предупреждения о нарушении безопасности ( / etc / logcheck / violations . d / );  Сообщения не являющиеся таковыми ( / etc / logcheck / violations . ignore . d / );  Оставшиеся сообщения (они расцениваются как системные события). Со общение, отмеченное как попытка взлома или предупреждение безопасности (по правилам в / etc / logcheck / violations . d / какой - то - файл) может быть проигнорировано правилом в / etc / logcheck / violations . ignore . d / какой - то - файл или / etc / logcheck / violations . ignore . d / како й - то - файл - с - расширением. Системные события всегда отправляются, если не отключены в / etc / logcheck / ignore . d .{ paranoid , server , workstation }/ каталогах. 
Задание . Установите и настройте приложение logcheck . Определите, какую информацию logcheck отправляет адм инистратору. Попытайтесь спровоцировать попытку взлома. Hint . М ож но настроить вывод сообщений протоколов в режиме реального времени. Для этого используется команда root - tail из пакета root - tail , которая может интегрировать вывод сообщений из лог - файлов в фон экрана графического окружения. Также программа xconsole из пакета x 11 - apps может выводить сообщения в небольшое окно и автоматически их прокручивать. Сообщения при этом забираются напрямую от syslogd через канал / dev / xconsole .