Страница 1 из 2

SMTP аутентификация из внешнего мира

Добавлено: 2008-07-21 15:41:42
damir_madaga
Как то я по моему уже поднимал эту тему, но затрону еще раз. Суть проблемы: отправка почты из внешнего мира. У меня дома стоит Буревестник и вот что сыпется в лог когда я пытаюсь отправить письмо

Код: Выделить всё

 auth_login authenticator failed for ([10.10.1.6]) [89.105.137.169] I=[217.74.169.48]:25: 535 Incorrect authentication data 
При чем по заявлению моих коллег у кого дома винда с Оутлуком, они отправляют без проблем.

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-07-21 16:12:33
dikens3
Думаю, что если аутентификатор LOGIN нормально работает, то проблема не в exim, а в твоём почтовом клиенте.

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-07-21 17:05:23
damir_madaga
Ну вот уш не думал что Thunderbird может не нормально работать! Не уже ли ни кто его не использует для отправки писем не из локалки?

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-07-21 17:36:58
dikens3
damir_madaga писал(а):Ну вот уш не думал что Thunderbird может не нормально работать! Не уже ли ни кто его не использует для отправки писем не из локалки?
По моему он CRAM-MD5 просит. Он у меня настроен в Exim и проблем ни с одним клиентом нет.

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-07-21 18:03:36
damir_madaga
Не поверишь пока тут сидел дома пытался с разными параметрами отправить письмо положил довекот на серваке! Первый раз за год вывалился на чистую! Сижу в ауте и понимаю что там может сделать любой! Можно по подробнее про MD5 и все остальное я все делал по статье Лиса.

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-07-21 20:52:13
dikens3

Код: Выделить всё

# А так авторизуется "Летучая Мышь" - TheBat!
auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT `password` FROM \
                        `mailbox` WHERE `username` \
                        = '${quote_mysql:$auth1}'}{$value}fail}

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-09-19 21:18:12
damir_madaga
Из-за полного отсутствия времени зобил на проблему, сейчас вернулся! Вот что в логах при попытке отправить письмо

Код: Выделить всё

Sep 20 02:10:40 specsv-mail exim[71934]: auth_cram_md5 authenticator failed for ([10.10.1.6]) [89.105.137.169] I=[80.65.17.189]:25: 535 Incorrect authenticat
Sep 20 02:10:40 specsv-mail exim[71934]: auth_cram_md5 authenticator failed for ([10.10.1.6]) [89.105.137.169] I=[80.65.17.189]:25: 535 Incorrect authenticat
Sep 20 02:10:40 specsv-mail exim[71934]: auth_plain authenticator failed for ([10.10.1.6]) [89.105.137.169] I=[80.65.17.189]:25: 535 Incorrect authentication
Sep 20 02:10:40 specsv-mail exim[71934]: auth_plain authenticator failed for ([10.10.1.6]) [89.105.137.169] I=[80.65.17.189]:25: 535 Incorrect authentication
Sep 20 02:10:40 specsv-mail exim[71934]: auth_login authenticator failed for ([10.10.1.6]) [89.105.137.169] I=[80.65.17.189]:25: 535 Incorrect authentication
Sep 20 02:10:40 specsv-mail exim[71934]: auth_login authenticator failed for ([10.10.1.6]) [89.105.137.169] I=[80.65.17.189]:25: 535 Incorrect authentication
 
Вот кусок конфига, в общем то со статьи Лиса

Код: Выделить всё

#                                                                                                            
begin authenticators                                                                                                                                         
                                                                                                                                                             
