09. Аудит и журналирование на Ubuntu Server: подробное руководство

Введение: почему аудит и журналирование важны

Аудит и журналирование на Ubuntu Server необходимы для поддержания безопасности, надёжности и подотчётности сервера Ubuntu. Они дают представление о действиях системы, помогают выявлять аномалии и крайне важны для соблюдения нормативных требований, таких как GDPR, HIPAA или PCI-DSS.

Однако во многих системах аудит не включён из-за опасений по поводу потребления дискового пространства или отсутствия инструментов для эффективного анализа данных. В этой статье мы рассмотрим эти опасения и расскажем о практичном и масштабируемом внедрении аудита и журналирования.

Рассматриваемые темы:

  • Реальное использование аудита и его трудности.
  • Использование auditd для отслеживания и записи системных событий.
  • Планирование дискового пространства для журналов аудита.
  • Инструменты анализа журналов аудита и системных журналов.
  • Настройка ротации журналов с помощью logrotate.
  • Продвинутые практики мониторинга и аудита

Предыдущая статья:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud

03. Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud

04. Управление пользователями и правами в Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

05. Основы сетей для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

06. Установка и управление ПО в Ubuntu Server: полное руководство – SysOSX: AI & Cloud

07.Исправление и обновление Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

08. Защита сервера Ubuntu: практические шаги по усилению безопасности – SysOSX: AI & Cloud



1. Реальное использование системного аудита

Почему многие системы пропускают аудит

Несмотря на мощность аудита, многие администраторы избегают его включения по следующим причинам:

  • Потребление дискового пространства: журналы аудита могут быстро расти, особенно в нагруженных системах, потребляя значительный объём дискового пространства.
  • Накладные расходы на производительность: включение подробного аудита может немного снизить производительность системы.
  • Сложность: журналы аудита многословны и требуют специализированных инструментов для анализа.

Как планировать аудит

Планирование дискового пространства

Чтобы эффективно спланировать аудит:

  1. Оценка роста журналов: отслеживайте темпы роста журналов, временно включив аудит и измеряя размер журналов в течение недели. sudo du -sh /var/log/audit/ Используйте эти данные для расчёта суточных, недельных и месячных потребностей в хранении.
  2. Выделение отдельного хранилища: храните журналы аудита на отдельном разделе или диске, чтобы журналы не заполняли корневую файловую систему. Например:
    • Создайте раздел для журналов: /var/log/audit.
    • Используйте такие инструменты, как lvcreate (диспетчер логических томов), чтобы при необходимости динамически расширять хранилище.
  3. Включение сжатия: используйте logrotate для сжатия старых журналов аудита, что значительно снижает потребности в хранении.
  4. Политики хранения: определите политики хранения исходя из потребностей организации. Например:
    • Храните журналы 30 дней для устранения неполадок.
    • Архивируйте старые журналы на внешнее хранилище для целей соответствия требованиям.

Вопросы производительности

Влияние Auditd на производительность для большинства систем минимально. Однако для серверов с высоким трафиком (например, веб-серверов или серверов баз данных) после включения аудита отслеживайте загрузку ЦП и ввода-вывода. При необходимости:

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

2. Использование auditd для отслеживания и записи системных событий

Инструмент auditd остаётся одним из самых надёжных решений для системного аудита. Ниже приведены дополнительные соображения для реального использования.

Продвинутые правила аудита

Вместо аудита каждого файла сосредоточьтесь на критически важных областях:

  • Файлы конфигурации системы:
 sudo auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config_changes
  • Конфиденциальные каталоги:
sudo auditctl -w /var/www/html -p rwxa -k web_access
  • Активность пользователей:
    Отслеживание конкретных пользователей или групп:
sudo auditctl -a always,exit -F uid=1001 -F arch=b64 -S execve -k user_commands

Инструменты анализа журналов аудита

Журналы аудита могут быть огромными, но несколько инструментов помогут обработать и проанализировать данные:

  1. Aureport: создаёт сводные отчёты из журналов аудита. sudo aureport --summary
  2. Auditbeat: Лёгкий инструмент от Elastic для отправки журналов аудита в централизованный стек ELK для визуализации и анализа.
    • Установка Auditbeat: sudo apt install auditbeat
    • Настройте его для отправки журналов в Elasticsearch или Logstash.
  3. Splunk: Коммерческий инструмент анализа журналов с расширенными возможностями поиска и отчётности.

3. Планирование дискового пространства для журналов аудита

Пример плана дискового пространства

Предположим:

  • Ежедневные журналы аудита занимают 500 МБ.
  • Журналы ротируются еженедельно и сжимаются до 20% исходного размера.

Расчёт дискового пространства:

  • Несжатые журналы за 7 дней: 500 MB×7=3.5 GB500MB×7=3.5GB
  • Сжатые журналы за 30 дней: 500 MB×30×0.2=3 GB500MB×30×0.2=3GB
  • Всего требуемого места: 3.5 GB+3 GB=6.5 GB3.5GB+3GB=6.5GB

Выделите не менее 10 ГБ, чтобы учесть неожиданные всплески.


4. Настройка ротации журналов с помощью logrotate

Ротация журналов крайне важна для управления их размером. Ниже приведены расширенные конфигурации для журналов аудита и системных журналов.

Ротация журналов аудита

Журналы аудита автоматически управляются демоном auditd Чтобы настроить ротацию:

  • Отредактируйте /etc/audit/auditd.conf файл:
