LINUX.ORG.RU

Exim4 проверка поля From: и Return-path:

 , ,


0

1

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

Настраиваю почту на базе Exim4. Аутентификация через БД.

plain:
    driver = plaintext
    public_name = PLAIN
    server_prompts = Username:: : Password::
    server_condition = ${if crypteq{$auth3}{${lookup mysql{SELECT password FROM \
    mailbox WHERE username = '${quote_mysql:$auth2}'}}}{yes}{no}}
    server_set_id = $auth2

login:
    driver = plaintext
    public_name = LOGIN
    server_condition = ${if crypteq{$auth2}{${lookup mysql{SELECT password FROM \
    mailbox WHERE username = '${quote_mysql:$auth1}'}}}{yes}{no}}
    server_prompts = Username:: : Password::
    server_set_id = $auth1

Авторизация работает все ок. Однако хочу настроить так, чтобы пользователи могли отправлять письма только от своего имени. Тоесть чтобы поле From: (и возможно Return-path:) строго соответствовали аутентифицировавшемуся пользователю. Подозреваю, что сие должно быть както прописанно в блоке acl, хотя я вот нашел такое решение.

https://debian.pro/1541

но в моем случае, оно не помогает. Сервер пропускает любые письма с любыми заголовками при удачной авторизации.

Вот пользователь user@aaaa.com отправляет письмо на recipient@yandex.ru используя обратный адрес test2@aaaa.com

вот что получается в логах

2015-08-08 00:52:41 1ZNpZB-0007y3-DQ <= test2@aaaa.com H=localhost (mail.aaaa.com) [::1] I=[::1]:587 P=esmtpsa X=TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256 A=plain:user@aaaa.com S=1977 id=082845bf0ad8e7128f9580f4895b9f4b@nindeco.com from <test2@aaaa.com> for recipient@yandex.ru
2015-08-08 00:52:42 1ZNpZB-0007y3-DQ => recipient@yandex.ru R=dnslookup T=remote_smtp H=mx.yandex.ru [93.158.134.89] X=TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256 DN="C=RU,O=Yandex LLC,OU=ITO,L=Moscow,ST=Russian Federation,CN=mx.yandex.ru,EMAIL=pki@yandex-team.ru" C="250 2.0.0 Ok: queued on mxfront6m.mail.yandex.net as 1438984362-ZApvwYRpkR-qfUeQoFg"
2015-08-08 00:52:42 1ZNpZB-0007y3-DQ Completed

и письмо вполне успешно доходит. (отправка через smpt из roundcube).

Буду благодарен за совет.

Ответ на: комментарий от bass

Отлична!

Заработало.

Немного специфично правда но работает. Для идеальной настройки хотелось бы доточить несколько нюансов.

1. Письмо принимается к отправке. То есть если отправить письмо с левым значением в поле from, отправителю не сообщается, что он негодяй, пытается всех обмануть. Это в целом не проблема, так как почта, таких отправителей все равно рубится.

2. Как можно попробовать усложнить проверку, чтобы была возможность все таки пропускать письма, если $sender_address (я так понимаю, это то что и указано в поле from), совпадает с одим из алиасов, заданных для данного имейла. Алиасы задаются в postfixadmin и хранятся в базе.

Может посоветуете ссылку на толковый мануал (или его часть) по настройке таких штук в exim4.

merlex ()
Ответ на: Отлична! от merlex

$sender_address (я так понимаю, это то что и указано в поле from)

Не всегда. Если нет явного указания что писать в from, то будет подставлен $sender_adress.

совпадает с одим из алиасов, заданных для данного имейла

mail aliases используется как дополнительные названия ящика для доставки почты. Для отправки их не используют, но ты волен делать что хочешь.

ссылку на толковый мануал

кроме как exim-source/doc/spec.txt ничего не знаю и вот тут поищи, есть толковые вещи http://forum.lissyara.su/viewforum.php?f=20

deny
authenticated   = *
condition       = ${if eqi {$authenticated_id}\
                {${lookup в твоих базах в полях mail, mailalias в записях $sender_address}}}
message         = You cannot send mail auth by $authenticated_id with address $sender_address via our MTA.
log_message     = Try to confuse $authenticated_id with $sender_address
!senders        = :

отправителю не сообщается, что он негодяй

всё что в message появится у юзера в клиенте

как можно попробовать усложнить проверку

в condition может быть несколько if равно как и condition может быть несколько

bass ★★★★★ ()
Последнее исправление: bass (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.