Вопрос или проблема
Недавно обновился до FreeBSD 13 и нужно пересмотреть отправку исходящей почты. Исторически я использовал sendmail, используя этот .mc файл в качестве исходного кода:
DOMAIN(generic)
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')
MASQUERADE_AS(`mydomain.local')
FEATURE(`masquerade_envelope')
define(`SMART_HOST', `mynas.mydomain.local')
MAILER(local)
MAILER(smtp)
Полное доменное имя ‘mynas.mydomain.local’ указывает на Synology NAS, который слушает на порту 25 и действует как внутренний SMTP-ретранслятор.
Я пытаюсь использовать DMA, так как кажется, что у него меньше издержек, и использую это для /etc/dma/dma.conf
:
SMARTHOST mynas.mydomain.local
PORT 25
MAILNAME mydomain.local
MASQERADE mydomain.local
Но анализ пакетов показывает, что тестовая электронная почта не использует Умный Хост вообще, и логи на Synology показывают, что ничего не получено при отправке тестовой электронной почты.
Ответ или решение
Использование Smart Host для исходящей почты через SMTP — это распространенная задача, с которой сталкиваются многие администраторы систем, пытающиеся оптимизировать почтовую инфраструктуру. В данном контексте это становится особенно актуально при переходе на менее ресурсоёмкие решения, такие как DMA (Dragonfly Mail Agent), который, как считается, обладает меньшей нагрузкой по сравнению с традиционными решениями, такими как Sendmail.
ТЕОРИЯ. Smart Host выступает в роли промежуточного узла, который берет на себя ответственность за доставку электронной почты от клиента к конечному получателю. Это особенно полезно в сетях, где есть ограничения по исходящим SMTP-соединениям, либо требуется централизованный контроль за отправкой почты внутри корпоративной сети. На примере данной конфигурации, mynas.mydomain.local выполняет эту роль на базе Synology NAS, принимая исходящие сообщения на порт 25. Задача состоит в переносе конфигурации с Sendmail на DMA без потери функциональности маршрутизации через Smart Host.
ПРИМЕР. Ваша исходная конфигурация Sendmail, использовавшая файл с настройками на основе M4 (.mc файл), прекрасно демонстрирует стандартный способ интеграции Smart Host:
DOMAIN(generic)
DAEMON_OPTIONS(`Name=IPv4, Family=inet')
DAEMON_OPTIONS(`Name=IPv6, Family=inet6, Modifiers=O')
MASQUERADE_AS(`mydomain.local')
FEATURE(`masquerade_envelope')
define(`SMART_HOST', `mynas.mydomain.local')
MAILER(local)
MAILER(smtp)
Эти параметры настроек обеспечивают маскарад отправляемой почты, что позволяет всем отправлениям казаться исходящими с домена mydomain.local, и маршрутизацию любой исходящей почты через mynas.mydomain.local.
С переходом на DMA, конфигурация была адаптирована под специальный файл /etc/dma/dma.conf:
SMARTHOST mynas.mydomain.local
PORT 25
MAILNAME mydomain.local
MASQERADE mydomain.local
На первый взгляд, конфигурация должна перенять функциональность Sendmail, но на практике тестовые отправления не доходят до Smart Host, как показывает анализ пакетов и логи Synology.
ПРИМЕНЕНИЕ. Чтобы решить проблему, начнем с проверки основных параметров конфигурации. В случае DMA некоторые моменты могут потребовать дополнительной настройки:
-
Проверка DNS и сетевой маршрутизации. Убедитесь, что mynas.mydomain.local корректно разрешается в IP-адрес внутри вашей сети. Путаница с DNS может привести к попыткам отправки сообщений в неверное место или к невозможности установления соединения вообще.
-
Соответствие формату и синтаксису конфигурационного файла. Верно ли указаны все параметры в dma.conf? Пропущенная строка или опечатка, например в MASQUERADE (пропущена буква "Q"), может повлиять на работу.
-
Журналы DMA. Активируйте логгирование в DMA, чтобы получить доступ к сообщениям об ошибках или к сообщениям об отладке работы программы. Это поможет выявить, например, проблемы соединения или разрешения DNS.
-
Файлы конфигурации и права доступа. Убедитесь, что у файла dma.conf права доступа выставлены правильно, чтобы DMA мог корректно загружать и применять конфигурации.
-
Валидация рабочего порта. Убедитесь, что Synology действительно слушает на указанном порту (25). Выполните проверку доступности порта с клиентского узла (например, с помощью telnet).
-
Применение команды ‘sendmail’ от DMA. Попробуйте отправить почту через команду sendmail DMA, проверяя выданные сообщения о завершении и ошибки. Командная строка может дать больше информации о том, что идет не так.
-
Альтернативное тестирование. Если все вышеперечисленное не выявило проблем, попробуйте настройку с другой SMTP-утилитой для сравнения. Это подтвердит, находится ли проблема на стороне конфигурации DMA или она внешняя по отношению к этому агенту.
Системный администратор, сталкивающийся с такой задачей, должен проявлять внимательность к деталям конфигурации, а также использовать инструменты мониторинга и диагностики сети. Миграция почтовых агентов может потребовать значительного времени на тестирование и выявление совместимости, но это необходимые шаги на пути к оптимизации инфраструктуры, что в свою очередь может привести к уменьшению затрат на обслуживание и улучшению стабильности почтовой доставки.