max_log_file = 50   # Maximum size in MB for audit.log
max_log_file_action = rotate  # Rotate logs when size exceeds limit
  • Проверка конфигурации:
sudo service auditd restart

Ротация других журналов

Для журналов, не связанных с аудитом, используйте logrotate:

  • Пример для /var/log/syslog:
/var/log/syslog {
    weekly
    rotate 4
    compress
    missingok
    notifempty
    create 0640 root root
}

5. Продвинутые практики мониторинга и аудита

Мониторинг журналов в реальном времени

Мониторинг в реальном времени необходим для обнаружения критических событий. Вот инструменты и методы:

  1. Logwatch: обобщает ежедневные журналы и отправляет их администраторам по электронной почте. sudo apt install logwatch Настройте его в /etc/logwatch/conf/logwatch.conf.
  2. Централизованное управление журналами:
    • Rsyslog: пересылает журналы на центральный сервер. sudo apt install rsyslog Настройте /etc/rsyslog.conf для отправки журналов на удалённый сервер.
    • Graylog: предоставляет веб-интерфейс для анализа журналов.
    • ELK Stack: Elasticsearch, Logstash и Kibana для масштабируемого управления журналами.

Мониторинг с акцентом на безопасность

  • Fail2ban: отслеживает в журналах неудачные попытки входа и блокирует IP-адреса.
sudo apt install fail2ban
  • Tripwire: обнаруживает изменения файлов для выявления вторжений.
sudo apt install tripwire

Интеграция оповещений

Настройте оповещения о критических событиях с помощью таких инструментов, как:

  • Nagios: отслеживает состояние сервера и журналы на предмет аномалий.
  • Prometheus with Grafana: отслеживает метрики и журналы в реальном времени.

Расположение файлов журналов

Существует множество разных файлов журналов, и все они служат разным целям. При поиске журнала по какому-либо вопросу следует сначала определить наиболее подходящий файл. Ниже приведён список распространённых расположений файлов журналов.

Системные журналы

Системные журналы касаются именно этого — системы Ubuntu — в отличие от дополнительных приложений, установленных пользователем. Эти журналы могут содержать информацию об авторизациях, системных демонах и системных сообщениях.

Журнал авторизации

Расположение: /var/log/auth.log

Отслеживает системы авторизации, такие как запросы пароля, команду sudo и удалённые входы.

Журнал демонов

Расположение: /var/log/daemon.log

Демоны — это программы, работающие в фоновом режиме, обычно без взаимодействия с пользователем. Например, сервер отображения, сеансы SSH, службы печати, Bluetooth и многое другое.

Отладочный журнал

Расположение: /var/log/debug

Предоставляет отладочную информацию системы Ubuntu и приложений.

Журнал ядра

Расположение: /var/log/kern.log

Журналы ядра Linux.

Системный журнал

Расположение: /var/log/syslog

Содержит больше информации о системе. Если в других журналах ничего не нашлось, вероятно, это здесь.

Журналы приложений

Некоторые приложения также создают журналы в /var/log. Ниже приведены некоторые примеры.

Журналы Apache

Расположение: /var/log/apache2/ (подкаталог)

Apache создаёт несколько файлов журналов в /var/log/apache2/ подкаталоге. Файл access.log записывает все запросы к серверу для доступа к файлам. error.log записывает все ошибки, выданные сервером.

Журналы сервера X11

Расположение: /var/log/Xorg.0.log

Сервер X11 создаёт отдельный файл журнала для каждого дисплея. Нумерация дисплеев начинается с нуля, поэтому первый дисплей (дисплей 0) будет записывать журнал в Xorg.0.log. Следующий дисплей (дисплей 1) будет записывать журнал в Xorg.1.log, и так далее.

Журналы, нечитаемые человеком

Не все файлы журналов предназначены для чтения человеком. Некоторые созданы для обработки приложениями. Ниже приведены некоторые примеры.

Журнал неудачных входов

Расположение: /var/log/faillog

Содержит информацию о неудачных входах. Просмотреть его можно с помощью команды faillog .

Журнал последних входов

Расположение: /var/log/lastlog

Содержит информацию о последних входах. Просмотреть его можно с помощью команды lastlog .

Журнал записей о входах

Расположение: /var/log/wtmp

Содержит информацию о входах, которую другие утилиты используют, чтобы узнать, кто вошёл в систему. Чтобы увидеть вошедших в данный момент пользователей, используйте команду who .


Заключение

Аудит и журналирование необходимы для поддержания безопасного и надёжного сервера Ubuntu. Тщательно планируя дисковое пространство, используя инструменты анализа журналов и внедряя продвинутые практики мониторинга, можно преодолеть распространённые трудности и лучше понимать действия системы.

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

Далее: Инструменты мониторинга системы для Ubuntu Server

В следующей статье мы глубже погрузимся в мониторинг и управление производительностью. Мы рассмотрим мощные инструменты мониторинга системы для Ubuntu Server, включая такие решения, как Nagios, Prometheus, Grafana и htop, чтобы помочь отслеживать использование ресурсов, выявлять узкие места и оптимизировать производительность сервера.

Следите за продолжением, чтобы узнать, как поддерживать эффективную работу сервера и упреждающе устранять потенциальные проблемы, прежде чем они повлияют на работу!

3 thoughts on “09. Audit and Logging on Ubuntu Server: A Comprehensive Guide”

Оставить комментарий