# Практическая работа 5: Сбор логов на одном сервере с нескольких других, посредством SysLog. ## Цель работы 1) Получить навыки сбора логов на одном сервере с нескольких других использую утилиту SysLog. 2) Научиться анализировать полученные логи. ## Теоретические материалы к работе: Операционная система и работающие приложения постоянно создают различные типы сообщений, которые регистрируются в различных файлах журналов. Умение определить нужный файл журнала и что искать в нем поможет существенно сэкономить время и быстрее устранить ошибку. Журналирование является основным источником информации о работе системы и ее ошибках. **Основные лог файлы** Все файлы журналов, можно отнести к одной из следующих категорий: приложения; события; службы; системный. Большинство же лог файлов содержится в директории /var/log: /var/log/syslog или /var/log/messages содержит глобальный системный журнал, в котором пишутся сообщения с момента запуска системы, от ядра Linux, различных служб, обнаруженных устройствах, сетевых интерфейсов и много другого. /var/log/auth.log или /var/log/secure — информация об авторизации пользователей, включая удачные и неудачные попытки входа в систему, а также задействованные механизмы аутентификации. /var/log/dmesg — драйвера устройств. Одноименной командой можно просмотреть вывод содержимого файла. Размер журнала ограничен, когда файл достигнет своего предела, старые сообщения будут перезаписаны более новыми. Задав ключ --level= можно отфильтровать вывод по критерию значимости. /var/log/alternatives.log — Вывод программы update-alternatives, в котором находятся символические ссылки на команды или библиотеки по умолчанию. /var/log/anaconda.log — Записи, зарегистрированные во время установки системы. /var/log/audit — Записи, созданные службой аудита auditd. /var/log/boot.log — Информация, которая пишется при загрузке операционной системы. /var/log/cron — Отчет службы crond об исполняемых командах и сообщения от самих команд. /var/log/cups — Все, что связано с печатью и принтерами. /var/log/faillog — Неудачные попытки входа в систему. Очень полезно при проверке угроз в системе безопасности, хакерских атаках, попыток взлома методом перебора. Прочитать содержимое можно с помощью команды faillog. var/log/kern.log — Журнал содержит сообщения от ядра и предупреждения, которые могут быть полезны при устранении ошибок пользовательских модулей встроенных в ядро. /var/log/maillog/ или /var/log/mail.log — Журнал почтового сервера, используемого на ОС. /var/log/pm-powersave.log — Сообщения службы экономии заряда батареи. /var/log/samba/ — Логи файлового сервера Samba, который используется для доступа к общим папкам Windows и предоставления доступа пользователям Windows к общим папкам Linux. /var/log/spooler — Для представителей старой школы, содержит сообщения USENET. Чаще всего бывает пустым и заброшенным. /var/log/Xorg.0.log — Логи X сервера. Чаще всего бесполезны, но если в них есть строки начинающиеся с EE, то следует обратить на них внимание. Для каждого дистрибутива будет отдельный журнал менеджера пакетов: /var/log/yum.log — Для программ установленных с помощью Yum в RedHat Linux. /var/log/emerge.log — Для ebuild-ов установленных из Portage с помощью emerge в Gentoo Linux. /var/log/dpkg.log — Для программ установленных с помощью dpkg в Debian Linux и всем семействе родственных дистрибутивах. Бинарные журналы учета пользовательских сессий: /var/log/lastlog — Последняя сессия пользователей. Прочитать можно командой last. /var/log/tallylog — Аудит неудачных попыток входа в систему. Вывод на экран с помощью утилиты pam_tally2. /var/log/btmp — Еже один журнал записи неудачных попыток входа в систему. Просто так, на всякий случай, если вы еще не догадались где следует искать следы активности взломщиков. /var/log/utmp — Список входов пользователей в систему на данный момент. /var/log/wtmp — Еще один журнал записи входа пользователей в систему. Вывод на экран командой utmpdump. Скорее всего на сервере или рабочей станции будет крутится база данных, веб сервер, разнообразные приложения. Каждое приложения или служба может иметь свой собственный файл или каталог журналов событий и ошибок. Всех их естественно невозможно перечислить, лишь некоторые: /var/log/mysql/ — Лог базы данных MySQL. /var/log/httpd/ или /var/log/apache2/ — Лог веб сервера Apache, журнал доступа находится в access_log, а ошибки — в error_log. /var/log/lighthttpd/ — Лог веб сервера lighttpd. Опытные системные администраторы знают, что просматривать и анализировать журналы (файлы) регистраций необходимо регулярно и с особой тщательностью. Информация, содержащаяся в журналах очень часто помогает быстро решить возникающие неполадки или выявить скрытые проблемы в конфигурации системы. Основным инструментом регистрации событий в UNIX и Linux до сих пор остаётся демон syslogd системы Syslog. Но следует иметь в виду также и то, что на протяжении длительного времени из-за многообразия всевозможных ответвлений UNIX и версий Linux множество программных пакетов, служебных скриптов, сетевых демонов используют свои собственные журналы, порой отличающимся экзотическим форматом. В общем случае системой Syslog (и другими специализированными программами) производится перехват отслеживаемого события и регистрация его в файле регистрации. Само регистрируемое событие представляет собой строку текста, содержащую данные о дате/времени, типе, степени важности события. Также в этот набор могут быть, в зависимости от ситуации, включены и другие данные. Сама строка регистрируемого события для выделения указанных компонентов разбивается символами-разделителями: пробелы, табуляции, а также знаками пунктуации. Журналы регистрации легко просматривать, поскольку они являются обычными текстовыми файлами. Для эффективной работы с журналами используются самые стандартные инструменты из базовой поставки любого дистрибутива — команды cat и grep. Типичная запись системного журнала системы Syslog обычно выглядит следующим образом: ``` Dec 18 15:12:42 backup.main.superhosting.ru sbatchd[495]: sbatchd/main: ls_info() failed: LIM is down; try later; trying ... Dec 18 15:14:28 system.main.superhosting.ru pop-proxy[27283]: Connection from 186.115.198.84 Dec 18 15:14:30 control.main.superhosting.ru pingem[271] : office.main.superhosting.ru has not answered 42 times Dec 18 15:15:05 service.main.superhosting.ru vmunix: Multiple softerrors: Seen 100Corrected Softerrors from SIMM J0201 Dec 18 15:15:16 backup.main.superhosting.ru PAM_unix[17405]: (sshd) session closed 'for user trent ``` В данном случае можно видеть, что в одном из журналов Syslog собраны события из нескольких источников: программы sbathd, pingem, pop-proxy. Также можно видеть, что события регистрируются для нескольких хостов, взаимодействующих с данной системой: backup, system, office и service. Стоит также помнить и о том, что бывают случаи, когда (особенно на сбойных конфигурациях) общий объём файлов журналов резко увеличивается, при этом велик риск «уложить» систему. Для удобства контроля за свободным пространством на устройствах хранения, а также для надёжности каталог /var часто выносят в отдельную файловую систему на отдельном разделе. Ссылка на документацию к syslog - https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjs1I-RjvD4AhVjmIsKHWBPC8IQFnoECBgQAQ&url=https%3A%2F%2Fman7.org%2Flinux%2Fman-pages%2Fman3%2Fsyslog.3.html&usg=AOvVaw02052_9tsWNRhi20PEIVxj ## Методические указания к выполнению: На всех серверах устанавливаем syslog-ng ``` root@debian:/# apt install syslog-ng ``` и запускаем `root@debian:/# systemctl start syslog-ng` Для начала сконфигурируем syslog-ng на серверах-клиентах. Для этого нужно добавить в файл /etc/syslog-ng/syslog-ng.conf следующие строки: ``` #Указываем новое хранилище логов. destination d_remote {udp(«192.168.170.225» port(514));}; #Настраиваем логирование информации на удалённый сервер. log { source(s_sys); destination(d_remote); }; ``` Перезапускаем сервис для применения настроек `service syslog-ng restart` Для настройки основного сервера нужно отредактировать файл /etc/syslog-ng/syslog-ng.conf: ``` Определяем новый источник: сеть. source from_all { udp (ip(«192.168.170.225») port(514)); }; Описываем хранилище логов. Логи будут находится в директории /var/log/HOSTS destination to_all { file ( «/var/log/HOSTS/$HOST/log.log» perm(0640) dir_perm(0755) create_dirs(yes)); }; Настраиваем логирование log { source(from_all); destination(to_all); }; ``` Перезапускаем сервис для применения настроек `root@debian:/# systemctl restart syslog-ng` Таким нехитрым способом мы настроили сервер для централизованного сбора логов в вашей сети. **Анализ входящих логов:** (дописать)