Введение: почему аудит и журналирование важны
Аудит и журналирование на 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. Реальное использование системного аудита
Почему многие системы пропускают аудит
Несмотря на мощность аудита, многие администраторы избегают его включения по следующим причинам:
- Потребление дискового пространства: журналы аудита могут быстро расти, особенно в нагруженных системах, потребляя значительный объём дискового пространства.
- Накладные расходы на производительность: включение подробного аудита может немного снизить производительность системы.
- Сложность: журналы аудита многословны и требуют специализированных инструментов для анализа.
Как планировать аудит
Планирование дискового пространства
Чтобы эффективно спланировать аудит:
- Оценка роста журналов: отслеживайте темпы роста журналов, временно включив аудит и измеряя размер журналов в течение недели.
sudo du -sh /var/log/audit/Используйте эти данные для расчёта суточных, недельных и месячных потребностей в хранении. - Выделение отдельного хранилища: храните журналы аудита на отдельном разделе или диске, чтобы журналы не заполняли корневую файловую систему. Например:
- Создайте раздел для журналов:
/var/log/audit. - Используйте такие инструменты, как
lvcreate(диспетчер логических томов), чтобы при необходимости динамически расширять хранилище.
- Создайте раздел для журналов:
- Включение сжатия: используйте
logrotateдля сжатия старых журналов аудита, что значительно снижает потребности в хранении. - Политики хранения: определите политики хранения исходя из потребностей организации. Например:
- Храните журналы 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
Инструменты анализа журналов аудита
Журналы аудита могут быть огромными, но несколько инструментов помогут обработать и проанализировать данные:
- Aureport: создаёт сводные отчёты из журналов аудита.
sudo aureport --summary - Auditbeat: Лёгкий инструмент от Elastic для отправки журналов аудита в централизованный стек ELK для визуализации и анализа.
- Установка Auditbeat:
sudo apt install auditbeat - Настройте его для отправки журналов в Elasticsearch или Logstash.
- Установка Auditbeat:
- 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. Продвинутые практики мониторинга и аудита
Мониторинг журналов в реальном времени
Мониторинг в реальном времени необходим для обнаружения критических событий. Вот инструменты и методы:
- Logwatch: обобщает ежедневные журналы и отправляет их администраторам по электронной почте.
sudo apt install logwatchНастройте его в/etc/logwatch/conf/logwatch.conf. - Централизованное управление журналами:
- Rsyslog: пересылает журналы на центральный сервер.
sudo apt install rsyslogНастройте/etc/rsyslog.confдля отправки журналов на удалённый сервер. - Graylog: предоставляет веб-интерфейс для анализа журналов.
- ELK Stack: Elasticsearch, Logstash и Kibana для масштабируемого управления журналами.
- Rsyslog: пересылает журналы на центральный сервер.
Мониторинг с акцентом на безопасность
- 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”