emerg События, угрожающие работе системы

В Red Hat-совместимых системах можно ставить перед уровнем серьезности дополнительные модификаторы «=» (регистрировать сообщения только указанного уровня) и «!» (игнорировать сообщения указанного и более высоких уровней). Можно также направлять сообщения не только в обычный файл, но и в именованный канал, поставив перед ним символ «|».

Листинг 9.4. Примерный файл /etc/syslog.conf

# Протоколирование аутентификации. Файл протокола

auth,authpriv.* /var/log/auth.log

*.*;auth,authpriv.none -/var/log/syslog

# Файл регистрации попыток доступа к системе, имеет

# ограниченный доступ. Обычно в этот файл записываются

# сообщения об удаленном доступе к этой машине, например,

# сообщения от демона FTP о том, какие пользователи и

# когда регистрировались на данном сервере.

authpriv.* /var/log/secure

# Сообщения пользовательских программ

user.* -/var/log/user.log

# Протоколировать все информационные сообщения, кроме

# почтовых

*.info;mail.none; -/var/log/messages

# Протоколирование почты

# Уровень отладки, информации и замечаний

mail.=debug;mail.=info;mail.=notice -/var/log/mail/info

# Уровень предупреждений

mail.=warn -/var/log/mail/warnings

# Уровень ошибок

mail.err -/var/log/mail/errors

# Протоколирование демона cron.

cron.=debug;cron.=info;cron.=notice -/var/log/cron/info

cron.=warn -/var/log/cron/warnings

cron.err -/var/log/cron/errors

# Протоколирование ядра

kern.=debug;kern.=infо;kern.=notice -/var/log/kernel/info

kern.=warn -/var/log/kernel/warnings

kern.err -/var/log/kernel/errors

# Очередь печати: сообщения уровня от 'инфо' до 'предупреждений'

lpr.info;lpr.!err -/var/log/lpr/info

# Протоколирование демонов: сообщения всех уровней, кроме 'инфо'

daemon.=debug;daemon.!=info -/var/log/daemons

# Критические сообщения - всем тревога

*.emerg *

# Сохранять ошибки почты и новостей в отдельном файле

uucp,news.crit -/var/log/spooler

# Загрузочные сообщения

lоса17.* -/var/log/boot.log

9.3.2. Сетевое протоколирование

Протоколы — это история жизни системы; они необходимы администратору для выявления и устранения неполадок, но они необходимы и злоумышленнику — для поиска уязвимости или для того, чтобы скрыть следы своего вторжения. Поэтому иногда бывает полезно вести журнал на другом, более безопасном, компьютере.

Протоколирование в сети — это перенаправление сообщений демону syslogd, запущенному на другой машине локальной сети, где они будут записаны в локальный файл. Таким образом, один демон syslogd, передающий сообщения, выступает в роли клиента, а другой такой же, но принимающий и сохраняющий их, — в роли сервера.

Сообщения передаются по протоколу UDP. Он не обеспечивает ни гарантированной доставки пакетов, ни секретности, но работает несколько быстрее, чем TCP. Следующая строка должна присутствовать (в незакомментированном виде!) в файлах /etc/services обоих компьютеров:

syslog 514/udp

Затем необходимо внести некоторые коррективы в файл конфигурации. На клиентской машине определите объекты протоколирования (селекторы), как и раньше, а в качестве действия укажите @имя_узла, где имя_узла — имя компьютера, на который будут перенаправлены сообщения. Это имя желательно указать в файле /etc/hosts, так как демон syslogd может быть запущен до сервера доменных имен или сервер DNS окажется недоступным.

На сервере протоколирования может быть необходимо перезапустить syslogd с другим набором ключей. В Red Hat-совместимых системах syslogd по умолчанию игнорирует сообщения из сети; для того, чтобы он начал их принимать, он должен быть запущен с ключом -r (это верно для пакета sysklogd версии 1.3 и новее. Ранние версии вели себя в точности наоборот).

Каждое сообщение в журнальном файле маркируется полным именем узла, с которого оно поступило (с указанием домена). Чтобы syslogd на сервере записывал только краткие имена узлов, нужно запустить его с ключом -l <список_узлов> или -s <список_доменов>. Узлы и домены в списках нужно разделять двоеточиями.

9.3.3. Протоколирование ядра. Демон klogd и команда dmesg

Демон klogd предназначен для перехвата и протоколирования сообщений ядра Linux. Ядро, в отличие от пользовательского процесса, не может выводить сообщения, пользуясь стандартной функцией syslog(): библиотека, содержащая эту функцию, доступна только

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату