Настройка аудита в Zimbra: контроль за действиями пользователей
Контроль за действиями пользователей в почтовой системе — основа безопасности. В Zimbra аудит-логи позволяют отслеживать все изменения, входы и операции. Неправильная настройка или игнорирование логов — частая причина уязвимостей. В статье разберем, как настроить аудит, анализировать логи и реагировать на подозрительные события.
Зачем нужен аудит в Zimbra
В Zimbra аудит-логи — не просто архив. Это система контроля, которая фиксирует каждый пользовательский и системный запрос. Без аудита невозможно выявить подозрительные действия: несанкционированный вход, изменение прав, удаление ящиков или изменение настроек безопасности. Логи служат одновременно доказательством и инструментом реагирования. При атаке, особенно если Zimbra уязвима, первое, что нужно — логи. Они показывают, кто и когда что сделал. Без них — просто гадание.
В Zimbra логи хранятся в /opt/zimbra/log, и это не случайно. Именно там фиксируются все действия, связанные с аутентификацией, изменениями в конфигурации и операциями с почтовыми ящиками. Некоторые администраторы считают, что логи не нужны, пока всё работает. Это ошибка. Неправильная настройка уровня логирования, например, если он установлен на WARN вместо INFO, может привести к тому, что критические события не будут записаны. Важно, чтобы логи были включены и настроены на фиксацию всех изменений. Это не вопрос «надо ли», а «как быстро мы сможем отреагировать при атаке».
Аудит-логи — это не только для инцидентов. Они также помогают выявить внутренние угрозы. Например, если кто-то из администраторов изменяет настройки безопасности без необходимости, это может быть признаком внутреннего риска. Аудит охватывает не только внешние атаки, но и контроль действий пользователей с доступом к системе. В Zimbra можно настроить логирование всех изменений в конфигурации, включая изменения в правах пользователей, что позволяет отслеживать, кто и когда что изменил.
Важно также понимать, что логи — это не только для анализа, но и для доказательства. При инциденте, если логи не содержат необходимой информации, это может привести к невозможности идентифицировать атакующего. Поэтому настройка логирования — это не просто технический шаг, а часть политики безопасности. В Zimbra это особенно важно, так как система часто используется в бизнесе, где данные имеют высокую ценность.
Некоторые администраторы считают, что логи — это просто багаж. Они думают, что если система работает, то логи не нужны. Это ошибка. Логи — это не багаж, а инструмент. Они позволяют отслеживать, кто и когда что сделал. В Zimbra логи могут содержать информацию о попытках входа, изменениях в конфигурации, удалении ящиков и т.д. Без логов невозможно понять, что произошло при инциденте. Поэтому настройка логирования — это не опция, а обязательное требование.
Настройка логирования и выбор источников
Для эффективного аудита в Zimbra необходимо настроить логирование на уровне компонентов. По умолчанию Zimbra использует log4j, и уровень логирования для zimbra.security установлен на INFO, направляя события в AUDIT. Это означает, что все действия, связанные с безопасностью, будут записываться. Если уровень установлен ниже, или логи не направляются в нужное место, система может не фиксировать критические события. Проверка настройки в /opt/zimbra/conf/log4j.properties — обязательный шаг. Неправильная конфигурация — частая причина, когда администраторы не видят подозрительных действий.
Не все логи одинаково полезны. Например, sync.log отслеживает работу мобильных устройств и может содержать информацию о синхронизации почты. Это может быть полезно для выявления несанкционированного доступа с мобильных устройств. Однако, если логи не анализируются регулярно, они просто накапливаются, и администратор может не заметить подозрительную активность. Поэтому важно не только собирать логи, но и настраивать их анализ. Для этого можно использовать скрипты, которые проверяют логи на наличие строк типа «Service status change» или ошибок аутентификации.
Особое внимание стоит уделить логам, связанным с аутентификацией. В Zimbra логи аутентификации можно проверить через /opt/zimbra/log/mailbox.log и /opt/zimbra/log/zmmailbox.log. В них фиксируются попытки входа, успешные и неудачные. Также важен лог /opt/zimbra/log/audit.log, который содержит информацию о системных вызовах и изменениях в конфигурации. Важно, что логи не только фиксируют действия, но и могут быть использованы для интеграции с системами мониторинга, например, через fail2ban. Настройка fail2ban для Zimbra позволяет автоматически блокировать IP-адреса при множестве неудачных попыток входа. Это не сложная настройка, но требует внимания к деталям.
Также важно настроить ротацию логов, чтобы избежать переполнения диска. Если логи не ротируются, они могут занять всё место на диске, что приведёт к остановке работы Zimbra. Ротация логов настраивается через /opt/zimbra/conf/log4j.properties и /etc/logrotate.conf. Ротация — это не только удаление устаревших логов, но и их сохранение для последующего анализа. Поэтому логи должны храниться в течение определённого времени, например, 30 дней, и затем удаляться.
Проверка настройки логирования осуществляется через лог-файл /var/log/zimbra.log. В нём должны быть видны записи, соответствующие настройкам логирования. Если логи не появляются, это может означать, что настройки не применены или не работают. Важно также проверить, что логи сохраняются и не перезаписываются из-за ограничения по размеру. Неправильная настройка ротации логов может привести к потере данных.
Анализ логов: инструменты и скрипты
Для анализа логов в Zimbra используются как встроенные инструменты, так и сторонние скрипты. Один из таких скриптов — zm-audit-log.pl, который предназначен для анализа журналов аудита. Он позволяет извлекать и форматировать данные о действиях пользователей, включая входы, изменения прав, отправку писем и т.д. Скрипт по умолчанию анализирует логи в /opt/zimbra/log, и его можно настроить для автоматического запуска через cron. Это позволяет получать регулярные отчёты без ручного анализа.
Также важно учитывать, что не все логи одинаково полезны. Например, sync.log отслеживает работу мобильных устройств и может содержать информацию о синхронизации почты. Это может быть полезно для выявления несанкционированного доступа с мобильных устройств. Однако, если логи не анализируются регулярно, они просто накапливаются, и администратор может не заметить подозрительную активность. Поэтому важно не только собирать логи, но и настраивать их анализ. Для этого можно использовать скрипты, которые проверяют логи на наличие строк типа «Service status change» или ошибок аутентификации.
Скрипт zm-audit-log.pl можно настроить для автоматического запуска через cron. Это позволяет получать регулярные отчёты без ручного анализа. Также можно настроить скрипт для отправки уведомлений при обнаружении определённых событий, например, при множестве неудачных попыток входа. Это позволяет быстро реагировать на подозрительную активность.
Анализ логов — это не только про скрипты. Важно также понимать, что логи — это не просто текст, а данные, которые нужно интерпретировать. Например, если в логах есть строка «Service status change», это может означать, что кто-то изменил статус сервиса. Это может быть признаком атаки, особенно если изменение произошло в нерабочее время. Поэтому важно настроить мониторинг логов и реагировать на аномалии.
Логи служат не только для анализа, но и для доказательства. При инциденте, если логи не содержат необходимой информации, это может привести к невозможности идентифицировать атакующего. Поэтому настройка логирования — это не просто технический шаг, а часть политики безопасности. В Zimbra это особенно важно, так как система часто используется в бизнесе, где данные имеют высокую ценность.
Настройка AuditD для мониторинга системы
Для более глубокого контроля в Zimbra можно использовать AuditD — систему аудита, которая отслеживает доступ к файлам и системным вызовам. AuditD позволяет фиксировать, кто и когда обращался к критичным файлам, например, конфигурационным файлам Zimbra или файлам почтовых ящиков. Это особенно важно, если Zimbra работает на сервере с открытыми правами доступа. AuditD — это не замена логов Zimbra, а их дополнение. Он обеспечивает контроль на уровне ОС, что особенно важно при атаках, направленных на изменение конфигурации.
Создание скрипта /root/install-auditd позволяет автоматизировать установку и настройку AuditD. Этот скрипт может включать создание правил, которые определяют, что именно нужно отслеживать. Например, можно настроить правило, которое фиксирует доступ к /opt/zimbra/, /var/log/zimbra.log и другим критичным путям. Также AuditD может быть настроен для отправки логов в централизованную систему мониторинга, что позволяет отслеживать действия в реальном времени.
AuditD — это не просто инструмент для анализа. Он также может быть использован для предотвращения атак. Например, если кто-то пытается изменить конфигурационный файл Zimbra, AuditD зафиксирует это и может отправить уведомление. Это позволяет быстро реагировать на подозрительные действия. Также AuditD может быть настроен для блокировки доступа к критичным файлам, что снижает риск несанкционированного изменения конфигурации.
AuditD — это не просто настройка, а ключевой элемент системы безопасности. Это процесс, который требует внимания к деталям. Например, если правила не настроены правильно, AuditD может не фиксировать нужные действия. Также важно настроить ротацию логов AuditD, чтобы избежать переполнения диска. Ротация логов AuditD настраивается через /etc/audit/audit.rules и /etc/logrotate.conf.
AuditD — не панацея. Он не может заменить другие меры безопасности, такие как настройка паролей, двухфакторная аутентификация и регулярные обновления. AuditD — это дополнение, которое помогает выявить подозрительные действия, но не предотвращает их. Поэтому важно использовать AuditD в сочетании с другими мерами безопасности.
Порядок действий при настройке аудита
Первый шаг — проверка текущей настройки логирования. Это делается через файл /opt/zimbra/conf/log4j.properties. Уровень логирования для zimbra.security должен быть установлен на INFO, чтобы фиксировались все действия, связанные с безопасностью. Также важно настроить ротацию логов, чтобы избежать переполнения диска. Ротация логов настраивается через /opt/zimbra/conf/log4j.properties и /etc/logrotate.conf.
Второй шаг — настройка скрипта zm-audit-log.pl для автоматического анализа логов. Скрипт можно настроить для автоматического запуска через cron. Это позволяет получать регулярные отчёты без ручного анализа. Также можно настроить скрипт для отправки уведомлений при обнаружении определённых событий, например, при множестве неудачных попыток входа.
Третий шаг — настройка AuditD для мониторинга доступа к критичным файлам. Это делается через создание правил в /etc/audit/audit.rules. Также можно использовать скрипт /root/install-auditd для автоматизации настройки. AuditD позволяет фиксировать, кто и когда обращался к критичным файлам, что особенно важно при атаках, направленных на изменение конфигурации.
Четвёртый шаг — проверка корректности применения настроек. Это делается через лог-файл /var/log/zimbra.log. В нём должны быть видны записи, соответствующие настройкам логирования. Если логи не появляются, это может означать, что настройки не применены или не работают. Важно также проверить, что логи сохраняются и не перезаписываются из-за ограничения по размеру.
Пятый шаг — настройка интеграции с системами мониторинга. Это делается через настройку fail2ban для Zimbra. Fail2ban позволяет автоматически блокировать IP-адреса при множестве неудачных попыток входа. Это не сложная настройка, но требует внимания к деталям. Также можно настроить скрипты, которые проверяют логи на наличие строк типа «Service status change» или ошибок аутентификации.
Типовые ошибки и их последствия
Одна из самых распространённых ошибок — неправильная настройка уровня логирования. Если уровень установлен на WARN вместо INFO, критические события не будут записаны. Это может привести к тому, что администратор не заметит подозрительные действия, такие как несанкционированный вход или изменение прав. Логи — не просто архив, а инструмент реагирования. Без логов невозможно понять, что произошло при инциденте.
Другая типичная ошибка — неправильная настройка ротации логов. Если логи не ротируются, они могут занять всё место на диске, что приведёт к остановке работы Zimbra. Ротация логов настраивается через /opt/zimbra/conf/log4j.properties и /etc/logrotate.conf. Ротация — это не только удаление устаревших логов, но и их сохранение для последующего анализа. Поэтому логи должны храниться в течение определённого времени, например, 30 дней, и затем удаляться.
Третья ошибка — игнорирование логов. Некоторые администраторы считают, что логи не нужны, пока всё работает. Это ошибка. Логи — это не багаж, а инструмент. Они позволяют отслеживать, кто и когда что сделал. Без логов невозможно понять, что произошло при инциденте. Поэтому настройка логирования — это не опция, а обязательное требование.
Четвёртая ошибка — неправильная настройка скриптов для анализа логов. Например, если скрипт zm-audit-log.pl не настроен для автоматического запуска через cron, администратору придётся вручную анализировать логи. Это может привести к задержкам в реагировании на подозрительные действия. Автоматизация повышает как эффективность, так и уровень безопасности.
Пятая ошибка — игнорирование AuditD. Некоторые администраторы считают, что логи Zimbra достаточно для контроля. Это ошибка. AuditD — это дополнение, которое обеспечивает контроль на уровне ОС. Он позволяет фиксировать, кто и когда обращался к критичным файлам, что особенно важно при атаках, направленных на изменение конфигурации.
Как проверить результат
Проверка результата настройки аудита — это не просто проверка, что логи появляются. Это проверка, что логи содержат нужную информацию. Например, логи должны содержать информацию о пользователе, IP-адресе, времени и типе действия. Без этой информации невозможно понять, что произошло при инциденте.
Важно также проверить, что логи анализируются регулярно. Это делается через скрипты, которые проверяют логи на наличие строк типа «Service status change» или ошибок аутентификации. Также можно настроить скрипты для отправки уведомлений при обнаружении определённых событий, например, при множестве неудачных попыток входа.
Проверка корректности применения настроек осуществляется через лог-файл /var/log/zimbra.log. В нём должны быть видны записи, соответствующие настройкам логирования. Если логи не появляются, это может означать, что настройки не применены или не работают. Важно также проверить, что логи сохраняются и не перезаписываются из-за ограничения по размеру.
Проверка результатов также включает в себя проверку, что логи ротируются и хранятся в течение определённого времени. Это делается через /opt/zimbra/conf/log4j.properties и /etc/logrotate.conf. Ротация — это не только удаление устаревших логов, но и их сохранение для последующего анализа. Поэтому логи должны храниться в течение определённого времени, например, 30 дней, и затем удаляться.
Что делать, если уже сломалось
Если вы уже потеряли контроль над системой, первое, что нужно сделать — проверить логи. Логи могут содержать информацию о том, кто и когда что сделал. Например, логи могут показать, что кто-то изменил права администратора или удалил ящики. Логи служат одновременно инструментом анализа и доказательной базой. При инциденте, если логи не содержат необходимой информации, это может привести к невозможности идентифицировать атакующего.
Второй шаг — проверка, что логи настроены правильно. Это делается через файл /opt/zimbra/conf/log4j.properties. Уровень логирования для zimbra.security должен быть установлен на INFO, чтобы фиксировались все действия, связанные с безопасностью. Также важно настроить ротацию логов, чтобы избежать переполнения диска. Ротация логов настраивается через /opt/zimbra/conf/log4j.properties и /etc/logrotate.conf.
Третий шаг — настройка скрипта zm-audit-log.pl для автоматического анализа логов. Скрипт можно настроить для автоматического запуска через cron. Это позволяет получать регулярные отчёты без ручного анализа. Также можно настроить скрипт для отправки уведомлений при обнаружении определённых событий, например, при множестве неудачных попыток входа.
Четвёртый шаг — настройка AuditD для мониторинга доступа к критичным файлам. Это делается через создание правил в /etc/audit/audit.rules. Также можно использовать скрипт /root/install-auditd для автоматизации настройки. AuditD позволяет фиксировать, кто и когда обращался к критичным файлам, что особенно важно при атаках, направленных на изменение конфигурации.
Частые вопросы
Как проверить, кто имеет права администратора в Zimbra?
Для проверки списка администраторов Zimbra можно использовать команду zmprov gaa. Она выводит список всех пользователей, имеющих права администратора. Также можно проверить логи на наличие изменений в правах, например, через логи аудита или /opt/zimbra/log/audit.log.
Как настроить логирование в Zimbra?
Настройка логирования осуществляется через файл /opt/zimbra/conf/log4j.properties. Уровень логирования для zimbra.security должен быть установлен на INFO, чтобы фиксировались все действия, связанные с безопасностью. Также важно настроить ротацию логов, чтобы избежать переполнения диска.
Что делать, если логи не фиксируют действия?
Если логи не фиксируют действия, проверьте, что уровень логирования установлен на INFO и что логи направляются в правильное место. Также проверьте, что логи не перезаписываются из-за ограничения по размеру. Убедитесь, что скрипты и инструменты для анализа логов работают корректно.
Как использовать AuditD для мониторинга Zimbra?
AuditD можно настроить для мониторинга доступа к критичным файлам и системным вызовам. Это делается через создание правил в /etc/audit/audit.rules. Также можно использовать скрипт /root/install-auditd для автоматизации настройки.
Какие логи использовать для анализа атак?
Для анализа атак используются логи /opt/zimbra/log/mailbox.log, /opt/zimbra/log/zmmailbox.log и /opt/zimbra/log/audit.log. В них фиксируются попытки входа, изменения в конфигурации и действия пользователей. Также можно использовать логи аутентификации и логи fail2ban для выявления подозрительной активности.
Как настроить автоматический анализ логов?
Для автоматического анализа логов можно использовать скрипт zm-audit-log.pl. Он позволяет извлекать и форматировать данные о действиях пользователей. Скрипт можно настроить для автоматического запуска через cron, чтобы получать регулярные отчёты.
Источники
- Zimbra Documentation — https://github.com/Zimbra/zd-full/blob/master/ZimbraServer/conf/log4j.properties
- Zimbra Community Forum — https://community.zextras.com/forum/zimbra-ose-9-by-zextras/issue-during-upgrade-zimbra-9-from-zcs-9-0-0_zextras_2023110
- Zimbra Security Blog — https://blog.zimbra.com/tag/security/