auth_plain:                                                                                                                                                  
driver = plaintext                                                                                                                                           
public_name = PLAIN                                                                                                                                          
server_condition = ${lookup mysql{SELECT `username` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth2}' AND `password` = '${quote_mysql:$auth3}'}{yes}{
server_prompts = :                                                                                                                                           
server_set_id = $auth2                                                                                                                                       
                                                                                                                                                             
auth_login:                                                                                                                                                  
driver = plaintext                                                                                                                                           
public_name = LOGIN                                                                                                                                          
server_condition = ${lookup mysql{SELECT `username` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth1}' AND `password` = '${quote_mysql:$auth2}'}{yes}{
server_prompts = Username:: : Password::                                                                                                                     
server_set_id = $auth1                                                                                                                                       
                                                                                                                                                             
auth_cram_md5:                                                                                                                                               
driver = cram_md5                                                                                                                                            
public_name = CRAM-MD5                                                                                                                                       
server_secret = ${lookup mysql{SELECT `password` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth1}'}{$value}fail}                                     
server_set_id = $auth2    
Куда еще нужно посмотреть?

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-09-20 8:22:17
dikens3
Используй отладку. По одной надписи (535 Incorrect authentication) моя телепатия не работает.

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-09-20 19:42:30
damir_madaga
Как это сделать? :oops:

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-09-20 21:13:50
dikens3
Запустить exim в режиме debug'а к примеру. (exim -d+all)

Есть ещё какие-то опции для аутентификаторов, если что-то не работает (как у тебя)

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 7:28:26
damir_madaga
Так специально для этой темы поставил тестовый сервак! Точно по статье уважаемого Лисяры, вот только заморочка с шифрованием в dovecot-sql.conf, так как в статье описано у меня не заработало, поставил как в коментах

Код: Выделить всё

default_pass_scheme = MD5-CRYPT  
может в этом моя проблемка! Подскажите как правильно?

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 10:19:08
dikens3
damir_madaga писал(а):Подскажите как правильно?
Правильно так, как работает.

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 15:31:38
damir_madaga
Хорошо, связка в данный момент у меня полностью рабочая! То есть в админки ящики создаются в вебе все бегает, и клиентом я цепануться могу! Не могу только отправить письмо! Причем отправляю уже с Майкрософт ОутГлюка! Пробую запустит Exim как советовали итог:

Код: Выделить всё

Exim is a Mail Transfer Agent. It is normally called by Mail User Agents,
not directly from a shell command line. Options and/or arguments control
what it does when called. For a list of options, see the Exim documentation.
Как его правильно запустить с параметрами?

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 15:41:05
dikens3
OC какая, у меня нормально и так запускается.

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 15:52:19
damir_madaga
Все как запустить нашел! Ос FreeBSD 7.0
Для того чтоб чам не забыл

Код: Выделить всё

exim -bd -d+all


Вот что получается при попытки отправить письмо

Код: Выделить всё

19:48:17  2796 Listening...
19:50:13  2796 Connection request from 192.168.100.135 port 49232
19:50:13  2796 interface address=192.168.100.254 port=25
19:50:13  2796 search_tidyup called
19:50:13  2796 1 SMTP accept process running
19:50:13  2796 Listening...
19:50:13  2809 sender_fullhost = [192.168.100.135]
19:50:13  2809 sender_rcvhost = [192.168.100.135]
19:50:13  2809 Process 2809 is handling incoming connection from [192.168.100.135]
19:50:13  2809 checking for IP options
19:50:13  2809 no IP options found
19:50:13  2809 host in host_lookup? no (option unset)
19:50:13  2809 set_process_info:  2809 handling incoming connection from [192.168.100.135] I=[192.168.100.254]:25
19:50:13  2809 host in host_reject_connection? no (option unset)
19:50:13  2809 gethostbyname looked up these IP addresses:
19:50:13  2809   name=localhost address=127.0.0.1
19:50:13  2809 host in "localhost:127.0.0.0/8:192.168.100.0/24"? yes (matched "192.168.100.0/24")
19:50:13  2809 host in sender_unqualified_hosts? yes (matched "+relay_from_hosts")
19:50:13  2809 cached yes match for +relay_from_hosts
19:50:13  2809 host in recipient_unqualified_hosts? yes (matched "+relay_from_hosts" - cached)
19:50:13  2809 host in helo_verify_hosts? no (option unset)
19:50:13  2809 host in helo_try_verify_hosts? no (option unset)
19:50:13  2809 host in helo_accept_junk_hosts? yes (matched "192.168.100.0/24")
19:50:13  2809 expanding: $primary_hostname, ESMTP EXIM $version_number
19:50:13  2809    result: kth.ru, ESMTP EXIM 4.69
19:50:13  2809 SMTP>> 220 kth.ru, ESMTP EXIM 4.69
19:50:13  2809 Process 2809 is ready for new message
19:50:13  2809 smtp_setup_msg entered
19:50:13  2809 SMTP<< EHLO virtualxp
19:50:13  2809 virtualxp in helo_lookup_domains? no (end of list)
19:50:13  2809 sender_fullhost = (virtualxp) [192.168.100.135]
19:50:13  2809 sender_rcvhost = [192.168.100.135] (helo=virtualxp)
19:50:13  2809 set_process_info:  2809 handling incoming connection from (virtualxp) [192.168.100.135] I=[192.168.100.254]:25
19:50:13  2809 host in pipelining_advertise_hosts? yes (matched "*")
19:50:13  2809 host in auth_advertise_hosts? yes (matched "*")
19:50:13  2809 host in tls_advertise_hosts? no (option unset)
19:50:13  2809 SMTP>> 250-kth.ru Hello virtualxp [192.168.100.135]
19:50:13  2809 250-SIZE 41943040
19:50:13  2809 250-PIPELINING
19:50:13  2809 250-AUTH PLAIN LOGIN CRAM-MD5
19:50:13  2809 250 HELP
19:50:13  2809 SMTP<< AUTH LOGIN
19:50:13  2809 SMTP>> 334 VXNlcm5hbWU6
19:50:13  2809 SMTP<< c3VwcG9ydEBrdGgucnU=
19:50:13  2809 SMTP>> 334 UGFzc3dvcmQ6
19:50:13  2809 SMTP<< MjM3NTEx
19:50:13  2809 auth_login authenticator:
19:50:13  2809   $auth1 = support@kth.ru
19:50:13  2809   $auth2 = 237511
19:50:13  2809   $1 = support@kth.ru
19:50:13  2809   $2 = 237511
19:50:13  2809 expanding: $auth1
19:50:13  2809    result: support@kth.ru
19:50:13  2809 expanding: $auth2
19:50:13  2809    result: 237511
19:50:13  2809 expanding: SELECT `username` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth1}' AND `password` = '${quote_mysql:$auth2}'
19:50:13  2809    result: SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'
19:50:13  2809 search_open: mysql "NULL"
19:50:13  2809 search_find: file="NULL"
19:50:13  2809   key="SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'" partial=-1 affix=NULL starflags=0
19:50:13  2809 LRU list:
19:50:13  2809 internal_search_find: file="NULL"
19:50:13  2809   type=mysql key="SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'"
19:50:13  2809 database lookup required for SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'
19:50:13  2809 MySQL query: SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'
19:50:13  2809 MYSQL new connection: host=localhost port=0 socket=NULL database=exim user=exim
19:50:13  2809 MYSQL: no data found
19:50:13  2809 lookup failed
19:50:13  2809 expanding: yes
19:50:13  2809    result: yes
19:50:13  2809 skipping: result is not used
19:50:13  2809 expanding: no
19:50:13  2809    result: no
19:50:13  2809 expanding: ${lookup mysql{SELECT `username` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth1}' AND `password` = '${quote_mysql:$auth2}'}{yes}{no}}
19:50:13  2809    result: no
19:50:13  2809 expanded string: no
19:50:13  2809 expanding: $auth1
19:50:13  2809    result: support@kth.ru
19:50:13  2809 SMTP>> 535 Incorrect authentication data
19:50:13  2809 LOG: MAIN REJECT
19:50:13  2809   auth_login authenticator failed for (virtualxp) [192.168.100.135] I=[192.168.100.254]:25: 535 Incorrect authentication data (set_id=support@kth.ru)
19:50:13  2809 SMTP>> 421 kth.ru lost input connection
19:50:13  2809 LOG: smtp_connection MAIN
19:50:13  2809   SMTP connection from (virtualxp) [192.168.100.135] I=[192.168.100.254]:25 lost
19:50:13  2809 search_tidyup called
19:50:13  2809 close MYSQL connection: localhost/exim/exim
19:50:13  2796 child 2809 ended: status=0x100
19:50:13  2796 0 SMTP accept processes now running
19:50:13  2796 Listening

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 17:03:15
dikens3
Ну зайди в mysql и набери строку:
SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'
А потом думай почему она ничего не возвращает?

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 18:52:32
damir_madaga
МММ Туплю не могу понять в чем засада!

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 18:53:54
damir_madaga
Есть педположение что из-за того что пароль в открытом виде? Но сомневаюсь!

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-20 21:14:41
dikens3
посмотри (или мне покажи) как выглядит запись у тебя. Есть ли там вообще записи?

Код: Выделить всё

SELECT * FROM mailbox LIMIT 1

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-21 3:00:46
damir_madaga
Нет такой записи вообще в конфигурационном файле Exima

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-21 5:40:56
damir_madaga
Все же мне кажется что проблемка в шифровании пароле.
Сделал следующее. Прямо в базе MySQL заменил кеш пароля на открытый, т.е. просто прописал его туда, соответственно сразу же перестал работать pop3! Подскажите как это все победить!

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-21 5:51:03
damir_madaga
Да мое предположение подтвердилось! Если везде поправить на PLAIN то все начинает замечательно работать! Только вот все это добро теперь в открытом виде! Соответственно два вопроса: на сколько это безопастно, и работает ли у кого нибудь с шифрованием?

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-21 9:26:16
dikens3
Интересный у нас разговор:
damir_madaga писал(а):Вот что получается при попытки отправить письмо
...
...
19:50:13 2809 SMTP<< AUTH LOGIN
19:50:13 2809 SMTP>> 334 VXNlcm5hbWU6
19:50:13 2809 SMTP<< c3VwcG9ydEBrdGgucnU=
19:50:13 2809 SMTP>> 334 UGFzc3dvcmQ6
19:50:13 2809 SMTP<< MjM3NTEx
19:50:13 2809 auth_login authenticator:
19:50:13 2809 $auth1 = support@kth.ru
19:50:13 2809 $auth2 = 237511
19:50:13 2809 $1 = support@kth.ru
19:50:13 2809 $2 = 237511
19:50:13 2809 expanding: $auth1
19:50:13 2809 result: support@kth.ru
19:50:13 2809 expanding: $auth2
19:50:13 2809 result: 237511
19:50:13 2809 expanding: SELECT `username` FROM `mailbox` WHERE `username` = '${quote_mysql:$auth1}' AND `password` = '${quote_mysql:$auth2}'
19:50:13 2809 result: SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'
19:50:13 2809 search_open: mysql "NULL"
19:50:13 2809 search_find: file="NULL"
19:50:13 2809 key="SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'" partial=-1 affix=NULL starflags=0
19:50:13 2809 LRU list:
19:50:13 2809 internal_search_find: file="NULL"
19:50:13 2809 type=mysql key="SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'"
19:50:13 2809 database lookup required for SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'
19:50:13 2809 MySQL query: SELECT `username` FROM `mailbox` WHERE `username` = 'support@kth.ru' AND `password` = '237511'
19:50:13 2809 MYSQL new connection: host=localhost port=0 socket=NULL database=exim user=exim
19:50:13 2809 MYSQL: no data found
19:50:13 2809 lookup failed
...
...
dikens3 писал(а):посмотри (или мне покажи) как выглядит запись у тебя. Есть ли там вообще записи?

Код: Выделить всё

SELECT * FROM mailbox LIMIT 1
damir_madaga писал(а):Нет такой записи вообще в конфигурационном файле Exima
P.S. Если Вам ещё неизвестно что такое mysql, то вам рано лезть в настройку exim + mysql. Даже если это заработает.

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-21 10:03:35
damir_madaga
Если сидеть и ничего не делать то конечно уже будет поздно!
А на запрос

Код: Выделить всё

SELECT * FROM mailbox LIMIT 1
MySQL ни чего не возвращает!

Re: SMTP аутентификация из внешнего мира

Добавлено: 2008-11-21 10:08:49
ProFTP

Код: Выделить всё

        INSERT INTO mailbox (username,password,name,maildir,quota,domain,created,modified,active) 
              VALUES ('','','','','','',NOW(),NOW(),'')