Введение
В этой лабораторной работе вы изучите основы анализа журналов в среде Kali Linux, используя мощный инструмент journalctl и другие утилиты командной строки. Разработанный для начинающих, этот практический опыт фокусируется на фундаментальных навыках системного администрирования и отладки. Вы узнаете, как получать доступ, просматривать и анализировать системные журналы в контейнере Kali Linux на виртуальной машине LabEx.
Посредством пошаговых практических упражнений вы будете просматривать системные журналы, хранящиеся в таких каталогах, как /var/log, фильтровать журналы по конкретным службам, искать ошибки и экспортировать журналы для дальнейшего анализа. Все операции будут выполняться в оболочке контейнера Kali Linux, в которую вы автоматически войдете при открытии терминала. Эта лабораторная работа предоставляет контролируемую среду для развития ваших навыков мониторинга и устранения неполадок системных событий.
Просмотр системных журналов в Kali Linux
На этом первом шаге вы узнаете, как просматривать системные журналы в контейнере Kali Linux на виртуальной машине LabEx. Системные журналы критически важны для мониторинга и устранения неполадок в системе Linux, поскольку они записывают события, ошибки и действия. Для новичка понимание того, как получить доступ к этим журналам, является основополагающим навыком системного администрирования.
Когда вы откроете терминал в среде виртуальной машины LabEx, вы автоматически подключитесь к оболочке контейнера Kali Linux. Нет необходимости вручную запускать контейнер или входить в оболочку; среда уже настроена для вас. Все операции в этой лабораторной работе будут выполняться в терминале этого контейнера.
Системы Linux хранят журналы в таких каталогах, как /var/log. Общие файлы журналов включают /var/log/syslog для общих системных сообщений и /var/log/auth.log для событий, связанных с аутентификацией. Давайте начнем с просмотра содержимого этих файлов, используя простые команды.
Выполните следующую команду в терминале, чтобы отобразить последние 10 строк файла /var/log/syslog:
tail -n 10 /var/log/syslog
Эта команда использует tail для отображения самых последних записей в файле журнала. Вывод будет выглядеть примерно так, хотя точное содержание зависит от активности вашей системы:
Oct 15 10:22:34 kali-container kernel: [ 1234.567890] some kernel message
Oct 15 10:23:01 kali-container cron[1234]: (CRON) INFO (pidfile fd = 3)
...
Каждая строка обычно включает временную метку, имя хоста, имя службы или процесса и детали события. Этот вывод подтверждает, что вы успешно получили доступ к системным журналам.
Чтобы непрерывно отслеживать новые записи журнала в реальном времени, что полезно для отладки, выполните эту команду:
tail -f /var/log/syslog
Это отобразит новые записи по мере их добавления. Чтобы остановить мониторинг, нажмите Ctrl + C, чтобы вернуться к приглашению терминала.
Далее давайте проверим файл журнала аутентификации /var/log/auth.log, который записывает попытки входа в систему и другие события безопасности. Выполните эту команду:
tail -n 5 /var/log/auth.log
Вывод может выглядеть так, показывая действия, связанные с аутентификацией:
Oct 15 10:20:01 kali-container sudo: root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/bin/bash
...
Этот шаг знакомит вас с просмотром журналов, базовым, но важным навыком. На следующих шагах вы будете развивать его, фильтруя и анализируя эти журналы для получения конкретной информации.
Установка и использование journalctl для просмотра журналов
Теперь, когда вы увидели, как просматривать журналы, используя базовые команды, такие как tail, давайте перейдем к более мощному инструменту под названием journalctl. Этот инструмент используется для запроса и отображения журналов, управляемых systemd, менеджером системы и служб в современных дистрибутивах Linux, включая Kali Linux. Для новичка изучение journalctl важно, потому что он предоставляет структурированный способ доступа к подробным системным журналам.
Поскольку вы уже находитесь в оболочке контейнера Kali Linux (автоматически входите при открытии терминала), вам не нужно ничего вручную настраивать или запускать. Однако journalctl может быть не предустановлен или не полностью функционален в минимальной настройке контейнера, поэтому мы убедимся, что необходимые инструменты доступны, обновив список пакетов и установив необходимые компоненты.
Выполните следующие команды, чтобы обновить список пакетов и установить компоненты systemd, если это необходимо:
apt update
apt install -y systemd
Эти команды обновляют репозиторий пакетов и устанавливают systemd, который включает в себя journalctl. Дождитесь завершения установки; это может занять несколько мгновений.
После установки вы можете использовать journalctl для просмотра системных журналов. Выполните эту команду, чтобы отобразить самые последние записи журнала:
journalctl -n 10
Опция -n 10 ограничивает вывод последними 10 строками. Вывод будет выглядеть примерно так, хотя это зависит от активности вашей системы:
Oct 15 10:25:01 kali-container systemd[1]: Starting system activity...
Oct 15 10:25:02 kali-container systemd[1]: Started system activity...
...
Этот вывод показывает записи журнала с метками времени, именами служб и сообщениями. Если вы видите что-то подобное, это означает, что journalctl работает правильно. Если вывод не отображается или возникает ошибка, это может быть связано с ограниченными данными журнала в среде контейнера, что является нормальным для этой лабораторной установки.
Чтобы просматривать журналы в реальном времени, аналогично tail -f, выполните эту команду:
journalctl -f
Это будет непрерывно отображать новые записи журнала. Нажмите Ctrl + C, чтобы остановить мониторинг и вернуться к приглашению терминала.
Этот шаг поможет вам понять, как использовать journalctl для просмотра журналов, что является более продвинутым, чем базовый просмотр файлов. На следующем шаге вы узнаете, как фильтровать эти журналы для конкретных служб.
Фильтрация журналов по службе с помощью journalctl
Основываясь на вашей способности просматривать журналы с помощью journalctl, этот шаг фокусируется на фильтрации журналов для отображения записей, связанных с конкретной службой. Для новичка фильтрация является ключевым навыком, потому что системные журналы часто содержат смесь сообщений от различных процессов, и изоляция соответствующей информации помогает в устранении неполадок конкретных проблем.
Вы по-прежнему работаете в оболочке контейнера Kali Linux, в которую вы автоматически вошли при открытии терминала. Не требуется ручная навигация или запуск контейнера. Мы будем использовать journalctl для фильтрации журналов для конкретной службы, такой как cron, которая управляет запланированными задачами в Linux. Это позволяет вам сосредоточиться на журналах, связанных с одним компонентом, не перегружаясь несвязанными данными.
Чтобы отфильтровать журналы для службы cron, выполните следующую команду:
journalctl -u cron
Опция -u указывает unit (службу) для фильтрации, в данном случае cron. Вывод покажет журналы, относящиеся конкретно к службе cron, выглядящие примерно так, в зависимости от активности системы:
Oct 15 10:30:01 kali-container cron[1234]: (CRON) INFO (pidfile fd = 3)
Oct 15 10:30:02 kali-container cron[1235]: (CRON) STARTUP (fork ok)
...
Этот вывод отображает только записи, связанные с cron, включая метки времени и детали событий. Если вывод не отображается, это может означать, что служба cron не сгенерировала недавние журналы в этом контейнере, что приемлемо для учебных целей.
Если журналы cron недоступны или вы хотите изучить другую службу, вы можете попробовать отфильтровать для sshd (если установлен), который обрабатывает SSH-соединения. Сначала убедитесь, что openssh-server установлен, выполнив:
apt install -y openssh-server
Дождитесь завершения установки. Затем отфильтруйте журналы для sshd с помощью этой команды:
journalctl -u ssh
Вывод может показать события, связанные с SSH, если служба активна. Если вывод не отображается, это нормально для этой лабораторной работы, поскольку основное внимание уделяется изучению процесса фильтрации.
Этот шаг учит вас, как сузить данные журнала до конкретных служб, используя journalctl. На следующем шаге вы узнаете, как искать ошибки в этих журналах, чтобы выявить потенциальные проблемы.
Поиск ошибок в журналах с помощью journalctl
Изучив фильтрацию журналов по службе, этот шаг проведет вас через поиск ошибок в системных журналах с помощью journalctl. Для новичка выявление ошибок в журналах имеет решающее значение для устранения неполадок, поскольку журналы часто содержат сообщения, указывающие на проблемы со службами или приложениями. Этот навык помогает быстро выявить проблемы, требующие внимания.
Вы по-прежнему работаете в оболочке контейнера Kali Linux, доступ к которой осуществляется автоматически при открытии терминала. Дополнительная настройка или навигация не требуется. Мы будем использовать journalctl для поиска сообщений об ошибках путем фильтрации журналов на основе уровней приоритета, где ошибки обычно регистрируются с определенной серьезностью.
В journalctl записи журнала категоризируются по уровням приоритета, где 3 представляет ошибки (критические проблемы), а 4 представляет предупреждения. Чтобы выполнить поиск сообщений об ошибках во всех журналах, выполните эту команду:
journalctl -p 3
Опция -p 3 фильтрует журналы, чтобы отображать только записи с уровнем приоритета 3 (ошибки). Вывод может выглядеть примерно так, в зависимости от активности вашей системы:
Oct 15 10:35:10 kali-container some-service[5678]: error: failed to initialize module
...
Этот вывод отображает сообщения об ошибках с метками времени и подробностями. Если вывод не отображается, это означает, что в журналах нет недавних ошибок с этим уровнем приоритета, что является обычным явлением в контролируемой среде контейнера.
Чтобы включить предупреждения вместе с ошибками, вы можете выполнить поиск по уровням приоритета 3 и 4, выполнив:
journalctl -p 3..4
Эта команда показывает как ошибки, так и предупреждения. Вывод может включать дополнительные строки, такие как:
Oct 15 10:36:15 kali-container another-service[7890]: warning: connection timeout
...
Если вывод не отображается, это приемлемо для этой лабораторной работы, поскольку цель состоит в том, чтобы изучить процесс поиска. Этот шаг дает вам возможность выявлять критические проблемы в журналах с помощью journalctl. На следующем шаге вы узнаете, как экспортировать эти журналы для дальнейшего анализа.
Экспорт журналов для анализа с помощью journalctl
На этом шаге вы узнаете, как экспортировать системные журналы для дальнейшего анализа с помощью journalctl. Основываясь на предыдущих шагах, где вы просматривали, фильтровали и искали журналы, экспорт позволяет вам сохранить определенные данные журнала в файл. Это полезно для детального изучения или обмена с другими для устранения неполадок. Для новичка этот навык помогает документировать результаты, не обращаясь повторно к исходным журналам.
Вы по-прежнему работаете в оболочке контейнера Kali Linux, в которую вы автоматически вошли при открытии терминала. Не требуется ручной запуск контейнера или навигация. Мы будем использовать journalctl для извлечения журналов и перенаправления вывода в файлы в каталоге /root для легкого доступа.
Давайте экспортируем все недавние журналы в файл с именем system_logs.txt в каталоге /root. Выполните эту команду:
journalctl -n 50 > /root/system_logs.txt
Опция -n 50 ограничивает вывод последними 50 записями журнала, а символ > перенаправляет вывод в указанный файл. Вы не увидите вывод в терминале, потому что он сохраняется в файл. Чтобы убедиться, что файл был создан и содержит данные, выполните:
cat /root/system_logs.txt
Вывод покажет сохраненные записи журнала, аналогично тому, что вы видели с journalctl -n 50, включая метки времени и сообщения.
Далее давайте экспортируем журналы, отфильтрованные по конкретной службе, такой как cron, в файл с именем cron_logs.txt. Выполните эту команду:
journalctl -u cron > /root/cron_logs.txt
Это сохраняет только журналы, связанные с cron, в /root/cron_logs.txt. Проверьте содержимое, выполнив:
cat /root/cron_logs.txt
Вывод отобразит журналы службы cron, если они доступны, подтверждая успешность экспорта.
Наконец, давайте экспортируем журналы ошибок в файл с именем error_logs.txt. Выполните эту команду:
journalctl -p 3 > /root/error_logs.txt
Это сохраняет сообщения об ошибках в указанный файл. Проверьте содержимое с помощью:
cat /root/error_logs.txt
Этот вывод покажет журналы ошибок, если они существуют. Завершив этот шаг, вы научились сохранять данные журнала для последующего просмотра, что является практическим навыком для администрирования системы и отладки.
Резюме
В этой лабораторной работе вы изучили основы анализа журналов в Kali Linux с использованием инструмента journalctl и базовых утилит командной строки. Вы начали с просмотра системных журналов в каталоге /var/log с помощью таких команд, как tail, а затем перешли к использованию journalctl для более структурированного доступа к журналам. Выполнив практические шаги, вы отфильтровали журналы по службе, выполнили поиск ошибок и экспортировали журналы для дальнейшего анализа в контейнере Kali Linux на виртуальной машине LabEx. Эти базовые навыки подготовят вас к эффективному администрированию системы и отладке в средах Linux.


