Чтобы использовать специальный демон очистки только для исходящих писем, я определил специальный процесс smtpd в master.cf
который используется как default_transport
. (Только postfix должен иметь возможность отправлять электронные письма через этот демон!)
127.0.0.1:10027 инет n - - - - smtpd
-o syslog_name=postfix-smtpout
-o cleanup_service_name=srscleanup
-o smtpd_tls_security_level=нет
-o content_filter=SMTP:
-o smtpd_recipient_restrictions=разрешить_мои сети, отклонить
-o smtpd_sender_restrictions=разрешить
Это прекрасно работает. Однако он открыт для любого локального пользователя/процесса на машине, подключающейся к этому порту и отправляющей почту без аутентификации (из-за ослабленных ограничений отправителя/получателя), что не очень безопасно.
Поэтому я хотел бы запустить этот специальный smtpd
как сокет домена unix (доступ к которому могут получить только процессы, работающие под постфиксным пользователем).
я установил default_transport = smtpout
и создал службу в master.cf
как это:
smtpout unix - - - - - smtpd
-o syslog_name=postfix-smtpout
-o cleanup_service_name=srscleanup
-o smtpd_tls_security_level=нет
-o content_filter=SMTP:
-o smtpd_recipient_restrictions=разрешить_мои сети, отклонить
-o smtpd_sender_restrictions=разрешить
Однако это приводит к тому, что электронные письма застревают в очереди и регистрируют такие сообщения: предупреждение: неожиданный конец ввода из сокета private/smtpout при чтении имени входного атрибута
.
Как я могу исправить это и использовать процесс smtpd, привязанный к сокету домена unix (вместо привязки к inet)?