The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Exim и CRAM-MD5"
Отправлено stas_v, 13-Сен-06 11:08 
>>acl_smtp_rcpt = acl_check_rcpt
>>
>>acl_check_rcpt:
>>   .....
>>  accept authenticated = *
>>   ....
>>  deny message = relay not permitted
>
>
>Понимаешь, я так и сделал как ты сказал, у меня так впринципе
>и было.
>
>Вот только в чём беда - если логин и пароль правильные, то
>в логах того же TheBat пишет "всё ок" и посылает письмо,
>но если неправильные - пишет "неправильно бла бла бла" но далее
>посылает письмо аргументируя это тем, что "не найдено других протоколов аутентификации".
>
>
>То есть он пробует CRAM-MD5, который вываливается к примеру по неправильному логину
>и паролю и пытается попробывать другой метод аутентификации - не находит
>- и посылает письмо.
>
>в логах exim'a (развёрнутых) такое:
>
>1) SMTP connection from [client]:3748 I=[my_server]:465 (TCP/IP connection count = 1)
>2) auth_cram_md5 authenticator failed for client [client]:3748 Incorrect authentication
>3) auth_login authenticator failed for client [client]:3748 Incorrect authentication
>4) 1GNDGb-000CA7-6l <= admin@my_server H=client[client]:3748
>5) cwd=/var/spool/mqueue 3 args: /usr/local/exim/bin/exim -Mc 1GNDGb-000CA7-6l
>6) 1GNDGb-000CA7-6l => constantine.a.yarovoy@gmail.com F=<admin@my_server>
>7) 1GNDGb-000CA7-6l Completed QT=1s
>
>я тут посокращал, заменил мой IP на my_server, а клиента, отправлявшего message:
>client.
>
>То есть проблемы в аутентификаторов нет, они работают надёжно, но после проверки
>и неудачных логина и пароля он не даёт клиенту болта.
>
>Что предложите?

acl_check_rcpt должен заканчиваться на deny - для того, чтобы неавторизованные соединения не могли отправить сообщения.

У Вас же, похоже, получается, что ACL отрабатывает ACCEPT'ом всегда. В общем - смотреть внимательно логику ACL. Болт должен исходить оттуда :)

А с зарезанием портов есть три варианта:
1. Зарезать с отправкой ICMP port unreachable (проще, но геморройней для пользователя, тем более, что вы ISP.)
2. написать в том же acl_check_rcpt повыше какой-нибудь ACL c condition с проверкой на $interface_port - и выдавать какое-нибудь членораздельное сообщение.
3. Самый, видимо, правильный, вариант. Кроме SSL есть ещё и TLS. Это когда соединение устанавливается на 25-й порт, а потом включается шифрование. А потом в ACL проверять - включено шифрование или нет. Тоже кондишном на наличие переменной $tls_cipher

Кроме того. Если вы разрешаете только шифрованные соединения - то нет смысла париться с CRAM'ами, DIGEST'ами и NTLM'ами. Достаточно PLAINTEXT и LOGIN. Это будет проще для Вас и пользователей и позволит Вам впоследствии хранить пароли в зашифрованном виде или вообще авторизовывать через PAM/Radius/что захотите.

Вот, как-то так :)
Удачи!

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру