Postfix не ведет журнал исходящей почтовой активности.

Вопрос или проблема

Я использовал postfix много лет без каких-либо проблем. Недавно я обновил свой сервер fedora до версии 41, и postfix продолжает работать идеально. Однако раньше я мог смотреть в файлы журналов и видеть попытки доставки и статус исходящих писем. Вместо этого теперь я вижу только активность входящей почты. Я не могу понять, как снова получить журналирование исходящей активности.

Детали системы: fedora cloud версии 41. Postfix версии 3.9.

Релевантный файл master.cf для журналирования:

#master.cf

postlog   unix-dgram n  -       n       -       1       postlogd
#main.cf

#maillog_file = /var/log/postfix.log
#maillog_file_permissions = 0644

С вышеуказанной конфигурацией я могу видеть журналирование через journalctl, как:

journalctl -f -u postfix

с типичным выводом (анонимизировано):

Jan 25 16:15:37 myserver.com postfix/anvil[35133]: statistics: max cache size 6 at Jan 25 16:11:35
Jan 25 16:16:41 myserver.com postfix/smtpd[36728]: connect from mail-lf1-f47.google.com[209.85.167.47]
Jan 25 16:16:41 myserver.com postfix/smtpd[36728]: Anonymous TLS connection established from mail-lf1-f47.google.com[209.85.167.47]: TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
Jan 25 16:16:42 myserver.com postfix/smtpd[36728]: 2CE7A198EC1: client=mail-lf1-f47.google.com[209.85.167.47]
Jan 25 16:16:42 myserver.com postfix/cleanup[36788]: 2CE7A198EC1: message-id=<CAOcSn_Lmx8rpiip0OVe+0ocfnOz-0oFyxVOsrA=pDa_Zp_SvqA@mail.gmail.com>
Jan 25 16:16:42 myserver.com postfix/qmgr[18295]: 2CE7A198EC1: from=<[email protected]>, size=6835, nrcpt=1 (queue active)
Jan 25 16:16:42 myserver.com postfix/smtpd[36728]: disconnect from mail-lf1-f47.google.com[209.85.167.47] ehlo=2 starttls=1 mail=1 rcpt=1 bdat=1 quit=1 commands=7
Jan 25 16:16:42 myserver.com postfix/smtpd[36794]: connect from unknown[127.0.0.1]
Jan 25 16:16:42 myserver.com postfix/smtpd[36794]: BEC9C198ECA: client=unknown[127.0.0.1]
Jan 25 16:16:42 myserver.com postfix/cleanup[36788]: BEC9C198ECA: message-id=<CAOcSn_Lmx8rpiip0OVe+0ocfnOz-0oFyxVOsrA=pDa_Zp_SvqA@mail.gmail.com>
Jan 25 16:16:42 myserver.com postfix/smtpd[36794]: disconnect from unknown[127.0.0.1] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
Jan 25 16:16:42 myserver.com postfix/qmgr[18295]: BEC9C198ECA: from=<[email protected]>, size=7488, nrcpt=1 (queue active)
Jan 25 16:16:42 myserver.com postfix/smtp[36790]: 2CE7A198EC1: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.71, delays=0.19/0.01/0/0.5, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as BEC9C198ECA)
Jan 25 16:16:42 myserver.com postfix/qmgr[18295]: 2CE7A198EC1: removed
Jan 25 16:16:44 myserver.com postfix/local[36795]: BEC9C198ECA: to=<[email protected]>, relay=local, delay=1.6, delays=0.01/0.01/0/1.6, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail -a "$EXTENSION" -t)
Jan 25 16:16:44 myserver.com postfix/qmgr[18295]: BEC9C198ECA: removed

Если я раскомментирую строки maillog_file в main.cf, тогда я получаю эквивалентный журнал в соответствующий файл журнала, всё как ожидалось.

В любом случае, я не вижу никаких журналов для исходящей почтовой активности с моего сервера. Это работало для меня из коробки. Кто-нибудь знает, как я могу вернуть это?

Ответ или решение

Для решения задачи, связанной с отсутствием логгирования исходящей почты в Postfix на сервере Fedora версии 41, необходимо тщательно проанализировать текущую конфигурацию Postfix и системных журналов, а также внести соответствующие изменения для восстановления требуемой функциональности. В данном ответе мы рассмотрим теоретическую часть, предоставим примеры настройки и применения для вашего конкретного случая.

Теория

Postfix — это мощный почтовый сервер с открытым исходным кодом, который часто используется для обработки электронной почты на многих Unix-системах, включая Fedora. Логгирование — это важная часть системы управления почтовым сервером, так как оно позволяет отслеживать отправку и получение писем, диагностировать ошибки и управлять производительностью почтового сервера. Для логгирования Postfix использует системные журналы Syslog, либо, если настроено, может работать с отдельными файлами журналов.

В Fedora 41 произошли изменения, которые могут повлиять на поведение службы логгирования. Например, это может касаться использования systemd-journald и интеграции его с другими компонентами системы.

Примеры

  1. Основной конфигурационный файл Postfix (main.cf):

    Чтобы убедиться, что все изменения конфигурации корректно применяются, важно иметь правильные настройки в main.cf. Из предоставленного описания видно, что строки для файловых журналов (maillog_file) закомментированы. Если они раскомментированы, записи должны вестись в указанный файл. Однако, проблемы могут быть более связаны с управлением уровнем детальности логов или с отсутствием логгирования именно исходящих сообщений.

    maillog_file = /var/log/mail.log
    maillog_file_permissions = 0644
  2. Конфигурация логгирования в master.cf:

    В master.cf виден конфигурированный сервис postlog. Убедитесь, что эта настройка корректна, и что модуль postlogd активирован в системе. Он отвечает за передачу информации в systemd-journal.

  3. Настройка systemd:

    Убедитесь, что система настроена для корректного захвата всех уровней логов, для этого в настройках systemd-journald можно увеличить уровень детализации:

    /etc/systemd/journald.conf
    RateLimitInterval=30s
    RateLimitBurst=1000

    Далее перезапустите службу systemd-jjournald для применения настроек:

    systemctl restart systemd-journald
  4. Проверка разрешений и конфигурации SELinux:

    Если SELinux активен, возможно, его настройки препятствуют логгированию. Попробуйте временно изменить его в режим разрешения, чтобы выявить возможные проблемы:

    setenforce 0

    Следует также проверить логи SELinux на возможные нарушения:

    cat /var/log/audit/audit.log | grep postfix

Применение

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

  1. Отправьте тестовое письмо через ваш сервер Postfix и проверьте журналы через:

    journalctl -xe | grep postfix
  2. Проверьте раскомментированные строки в main.cf и убедитесь, что логи появляются в указанном файле:

    tail -f /var/log/mail.log
  3. Если логи исходящих писем по-прежнему отсутствуют, проверяйте конфигурации каждого из представленных выше компонентов пошагово, чтобы определить, где возникает прерывание логгирования.

Таким образом, путем внимательной проверки и корректировки конфигураций, использования средств диагностики и мониторинга, а также анализа политик безопасности, вы сможете восстановить функциональность логгирования исходящих писем в Postfix на сервере Fedora 41.

Оцените материал
Добавить комментарий

Капча загружается...