Postfix на FreeBSD 8.1. Нужно включить SMTP авторизацию.
Включил (Cyrus-SASL), но есть одно НО:
Когда аутентификация не проходит нет запроса пароля, просто возвращается сообщение
Sender address rejected: not logged in
То есть для пользователя это выглядит так:
Он отправляет письмо, Аутглюк говорит, что все хорошо, письмо перемещено в отправленные, а потом просто приходит уведомление с сообщением выше.Как-то можно это исправить? Нужно чтобы если вбит неправильный пароль или на клиенте не включена SMTP авторизация, то выдавалась ошибка или запрос пароля.
Выдержка из main.cf
enable_sasl_authentication = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_application_name = smtpd
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
check_client_access hash:$base/client_access,
reject_unknown_client_hostnamesmtpd_helo_restrictions = check_helo_access hash:$base/hello_access,
permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_helo_hostname,
reject_unknown_helo_hostnamesmtpd_sender_restrictions = reject_sender_login_mismatch, (без этого вообще игнорируется авторизация, что с ней, что без нее)
permit_mynetworks,
permit_sasl_authenticated,
check_sender_access hash:$base/sender_access,
reject_authenticated_sender_login_mismatch,
reject_unknown_sender_domain,
reject_unlisted_sender,
reject_unverified_sendersmtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
check_recipient_access hash:$base/recipient_access,
reject_unlisted_recipient,
reject_unknown_recipient_domain,
reject_unverified_recipient,smtpd_etrn_restrictions = reject
> Postfix на FreeBSD 8.1. Нужно включить SMTP авторизацию.
> Включил (Cyrus-SASL), но есть одно НО:
> Когда аутентификация не проходит нет запроса пароля, просто возвращается сообщение
> Sender address rejected: not logged in
> То есть для пользователя это выглядит так:
> Он отправляет письмо, Аутглюк говорит, что все хорошо, письмо перемещено в отправленные,
> а потом просто приходит уведомление с сообщением выше.
> Как-то можно это исправить? Нужно чтобы если вбит неправильный пароль или на
> клиенте не включена SMTP авторизация, то выдавалась ошибка или запрос пароля.Сами просмотрите все свои правила, у Вас нет ни одного жесткого режекта по SASL авторизации, везде оно является дополнительным условием, но не обязательным!!!
у меня правда через классы сделано, но вид должен быть такой:permit_sasl_authenticated, reject
вот тогда письмо не попадет в отправленные, а клиент будет говорить, что не прошла авторизация и предлагать ввести логин с паролем.
> permit_sasl_authenticated, reject
> вот тогда письмо не попадет в отправленные, а клиент будет говорить, что
> не прошла авторизация и предлагать ввести логин с паролем.Оставил только permit_sasl_authenticated, reject
Тоже самое только сообщение меняется, теперь Sender address rejected: Access denied
>> permit_sasl_authenticated, reject
>> вот тогда письмо не попадет в отправленные, а клиент будет говорить, что
>> не прошла авторизация и предлагать ввести логин с паролем.
> Оставил только permit_sasl_authenticated, reject
> Тоже самое только сообщение меняется, теперь Sender address rejected: Access deniedПокажите как теперь выглядят Ваши настройки проверки
давайте попробуем сделать так, хотя я конечно всех условий не знаю, я свой постфикс лет 5 назад как настроил, так он и работает, только версии меняются периодически:main.conf:
smtpd_client_restrictions = permit_mynetworks, check_client_access hash:$base/client_access, reject_unknown_client_hostname, permit
smtpd_helo_restrictions = check_helo_access hash:$base/hello_access, permit_mynetworks, reject_invalid_helo_hostname, reject_unknown_helo_hostname, permit
smtpd_sender_restrictions = permit_mynetworks, check_sender_access hash:$base/sender_access, reject_unknown_sender_domain, reject_unlisted_sender,
reject_unverified_sender, permitsmtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_recipient_access hash:$base/recipient_access,
reject_unlisted_recipient, reject_unknown_recipient_domain, reject_unverified_recipient, rejectsmtpd_restriction_classes = sasl
sasl = sasl = permit_sasl_authenticated, reject
и в файлы:
client_access, sender_access, recipient_access
вместо 'OK' поставьте 'sasl'
но сразу предупреждаю, в этом случае он ВОЗМОЖНО будет пароль трясти и с внешних почтовых серверов
все зависит от того, что в этих файлах
Скопипастил все, своё закомментил.
Стало вообще игнорировать аутентификацию, т.е. выключил на клиенте, а всё прошло успешно.> и в файлы:
> client_access, sender_access, recipient_access
> вместо 'OK' поставьте 'sasl'
> но сразу предупреждаю, в этом случае он ВОЗМОЖНО будет пароль трясти и
> с внешних почтовых серверов
> все зависит от того, что в этих файлахОни у меня пустые.
> Скопипастил все, своё закомментил.
> Стало вообще игнорировать аутентификацию, т.е. выключил на клиенте, а всё прошло успешно.
>> и в файлы:
>> client_access, sender_access, recipient_access
>> вместо 'OK' поставьте 'sasl'
>> но сразу предупреждаю, в этом случае он ВОЗМОЖНО будет пароль трясти и
>> с внешних почтовых серверов
>> все зависит от того, что в этих файлах
> Они у меня пустые.ну правильно, у меня то именно на основе файлов
client_access, sender_access, recipient_access
решается с кого трясти пароль, а с кого нет
а с пустыми такими файлами, ты вообще можешь получить открытый релей, со всеми вытекающимив общем, помочь не получается, нет у меня всей инфы, но попробую
распиши на jabber: sherlockСОБАЧКАmrk.mmk.ru свою топологию почтовую, свои IP адреса (клиентов) с кого пароль трясти с кого нетпопробую накидать тебе конфиг