LINUX.ORG.RU
ФорумAdmin

smtp авторизация на сервере postfix

 , ,


0

1

Здравствуйте!

В локальной сети есть 2 почтовых сервера. Старый (sendmail+qpopper) и новый (postfix+dovecot+mysql). Настроена пересылка почты между ними (почтовые домены разные). На новом сервере настроил smtp-авторизацию и теперь клиенты могут отправлять почту, только если в клиенте нового сервера включена опция:

SMTP-серверу требуется проверка подлинности
Аналогично серверу для входящей почты
Но теперь если клиент старого сервера отправляет письмо клиенту нового сервера, то в ответ получает ошибку:
5.7.1 <user@dom.lan>: Sender address rejected: not logged in
Логично! Ведь старый сервер для нового является неавторизованным клиентом. В main.cf следующее:
mynetworks = xx.xx.xx.xx/16
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = reject_sender_login_mismatch
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_client_restrictions = permit_sasl_authenticated
Оба сервера находятся в сети mynetworks. Как сказать postfix'у, чтобы он не требовал авторизации от старого сервера? Спасибо!

smtpd_sender_restrictions = permit_mynetworks reject_sender_login_mismatc

gh0stwizard ★★★★★ ()
Ответ на: комментарий от gh0stwizard

Спасибо! Работает! Значит, я еще и ошибся с определением параметра mynetworks.
Сейчас вместо всей сети оставил только адрес старого сервера:

mynetworks = xx.xx.xx.xx
Все остальные должны авторизоваться, чтобы иметь возможность отправлять почту.

Есть еще вопрос по postfix'у. Поможете? :)
Если клиент нового сервера, заполняя поле КОМУ ошибается в имени домена, то postfix ставит это письмо в очередь:
Nov 20 14:17:23 mail postfix/smtp[25640]: 6EF8275966: to=<user@other.mail>, relay=none, delay=90083,
delays=90083/0.44/0.01/0, dsn=4.4.3, status=deffered (Host or domain name not found. Name service error for
name other.mail type=MX: Host not found, try again)
Существует только два почтовых локальных домена. Ни один из серверов не отправляет почту в Интернет. Как сделать проверку, чтобы письмо на несуществующий домен не отправлялось, а отправитель получал ошибку. Спасибо!

citmen ()
Ответ на: комментарий от citmen

Добавь где-то в smtpd_sender_restrictions два правила, первое пропускающее письма с твоим доменом назначения, и второе отбрасывающее все остальные.
И рекомендую пролистать книгу «Postfix. Подробное руководство».

MrClon ★★★★★ ()
Ответ на: комментарий от citmen

А, у тебя permit_mynetworks. Можно его заменить на список разрешённых доменов например.

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Написал:

smtpd_recipient_restrictions = reject_unknown_recipient_domain, (другие ограничения)
И получилось то, что и было нужно.

citmen ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.