Вопрос или проблема
Я настраиваю почтовый сервер Postfix, сконфигурированный с Amavis для сканирования писем на наличие вирусов. После обработки письма Amavis отправляет его обратно в Postfix на специальном слушателе на порту 10025
для окончательной доставки. Однако эта настройка вызывает добавление Postfix дополнительного заголовка Received
, который я не могу подавить. Этот дополнительный заголовок Received
похоже генерируется слушателем Postfix на 127.0.0.1:10025
.
Вот моя настройка:
Postfix main.cf
:
content_filter = smtp-amavis:[127.0.0.1]:10024
smtpd_proxy_options = speed_adjust
Postfix master.cf
:
smtp-amavis unix - - n - 2 smtp
-o syslog_name=postfix/amavis
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
-o smtp_tls_security_level=none
127.0.0.1:10025 inet n - n - - smtpd
-o syslog_name=postfix/10025
-o content_filter=
-o mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o local_recipient_maps=
-o relay_recipient_maps=
-o strict_rfc821_envelopes=yes
-o smtp_tls_security_level=none
-o smtpd_tls_security_level=none
-o smtpd_received_header=no
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_end_of_data_restrictions=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o smtpd_milters=
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
Проблема:
После обработки письма Postfix добавляет этот дополнительный заголовок Received
:
Received: from localhost (mx.domain.com [127.0.0.1])
by mx.domain.com (Postfix) with ESMTP id R69B85E11;
Fri, 8 Nov 2024 23:00:07 +0400 (+0400)
Мне удалось удалить заголовок Received
, сгенерированный Amavis, с помощью этой настройки в /etc/amavis/conf.d/50-user
:
$allowed_added_header_fields{lc('Received')} = 0;
Тем не менее, заголовок, сгенерированный Postfix на слушателе 10025
, сохраняется, и я не нашел способа предотвратить его добавление.
- Я пытался добавить header_checks и smtpd_header_checks; они могут удалить оригинальный заголовок Received, но не последний, добавленный на порту 10025.
- Я также пытался добавить службу очистки, непосредственно связанную с 10025 в master.cf, но без успеха.
Как я могу настроить Postfix, чтобы предотвратить добавление этого дополнительного заголовка Received
на слушателе 127.0.0.1:10025
? Есть ли конкретная настройка, которую я пропустил, или есть другой способ подавить этот заголовок в Postfix?
Ответ или решение
Как убрать лишний заголовок ‘Received’ в Postfix при использовании Amavis на слушателе порта 10025
При настройке почтового сервера Postfix с интеграцией Amavis для сканирования писем часто возникает проблема с добавлением лишнего заголовка Received
, который Postfix генерирует на специальном слушателе порта 10025. Это может вызвать беспокойство у системных администраторов, особенно если в логах отображается ненужная информация или накладываются ограничения на обработку почты. Давайте рассмотрим, как можно решить эту проблему.
Конфигурация Postfix
Ваша текущая конфигурация Postfix, включая разделы main.cf
и master.cf
, выглядит следующим образом:
Postfix main.cf
:
content_filter = smtp-amavis:[127.0.0.1]:10024
smtpd_proxy_options = speed_adjust
Postfix master.cf
:
smtp-amavis unix - - n - 2 smtp
-o syslog_name=postfix/amavis
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
-o smtp_tls_security_level=none
127.0.0.1:10025 inet n - n - - smtpd
-o syslog_name=postfix/10025
-o content_filter=
-o mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o local_recipient_maps=
-o relay_recipient_maps=
-o strict_rfc821_envelopes=yes
-o smtp_tls_security_level=none
-o smtpd_tls_security_level=none
-o smtpd_received_header=no
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_end_of_data_restrictions=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o smtpd_milters=
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
Проблема
После обработки электронных писем Amavis Postfix добавляет заголовок Received
:
Received: from localhost (mx.domain.com [127.0.0.1])
by mx.domain.com (Postfix) with ESMTP id R69B85E11;
Fri, 8 Nov 2024 23:00:07 +0400 (+0400)
Вы уже смогли удалить заголовок, который добавляет Amavis, установив в 50-user
:
$allowed_added_header_fields{lc('Received')} = 0;
Однако заголовок, добавляемый Postfix, по-прежнему присутствует.
Решение
Чтобы предотвратить добавление лишнего заголовка Received
на уровне слушателя порта 10025 в Postfix, есть несколько шагов, которые можно предпринять.
-
Настройка отправки почты через
content_filter
:
Попробуйте задать флаг-o smtpd_received_header=no
для процессов, относящихся к Amavis, или убедитесь, что предыдущие настройки не конфликтуют. -
Добавление сервиса Cleanup:
Можно попробовать добавить отдельный сервис Cleanup для обработки почты перед тем, как она будет отправлена на локальный слушатель. Это требует создания нового сокета вmaster.cf
:cleanup unix n - - 0 cleanup
Затем свяжите его с вашим существующим слушателем:
smtp-amavis unix - - n - 2 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 -o smtp_tls_security_level=none -o smtpd_received_header=no
-
Использование
header_checks
:
Убедитесь, что вы используете параметрыheader_checks
илиsmtpd_header_checks
, чтобы удалить любой нежелательный заголовок после процесса фильтрации.
Проверка и тестирование
После всех изменений необходимо протестировать конфигурацию, перезапустив Postfix:
sudo systemctl restart postfix
Затем отправьте тестовое письмо и проверьте заголовки. Если проблема сохраняется, возможно, стоит проверить логи на наличие дополнительных подсказок.
Заключение
Управление заголовками электронных писем в Postfix может быть сложной задачей, особенно в связке с Amavis. Следуя вышеописанным шагам, вы сможете устранить лишние заголовки и настроить более чистую конфигурацию для вашего почтового сервера. Важно следить за обновлениями документации Postfix и Amavis, так как методы и настройки могут изменяться с новыми версиями.