Вопрос или проблема
Я использовал 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
и интеграции его с другими компонентами системы.
Примеры
-
Основной конфигурационный файл Postfix (
main.cf
):Чтобы убедиться, что все изменения конфигурации корректно применяются, важно иметь правильные настройки в
main.cf
. Из предоставленного описания видно, что строки для файловых журналов (maillog_file
) закомментированы. Если они раскомментированы, записи должны вестись в указанный файл. Однако, проблемы могут быть более связаны с управлением уровнем детальности логов или с отсутствием логгирования именно исходящих сообщений.maillog_file = /var/log/mail.log maillog_file_permissions = 0644
-
Конфигурация логгирования в
master.cf
:В
master.cf
виден конфигурированный сервисpostlog
. Убедитесь, что эта настройка корректна, и что модульpostlogd
активирован в системе. Он отвечает за передачу информации вsystemd-journal
. -
Настройка
systemd
:Убедитесь, что система настроена для корректного захвата всех уровней логов, для этого в настройках
systemd-journald
можно увеличить уровень детализации:/etc/systemd/journald.conf RateLimitInterval=30s RateLimitBurst=1000
Далее перезапустите службу
systemd-jjournald
для применения настроек:systemctl restart systemd-journald
-
Проверка разрешений и конфигурации SELinux:
Если SELinux активен, возможно, его настройки препятствуют логгированию. Попробуйте временно изменить его в режим разрешения, чтобы выявить возможные проблемы:
setenforce 0
Следует также проверить логи SELinux на возможные нарушения:
cat /var/log/audit/audit.log | grep postfix
Применение
После внесения всех указанных изменений и рекомендаций, важно протестировать систему:
-
Отправьте тестовое письмо через ваш сервер Postfix и проверьте журналы через:
journalctl -xe | grep postfix
-
Проверьте раскомментированные строки в
main.cf
и убедитесь, что логи появляются в указанном файле:tail -f /var/log/mail.log
-
Если логи исходящих писем по-прежнему отсутствуют, проверяйте конфигурации каждого из представленных выше компонентов пошагово, чтобы определить, где возникает прерывание логгирования.
Таким образом, путем внимательной проверки и корректировки конфигураций, использования средств диагностики и мониторинга, а также анализа политик безопасности, вы сможете восстановить функциональность логгирования исходящих писем в Postfix на сервере Fedora 41.