
Рубрика: Юниксоид
Xakep Online -> Журнал, номер #010, стр. 010-038-5
А теперь самое важное! Логи!
Хороший администратор (а чем ты не админ? :)) должен каждый день просматривать системные логи. Это на самом деле очень важно, поэтому я советую тебе прочитать этот раздел внимательно! Один из самых эффективных способов проверить, совершались ли на твой сервер атаки или ты уже взломан - это порыться в логах.
Итак, где же логи и как они выглядят? На Линуксах они обычно бывают в директории '/var/adm/' или же в '/var/logs', но чаще всего они содержатся и там и там :). По умолчанию там только два лога, 'syslog' и 'messages', но нам нужно сделать больше. Логи делают два демона, 'klogd' и 'syslogd'.
'klogd' обрабатывает и логирует кернел сообщения, в то время как 'syslogd' логирует все системные мессаги. Это системные демоны, и запускаются они автоматически, твоими `rc.*' файлами, при загрузке системы. Чтобы сконфигурировать, что тебе логировать а что нет, нужно изменить файл '/etc/syslog.conf'. Этот файл говорит, что 'syslogd' будет логировать и куда все сохранять. Вот пример моего:
# /etc/syslog.conf satan file
# for more information about this file, man 'syslog.conf' or 'sysklogd' or call satan666
#
mail.none;*.=info;*.=notice /usr/adm/messages
*.=debug /usr/adm/debug
*.err /usr/adm/syslog
authpriv.*;auth.* /admin/bronc/auth.log authpriv.*;auth.* /var/log/secure
mail.info;mail.notice /var/log/maillog
daemon.info;daemon.notice /var/log/daemon.log
*.* /dev/tty12
# EOF
Если ты не знаешь, как форматировать этот файл, то прочитай тут 'man syslog.conf'. А мне в лом расписывать это на три листа. Давай лучше разберемся, что происходит в каждой строчке моего файла. Я хотел, чтоб мои логи были просты и легко читаемы, но в то же время много говорили. Мой 'messages' файл был переполнен не важными ошибками почтовой программы, поэтому я отключил их логирование (т.е. поставил'mail.none').
А вот логи сообщений 'info' и 'notice' уровня мне нужны, поэтому помещаем их на ту же строчку.
Далее мне нужны все 'debug' сообщения (сохраняться будут в отдельном файле debug), то же самое делаем с 'err' (error) сообщениями.
Затем логирую все удаленные подключения, попытки пройти авторизацию, кидаю логи в два разных места, на случай если один сотрут. :)
На следующей строке я кидаю все те почтовые сообщения в отдельный файл.
'daemon' логирует мессаги, относящиеся к системным демонам.
Ну и последняя строчка посылает все логи на двенадцатую консоль (кстати, для тех кто не знает, переключение между консолями происходит путем нажатия alt+f* клавиш).
Теперь, когда главные системные логи настроены и защищены, что делать с другими?
У тебя все еще есть '/var/log/wtmp' и '/var/log/utmp' плюс хистори каждого шелл пользователя. Так как на некоторых системах 'cron' сохраняет системные логи, ты не можешь сделать на них 'chattr', а на несистемные можно. 'chattr' меняет атрибуты файлов на EXT2 файловой системе. И при помощи этой команды ты можешь сделать так, чтобы файлы не могли быть изменены или стерты (`man chattr' покажет все возможности этой программы). Это чудная команда может сделать так, чтобы `wtmp' и `utmp' файлы могли только пополняться логами, и их невозможно будет изменить или стереть. С помощью `chattr' также можно зафиксировать хистори шелл пользователей.