Протоколиро-вание.
О том, как сделать так, чтобы в вашей системе все действия отслеживались и записывались.
Ссылки:
Linux Park.
Один из наиболее известных русскоязычных порталов Linux, о котором еще не раз не было упомянуто в этой рассылке.. Сейчас у них не навороченный дизайн, а простой, понятный и быстро загружаемый, поэтому - рекомендую посетить :).
Виртуальная энциклопедия "LINUX по-русски".
Об этом mega-rulez'ном информационном ресурсе я уже писал в самом первом выпуске расылки :). Но недавно я попал на него еще раз, и убедился, что этот сайт постоянно обновляется, и что там действительно можно найти все, что вам нужно!
(Если сайт недоступен, то его копию можно найти в двух местах: #1 и #2).
LinuxSuxx.com.
На этом сайте вы узнаете обо всех темных сторонах и недостатках Linux. (И о том, что через несколько лет мы все будем пользоваться ASP.Net и Windows с открытыми исходниками :).
OpenFTS. "OpenFTS - Open Source Full Text Search engine. Быстрый, надежный и легко расширяемый поисковый движок. Присутствует поддержка русской морфологии. Великолепная производительность для многословных запросов. Проверено работой на сайтах содержащих более 500,000 документов..." (Opennet)
Tomsrtbt.
Очередной минидистрибутив Linux из серии 'все утилиты для восстановления системы - на одной дискете'. "1.72MB boot/root rescue/tools diskette for your shirt pockets. About 100 utility programs and tools for fixing and restoring..."
Unison.
Программа для синхронизации файлов. Существуют версии как для Linux, так и для Windows.
Книги:
Секреты хакеров. Безопасность Linux - готовые решения. "Эта книга поможет обеспечить безопасность и надежную защиту систем Linux, которые по-прежнему представляют собой одну из наиболее уязвимых целей для атак хакеров. Авторы расскажут читателям о проблемах хакинга в Linux более подробно, чем это было сделано когда-либо ранее... Книга на русском языке. Издана в 2002 году". (LinuxRSP)
Линус Торвальдс - "Just for FUN. Рассказ нечаянного революционера". Эта книга уже стала легендой... Рассказывать о ней можно много, но лучше всего привести мнение одного из читателей рассылки: "Линус - он просто гений!" :).
Реклама:
У вас есть вопросы по Linux? Задайте их в нашем списке рассылки!
4.05.02:Suse 8.0 доступен для скачивания! Так же нас предупреждают о том, что в новый дистрибутив не была включена новая версия StarOffice из-за того, что она стала платной. Поэтому в новый выпуск SuSE вошел старый выпуск StarOffice 5.2 вместе со свежей бетой OpenOffice 6.0.
2.05.02:Downloader for X 2.0 Final.
2.05.02:Обнаружена уязвимость в броузерах Netscape и Mozilla.
С помощью нее можно получить доступ к файлам, хранящихся на дисках атакуемого компьютера. Причина - модуль XMLHTTP.
1.05.02: Вышел стабильный релиз Openoffice 1.0.
30.05.02: Вышел Win4Lin 4.0.
"Поддержка приложений: Microsoft Office XP - Microsoft Visual FoxPro 7 - Microsoft Internet Explorer 6.0 - Macromedia Dreamweaver 4.0 - Macromedia Fireworks 4.0 - Netscape 6.2 - Lotus SmartSuite- Lotus Freelance- Norton Anti-Virus 2002 - Adobe Illustrator 9 - Adobe Acrobat Reader 5.0 - Adobe PhotoShop 6.0 - Adobe Frame Maker 6.0 - …and Many more".
29.04.02:ALT Linux Master 2.0 вышел и поступил в продажу.
В статье "Использование файловых систем /dev и /proc", помещенной в предыдущем номере, допущена небольшая ошибка - вместо "блокирующих устройств" следует читать "блочные устройства" (так как данные из них читаются блоками). Special Thanx 2 Alexander Kuprin.
Результаты голосования:
Название статьи
За
Против
Результат
Протоколирование.
63
3
60
Введение в Linux с сайта Linux.com.
34
9
25
Вопросы и ответы по Mandrake 8.
30
9
21
Использование GnuPG.
23
8
15
Против всех.
-
-
8
Итак, в этом номере - статья про протоколирование. Но очень многие просят у меня опубликовать в рассылке что-нибудь, предназначенное не для продвинутых пользователей Linux, а для самых начинающих, у которых еще даже не установлен Linux и которые только примеряются к новой системе... Поэтому в следующем выпуске однозначно будет опубликована статья "Введение в Linux" с сайта Linux.com. И еще насчет статьи "Использование GnuPG" - уже скоро ее перевод будет опубликован на Softerra.
В этой статье будет рассмотрен демон syslogd, а также как управлять протоколированием сообщений системы и ядра с помощью этого демона.
Прежде всего, нужно отметить, что демон находится в пакете sysklogd (если, вы, конечно, используете Red Hat-совместисую систему), поэтому перед его использованием нужно установить этот пакет. В большинстве случаев у вас пакет уже будет установлен, а демон syslogd – запущен. Чтобы проверить это введите команду syslogd. Вы должны получить сообщение: syslogd: Already running.
В пакет sysklogd на самом деле входят две программы: syslogd и klogd. Syslogd отвечает за протоколирования сообщений системы, а klogd – ядра.
Демон Syslogd.
Syslogd обеспечивает вид протоколирования, который используется большинством программ. Демон syslogd пишет сообщения в файл /var/log/syslog. Обычно записи в этом файле содержат такие поля: дата и время, хост, программа, сообщение. Пример этого файла предстален ниже:
Jan 27 17:09:35 dhsilabs modprobe: modprobe: Can't locate module sound-service-1-0
Jan 27 17:09:35 dhsilabs modprobe: modprobe: Can't locate module sound-slot-1
Jan 27 17:09:35 dhsilabs modprobe: modprobe: Can't locate module sound-service-1-0
Янв 27 17:10:07 dhsilabs DrakX: trying to load ru_RU.KOI8-R.po from ./po.cz2
Янв 27 17:11:23 dhsilabs DrakX: default cancel_clicked
Jan 27 17:12:28 dhsilabs kernel: VFS: Disk change detected on device ide1(22,64)
Jan 27 17:12:31 dhsilabs kernel: ISO 9660 Extensions: Microsoft Joliet Level 1
Jan 27 17:12:31 dhsilabs kernel: ISOFS: changing to secondary root
Jan 27 17:12:32 dhsilabs kernel: VFS: Disk change detected on device fd(2,0)
Jan 27 17:12:32 dhsilabs kernel: end_request: I/O error, dev 02:00 (floppy), sector 0
Например, из предпоследней записи мы можем узнать, что 27-го января 2002 года в 17:12 произошла смена носителя в устройстве fd, о чем нам любезно сообщило ядро системы (запись «программа» – kernel).
Демон syslogd автоматически при старте системы. Для его запуска предназначен сценарий /etc/rc.d/init.d/syslog. Как обычно, запустить демон самостоятельно мы можем с помощью команды: /etc/rc.d/init.d/syslog start, а остановить - /etc/rc.d/init.d/syslog stop. Для обеспечения автоматической загрузки нужно создать символическую ссылку на этот файла, например: ls -s /etc/rc.d/rc5.d/@S30syslog /etc/rc.d/init.d/syslog В этом случае мы обеспечим запуск демона на пятом уровне запуска (автоматический запуск X Window). Если вы используете Linux Mandrake, включить и отключить автоматический запуск вы можете с помощью команды drakxservices .
Параметры запуска.
Демон syslogd можно запускать с опциями, указанными в таблице 1.
Таблица 1
Опция
Описание
-s socket
Этот параметр позволяет указать дополнительный сокет, который syslog должен прослушивать
-d
Включает режим отладки. В этом режиме демон не будет использовать системный вызов fork(2) для переключения себя в фоновый режим и будет выводить больше отладочной информации
-f file
Этот параметр определяет альтернативный файл конфигурации
-h
По умолчанию демон не перенаправляет сообщения, которые он получает от других узлов. Этот параметр позволяет перенаправить сообщения другим хостам, которые определены
-n
Этот параметр нужен, если syslogd запускается и контролируется программой init
-p socket
Позволяет задать другой сокет Unix вместо /dev/log
-r
Позволяет принимать сообщения из сети. Данная опция появилась в версии syslogd 1.3
-v
Выводит версию syslogd
В таблице 1 указаны не все опции демона. Назначение всех остальных опций вы можете найти в справочной системе, введя команду man syslogd.
Сигналы.
Демон syslogd реагирует на следующие сигналы: SYGTERM, SIGINT, SIGQUIT, SIGHUP, SIGUSR1, SIGCHLD. Реакция демона на сигналы указана в таблице 2.
Таблица 2.
Сигнал
Реакция
SIGTERM
Завершает работу демона
SIGINT, SIGQUIT
Завершает работу демона, если выключена отладка (debugging). Если же отладка включена, эти сигналы игнорируются
SIGUSR1
Включает/выключает отладку
SIGHUP
Перезапуск демона
Файл конфигурации.
По умолчанию используется файл конфигурации /etc/syslog.conf. Вы можете указать другой файл конфигурации с помощью опции -f. Рассмотрим установки демона на примере обычного файла конфигурации:
# Протоколирование аутентификации. Файл протокола /var/log/auth.log
auth,authpriv.* /var/log/auth.log
# Префикс "-" используется, если вы хотите синхронизировать
# файл после каждой записи в него.
*.*;auth,authpriv.none -/var/log/syslog
# Сообщения пользовательских программ
user.* -/var/log/user.log
# Протоколировать все (кроме mail (почты)). Уровень info и выше
# Частные (private) сообщения протоколироваться не будут (none)
*.info;mail.none;authpriv.none -/var/log/messages
# Файл регистрации частных сообщения имеет ограниченный доступ.
# Обычно в этот
# файл записываются сообщения об удаленном доступе к этой машине,
# например, cообщения от демона FTP о том, какие пользователи и когда
# регистрировались на данном сервере.
authpriv.* /var/log/secure
# Протоколирование почты
# Уровень отладки, информации и замечаний
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.=info;kern.=notice -/var/log/kernel/info
kern.=warn -/var/log/kernel/warnings
kern.err -/var/log/kernel/errors
# Протоколирование очереди печати
lpr.=debug;lpr.=info;lpr.=notice -/var/log/lpr/info
lpr.=warn -/var/log/lpr/warnings
lpr.err -/var/log/lpr/errors
# Протоколирование новостей
news.=debug;news.=info;news.=notice -/var/log/news/info
news.=warn -/var/log/news/warnings
news.err -/var/log/news/errors
# Протоколирование демонов.
daemon.=debug;daemon.=info;daemon.=notice -/var/log/daemons/info
daemon.=warn -/var/log/daemons/warnings
daemon.err -/var/log/daemons/errors
# Критические сообщения
*.emerg *
# Сохранять ошибки почты и новостей (уровень err и выше)
# в отдельном файле
uucp,news.crit -/var/log/spooler
# Загрузочные сообщения
local7.* -/var/log/boot.log
Как вы уже заметили, файл конфигурации состоит из двух полей: объект протоколирования и файл, в который будут записываться сообщения, порождаемые этим объектом. Для каждого объекта можно указать один из уровней протоколирования: debug, info, notice, warn, err. Первые три относятся к информационным сообщениям. Уровень warn – это предупреждения, а err – ошибки. Существуют специальные сообщения – критические. Обычно они выводятся прямо на консоль. Как для обозначения объектов, так и для обозначения уровней протоколирования можно использовать символ *, который обозначает все объекты или все уровни. Например, вы хотите протоколировать все сообщения демонов в файл /var/log/daemons, используйте такую конструкцию: daemon.* /var/log/daemons
Пример протоколирования всех сообщений уровня emerg (критический уровень) приведен выше. Если вы хотите отправлять сообщения не в файл, а в поименованный канал (FIFO), используйте символ | перед именем файла-потока.
Сетевое протоколирование.
Сейчас разберемся как обеспечить протоколирование в сети. Это означает перенаправление сообщений на демон syslogd, запущенный на другой машине, где они будут записаны на диск.
Для передачи сообщений используется протокол UDP. Он менее надежный, чем TCP, но отправление пакетов происходит несколько быстрее. Убедитесь, что в вашем файле /etc/service раскомментирована строка syslog 514/udp
Затем нужно внести некоторые коррективы в наш файл конфигурации. Как и прежде, определите объекты протоколирования, а вместо файлов протоколов используйте параметр @hostname, где hostname – это имя компьютера, на который будут перенаправлены сообщения. Например, для перенаправления всех сообщений об ошибках на узел сети hostname можно использовать такую запись:
*.err @hostname
Для перенаправления всех сообщений используется запись:
*.* @hostname
Имя узла желательно указать в файле /etc/hosts, так как демон syslogd может быть запущен после сервера доменных имен или сервер DNS окажется недоступным.
Вы можете организовать центральный сервер протоколирования для всей вашей локальной сети. Для того, чтобы указать какие хосты вы хотите протоколировать, используйте опцию -l список_хостов. В списке указываются простые имена машин, то есть без указания имени домена. Имена машин разделяются двоеточием (:). Возможно, вы захотите использовать опцию -s для указания дополнительного сокета для прослушивания. Для перенаправления сообщений используйте опцию -r на машине-клиенте для перенаправления сообщений на сервер (см. таблицу 1).
Демон klogd.
Демон klogd предназначен для перехвата и протоколирования сообщений ядра Linux. Вы можете использовать параметры демона, указанные в таблице 3.
Таблица 3.
Параметр
Описание
-c n
Устанавливает уровень сообщений, которые будут выводиться на экран
-d
Режим отладки
-f file
Записывать сообщения в указанный файл раньше демона syslogd
-i
Позволяет перезагрузить символьную информацию ядра о модулях.
-I
Перезагружает статическую символьную информацию и информацию о модулях ядра
-n
Не переходить в фоновый режим. Этот параметр используется, когда демон управляется программой init
-o
Демон читает и протоколирует все сообщения, которые он найден в буферах сообщений ядра. После одно цикла чтения/протоколирования демон завершает работу
-s
Заставляет демон klogd использовать системные вызовы для обращений к буферам сообщений ядра
-k file
Использует указаный файл в качестве файла, содержащего символьную информацию ядра
-v
Выводит версию и завершает работу
Для просмотра сообщений ядра используется команда dmesg. Обычно она используется так: dmesg | less
Данная программа выводит сообщения ядра при запуске системы. С помощью параметра -с этой программы можно очистить ring-буфер ядра. Параметр -n задает уровень сообщений, которые будут выводиться на консоль.
По умолчанию демон klogd вызывается системным вызовом для того, чтобы препятствовать отображению всех сообщений на консоль. Это не распостраняется на критические сообщения ядра (kernel panic). Эти сообщения все равно будут отображены на консоли.
Демон реагирует на сигналы: SIGHUP, SIGKILL, SIGINT, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2, SIGCONT. Сигналы SIGTSTP и SIGCONT используются для начала и завершения протоколирования сообщений ядра. Сигналы SIGUSR1 и SIGUSR2 аналогичны опциям -i и -I соответственно. То есть первый перезагружает информацию о модулях, а второй статическую информацию и информацию о модулях. Использовать сигнал GIGUSR1 (как и все остальные) можно так:
# kill -USR1 PID
Параметры ядра.
Параметр debug ядра Linux задает уровень отладки. Сообщения ядра (важные и не очень) передаются через функцию printk(). Если сообщение очень важно, его копия будет передана на консоль, а также демону klogd для его регистрации на жестком диске. Сообщения передаются на консоль, потому что иногда невозможно
запротоколировать сообщение на жестком диске (например, отказ диска).
Предел того, что будет отображаться на консоли, задается переменной console_loglevel. По умолчанию на консоли отображается все, что выше уровня DEBUG (7). Список уровней можно найти в файле kernel.h.
Введение в Linux с сайта Linux.com - Для самых начинающих пользователей. Что такое Linux и чем Linux.com отличается от Microsoft.com :).
Ваше предложение - Пишите на xoid26@umail.ru, какую информацию хотели бы вы видеть в рассылке, и, может быть, в следующих выпусках вы найдете именно то, что вам нужно!!