траблы с авторизацией в exim'e на отправку

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Stranger
рядовой
Сообщения: 16
Зарегистрирован: 2007-08-06 23:46:32

траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Stranger » 2008-08-31 20:29:51

Приветствую.
Настраивал вот по этому конфигу http://www.lissyara.su/?id=1148.
На прием и получение все ок. письма с mail.ru ходят без проблем.
А с отправкой какие то траблы:

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

2008-08-31 20:59:27 auth_cram_md5 authenticator failed for ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[mailservip]:25: 535 Incorrect authentication data (set_id=admin4@testmail.xxx.ru)
2008-08-31 20:59:27 auth_plain authenticator failed for ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[mailservip]:25: 535 Incorrect authentication data (set_id=admin4@testmail.xxx.ru)
2008-08-31 20:59:27 auth_login authenticator failed for ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[mailservip]:25: 535 Incorrect authentication data (set_id=admin4@testmail.xxx.ru)
2008-08-31 20:59:37 H=ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[mailservip]:25 F=<admin2@testmail.xxx.ru> rejected RCPT <testmail@mail.ru>: "Ups.. Open Relay = Bad Relay"
пробовал разные алгоритмы шифрование в dbmail но безрезультатно, из клиентов тестировал на M$ outlook'e и TheBat - абсолютно одинаковые ошибки...

вот конфиг экзима:

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

primary_hostname = testmail.xxx.ru

hide mysql_servers = localhost/dbmail/dbmail/DBMAIL

domainlist local_domains = ${lookup mysql{SELECT `domainname` FROM `domains` WHERE `domainname`='${domain}' AND (`type`='LOCAL' OR `type`='VIRTUAL')}}

domainlist relay_to_domains = ${lookup mysql{SELECT `domainname` FROM `domains` WHERE `domainname`='${domain}' AND `type`='RELAY'}}

hostlist   relay_from_hosts = localhost:127.0.0.1/8


acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
av_scanner = clamd:/var/run/clamav/clamd.sock


qualify_domain = testmail.xxx.ru
exim_user = mailnull
exim_group = mail
never_users = root

host_lookup = *
rfc1413_query_timeout = 0s
sender_unqualified_hosts = +relay_from_hosts
recipient_unqualified_hosts = +relay_from_hosts
ignore_bounce_errors_after = 60m
timeout_frozen_after = 14d

auto_thaw = 1h
smtp_accept_max = 250
smtp_accept_max_per_connection = 50
smtp_connect_backlog = 50
smtp_accept_max_per_host = 500

split_spool_directory = true
remote_max_parallel = 10
return_size_limit = 50k
message_size_limit = 20M
helo_allow_chars = _
smtp_enforce_sync = true
log_selector = \
+all_parents \
+connection_reject \
+incoming_interface \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error \
+queue_run
syslog_timestamp = no



begin acl
acl_check_rcpt:
  accept  hosts = :

  deny    message       = "Bad Symbols"
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]
  deny    message       = "Bad Symbols..."
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./

  accept  local_parts   = postmaster
          domains       = +local_domains

  require verify        = sender

  deny    message       = "HELO/EHLO must be like in SMTP RFC"
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}

  accept  authenticated = *

  deny    message       = "Dont write your ip in your HELO!"
          # все хосты кроме тех, что в relay_from_hosts
          hosts         =  * : !+relay_from_hosts
          condition     = ${if eq{$sender_helo_name}{$sender_host_address} \
                          {true}{false}}

  deny    condition     = ${if eq{$sender_helo_name}{$interface_address}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "This ip address is mine"
  warn
        set acl_m0 = 10s
  warn
        hosts = +relay_from_hosts : 12.34.56.0/24
        set acl_m0 = 0s
  warn
        logwrite = Delay $acl_m0 for $sender_host_name \
[$sender_host_address] with HELO=$sender_helo_name. Mail \
from $sender_address to $local_part@$domain.
        delay = $acl_m0

  accept  domains       = +local_domains
          endpass
          message       = "Are you sure?"
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = "I dont know route to this host... really"
          verify        = recipient


  accept  hosts         = +relay_from_hosts

  deny    message       = "Ups.. Open Relay = Bad Relay"




acl_check_data:
  deny malware = *
  message = "В письме вирус - $malware_name"
  accept


begin routers
dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

dbmailuser:
  driver = accept
  condition = ${lookup mysql{SELECT `alias_idnr` FROM \
  `dbmail_aliases` WHERE \
  `alias`='${quote_mysql:$local_part@$domain}' OR \
  `alias`='${quote_mysql:@$domain}'}{yes}{no}}
  transport = dbmail_delivery



begin transports

  driver = smtp


dbmail_delivery:
  driver = pipe
  check_string =
  command = /usr/local/sbin/dbmail-smtp -d ${pipe_addresses}
  group = mail
  message_prefix = ""
  message_suffix = ""
  path="/bin:/sbin:/usr/local/bin:/usr/local/sbin"

address_pipe:
  driver = pipe
  return_output


address_reply:
  driver = autoreply




begin retry

*                    *       F,2h,15m; G,16h,1h,1.5; F,4d,6h

begin rewrite

begin authenticators

auth_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}' AND `passwd` = '${quote_mysql:$2}'}{yes}{no}}
  server_prompts = :
  server_set_id = $2


auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup mysql{SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}' AND `passwd` = '${quote_mysql:$2}'}{yes}{no}}
  server_prompts = Username:: : Password::
  server_set_id = $1


auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT `passwd` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}'}{$value}fail}
  server_set_id = $1

Помогите, плз, кто чем может )

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение dikens3 » 2008-08-31 20:41:25

auth_plain authenticator failed
auth_login authenticator failed
auth_cram_md5 authenticator failed
begin authenticators

auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}' AND `passwd` = '${quote_mysql:$2}'}{yes}{no}}
server_prompts = :
server_set_id = $2


auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup mysql{SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}' AND `passwd` = '${quote_mysql:$2}'}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $1


auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT `passwd` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}'}{$value}fail}
server_set_id = $1
Вот тут у тебя проблемы.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Stranger
рядовой
Сообщения: 16
Зарегистрирован: 2007-08-06 23:46:32

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Stranger » 2008-08-31 20:49:36

Да это я понимаю, но если выполняю такой же запрос в базу ручками, то он мне выдает пасс.
Как протестировать чтобы понять в чем трабл, пытался экзим с ключом -d запустить, но что-то не срослось :(

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение dikens3 » 2008-08-31 21:42:49

Stranger писал(а):Как протестировать чтобы понять в чем трабл, пытался экзим с ключом -d запустить, но что-то не срослось :(
exim -d+all
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Stranger
рядовой
Сообщения: 16
Зарегистрирован: 2007-08-06 23:46:32

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Stranger » 2008-08-31 23:06:38

Вообщем вот дебаг, к сожалению чего то не вижу конкретного места где бы сравнивались пассворды.... кстати а может быть дело в dbmail'e ?

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

46768 Listening...
46770 sender_fullhost = [12.34.56.78]
46770 sender_rcvhost = [12.34.56.78]
46770 Process 46770 is handling incoming connection from [12.34.56.78]
46770 checking for IP options
46770 no IP options found
46770 host in host_lookup? yes (matched "*")
46770 looking up host name for 12.34.56.78
46770 DNS lookup of 78.56.34.12.in-addr.arpa (PTR) succeeded
46770 IP address lookup yielded ppp12-34-56-78.pppoe.avangarddsl.ru
46770 gethostbyname looked up these IP addresses:
46770   name=ppp12-34-56-78.pppoe.avangarddsl.ru address=12.34.56.78
46770 checking addresses for ppp12-34-56-78.pppoe.avangarddsl.ru
46770   12.34.56.78 OK
46770 sender_fullhost = ppp12-34-56-78.pppoe.avangarddsl.ru [12.34.56.78]
46770 sender_rcvhost = ppp12-34-56-78.pppoe.avangarddsl.ru ([12.34.56.78])
46770 set_process_info: 46770 handling incoming connection from ppp12-34-56-78.pppoe.avangarddsl.ru [12.34.56.78] I=[88.88.88.88]:25
46770 host in host_reject_connection? no (option unset)
46770 gethostbyname looked up these IP addresses:
46770   name=localhost address=127.0.0.1
46770 host in "localhost:127.0.0.1/8"? no (end of list)
46770 host in sender_unqualified_hosts? no (end of list)
46770 cached no match for +relay_from_hosts
46770 host in recipient_unqualified_hosts? no (end of list)
46770 host in helo_verify_hosts? no (option unset)
46770 host in helo_try_verify_hosts? no (option unset)
46770 host in helo_accept_junk_hosts? no (option unset)
46770 SMTP>> 220 testmail.xxx.ru ESMTP Exim 4.69 Sun, 31 Aug 2008 23:58:34 +0300
46770 Process 46770 is ready for new message
46770 smtp_setup_msg entered
46770 SMTP<< EHLO stranger-f8sn.blablabla.ru
46770 sender_fullhost = ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78]
46770 sender_rcvhost = ppp12-34-56-78.pppoe.avangarddsl.ru ([12.34.56.78] helo=stranger-f8sn.blablabla.ru)
46770 set_process_info: 46770 handling incoming connection from ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[88.88.88.88]:25
46770 host in pipelining_advertise_hosts? yes (matched "*")
46770 host in auth_advertise_hosts? yes (matched "*")
46770 host in tls_advertise_hosts? no (option unset)
46770 SMTP>> 250-testmail.xxx.ru Hello ppp12-34-56-78.pppoe.avangarddsl.ru [12.34.56.78]
46770 250-SIZE 25165824
46770 250-PIPELINING
46770 250-AUTH PLAIN LOGIN CRAM-MD5
46770 250 HELP
46770 SMTP<< AUTH CRAM-MD5
46770 SMTP>> 334 PDQ2NzcwLjEyMjAyMTYzMTRAdGVzdG1haWwuY21rLnJ1Pg==
46770 SMTP<< c3RyYW5nZXJAdGVzdG1haWwuY21rLnJ1IDJhNWY1YzM5YWMzZTc3MDlmZTk0NjBlNWMyZmExMjI0
46770 search_open: mysql "NULL"
46770 search_find: file="NULL"
46770   key="SELECT `passwd` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru'" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `passwd` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru'"
46770 database lookup required for SELECT `passwd` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru'
46770 MySQL query: SELECT `passwd` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru'
46770 MYSQL new connection: host=localhost port=0 socket=NULL database=dbmail user=dbmail
46770 lookup yielded: $1$uhrjX/dS$2dbSur/FjZhFVvUnln9Ql1
46770 CRAM-MD5: user name = stranger@testmail.xxx.ru
46770           challenge = <46770.1220216314@testmail.xxx.ru>
46770           received  = 2a5f5c39ac3e7709fe9460e5c2fa1224
46770           digest    = 224f02d2fb301c91ce3dfa7776ee2a24
46770 SMTP>> 535 Incorrect authentication data
46770 LOG: MAIN REJECT
46770   auth_cram_md5 authenticator failed for ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[88.88.88.88]:25: 535 Incorrect authentication data (set_id=stranger@testmail.xxx.ru)
46770 SMTP<< AUTH PLAIN
46770 host in smtp_accept_max_nonmail_hosts? yes (matched "*")
46770 SMTP>> 334
46770 SMTP<< AHN0cmFuZ2VyQHRlc3RtYWlsLmNtay5ydQBhMTZWMDFwOTdhbHBoYQ==
46770 auth_plain authenticator:
46770   $auth1 =
46770   $auth2 = stranger@testmail.xxx.ru
46770   $auth3 = megapassword
46770   $1 =
46770   $2 = stranger@testmail.xxx.ru
46770   $3 = megapassword
46770 search_open: mysql "NULL"
46770   cached open
46770 search_find: file="NULL"
46770   key="SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '' AND `passwd` = 'stranger@testmail.xxx.ru'" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '' AND `passwd` = 'stranger@testmail.xxx.ru'"
46770 database lookup required for SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '' AND `passwd` = 'stranger@testmail.xxx.ru'
46770 MySQL query: SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '' AND `passwd` = 'stranger@testmail.xxx.ru'
46770 MYSQL using cached connection for localhost/dbmail/dbmail
46770 MYSQL: no data found
46770 lookup failed
46770 expanded string: no
46770 SMTP>> 535 Incorrect authentication data
46770 LOG: MAIN REJECT
46770   auth_plain authenticator failed for ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[88.88.88.88]:25: 535 Incorrect authentication data (set_id=stranger@testmail.xxx.ru)
46770 SMTP<< RSET
46770 SMTP>> 250 Reset OK
46770 SMTP<< AUTH LOGIN
46770 SMTP>> 334 VXNlcm5hbWU6
46770 SMTP<< c3RyYW5nZXJAdGVzdG1haWwuY21rLnJ1
46770 SMTP>> 334 UGFzc3dvcmQ6
46770 SMTP<< YTE2VjAxcDk3YWxwaGE=
46770 auth_login authenticator:
46770   $auth1 = stranger@testmail.xxx.ru
46770   $auth2 = megapassword
46770   $1 = stranger@testmail.xxx.ru
46770   $2 = megapassword
46770 search_open: mysql "NULL"
46770   cached open
46770 search_find: file="NULL"
46770   key="SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru' AND `passwd` = 'megapassword'" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru' AND `passwd` = 'megapassword'"
46770 database lookup required for SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru' AND `passwd` = 'megapassword'
46770 MySQL query: SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru' AND `passwd` = 'megapassword'
46770 MYSQL using cached connection for localhost/dbmail/dbmail
46770 MYSQL: no data found
46770 lookup failed
46770 expanded string: no
46770 SMTP>> 535 Incorrect authentication data
46770 LOG: MAIN REJECT
46770   auth_login authenticator failed for ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[88.88.88.88]:25: 535 Incorrect authentication data (set_id=stranger@testmail.xxx.ru)
46770 SMTP<< RSET
46770 SMTP>> 250 Reset OK
46770 SMTP<< MAIL FROM:<admin2@testmail.xxx.ru> SIZE=473
46770 spool directory space = 140030176K inodes = 19669784 check_space = 0K inodes = 0 msg_size = 5473
46770 SMTP>> 250 OK
46770 SMTP<< RCPT TO:<super-email@mail.ru>
46770 using ACL "acl_check_rcpt"
46770 processing "accept"
46770 check hosts = :
46770 host in ":"? no (end of list)
46770 accept: condition test failed
46770 processing "deny"
46770 check domains = +local_domains
46770 search_open: mysql "NULL"
46770   cached open
46770 search_find: file="NULL"
46770   key="SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')"
46770 database lookup required for SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')
46770 MySQL query: SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')
46770 MYSQL using cached connection for localhost/dbmail/dbmail
46770 MYSQL: no data found
46770 lookup failed
46770 mail.ru in ""? no (end of list)
46770 mail.ru in "+local_domains"? no (end of list)
46770 deny: condition test failed
46770 processing "deny"
46770 check domains = !+local_domains
46770 search_open: mysql "NULL"
46770   cached open
46770 search_find: file="NULL"
46770   key="SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')"
46770 cached data used for lookup of SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')
46770 lookup failed
46770 mail.ru in ""? no (end of list)
46770 mail.ru in "!+local_domains"? yes (end of list)
46770 check local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
46770 8288448 in "^[./|] : ^.*[@%!] : ^.*/\.\./"? no (end of list)
46770 deny: condition test failed
46770 processing "accept"
46770 check local_parts = postmaster
46770 8288448 in "postmaster"? no (end of list)
46770 accept: condition test failed
46770 processing "require"
46770 check verify = sender
46770 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
46770 Verifying admin2@testmail.xxx.ru
46770 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
46770 Considering admin2@testmail.xxx.ru
46770 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
46770 routing admin2@testmail.xxx.ru
46770 --------> dnslookup router <--------
46770 local_part=admin2 domain=testmail.xxx.ru
46770 checking domains
46770 search_open: mysql "NULL"
46770   cached open
46770 search_find: file="NULL"
46770   key="SELECT `domainname` FROM `domains` WHERE `domainname`='testmail.xxx.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `domainname` FROM `domains` WHERE `domainname`='testmail.xxx.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')"
46770 database lookup required for SELECT `domainname` FROM `domains` WHERE `domainname`='testmail.xxx.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')
46770 MySQL query: SELECT `domainname` FROM `domains` WHERE `domainname`='testmail.xxx.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')
46770 MYSQL using cached connection for localhost/dbmail/dbmail
46770 lookup yielded: testmail.xxx.ru
46770 testmail.xxx.ru in "testmail.xxx.ru"? yes (matched "testmail.xxx.ru")
46770 testmail.xxx.ru in "! +local_domains"? no (matched "! +local_domains")
46770 dnslookup router skipped: domains mismatch
46770 --------> dbmailuser router <--------
46770 local_part=admin2 domain=testmail.xxx.ru
46770 checking "condition"
46770 search_open: mysql "NULL"
46770   cached open
46770 search_find: file="NULL"
46770   key="SELECT `alias_idnr` FROM `dbmail_aliases` WHERE `alias`='admin2@testmail.xxx.ru' OR `alias`='@testmail.xxx.ru'" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `alias_idnr` FROM `dbmail_aliases` WHERE `alias`='admin2@testmail.xxx.ru' OR `alias`='@testmail.xxx.ru'"
46770 database lookup required for SELECT `alias_idnr` FROM `dbmail_aliases` WHERE `alias`='admin2@testmail.xxx.ru' OR `alias`='@testmail.xxx.ru'
46770 MySQL query: SELECT `alias_idnr` FROM `dbmail_aliases` WHERE `alias`='admin2@testmail.xxx.ru' OR `alias`='@testmail.xxx.ru'
46770 MYSQL using cached connection for localhost/dbmail/dbmail
46770 lookup yielded: 2
46770 calling dbmailuser router
46770 dbmailuser router called for admin2@testmail.xxx.ru
46770   domain = testmail.xxx.ru
46770 set transport dbmail_delivery
46770 queued for dbmail_delivery transport: local_part = admin2
46770 domain = testmail.xxx.ru
46770   errors_to=NULL
46770   domain_data=NULL localpart_data=NULL
46770 routed by dbmailuser router
46770   envelope to: admin2@testmail.xxx.ru
46770   transport: dbmail_delivery
46770 ----------- end verify ------------
46770 sender admin2@testmail.xxx.ru verified ok
46770 require: condition test succeeded
46770 processing "deny"
46770 check condition = ${if eq{$sender_helo_name}{}{yes}{no}}
46770                 = no
46770 deny: condition test failed
46770 processing "accept"
46770 check authenticated = *
46770 accept: condition test failed
46770 processing "deny"
46770 check hosts = * : !+relay_from_hosts
46770 host in "* : !+relay_from_hosts"? yes (matched "*")
46770 check condition = ${if eq{$sender_helo_name}{$sender_host_address} {true}{false}}
46770                 = false
46770 deny: condition test failed
46770 processing "deny"
46770 check condition = ${if eq{$sender_helo_name}{$interface_address}{yes}{no}}
46770                 = no
46770 deny: condition test failed
46770 processing "warn"
46770 check set acl_m0 = 10s
46770 warn: condition test succeeded
46770 processing "warn"
46770 check hosts = +relay_from_hosts : 195.182.132.0/24
46770 cached no match for +relay_from_hosts
46770 cached lookup data = NULL
46770 host in "+relay_from_hosts : 195.182.132.0/24"? no (end of list)
46770 warn: condition test failed
46770 processing "warn"
46770 check logwrite = Delay $acl_m0 for $sender_host_name [$sender_host_address] with HELO=$sender_helo_name. Mail from $sender_address to $local_part@$domain.
46770                = Delay 10s for ppp12-34-56-78.pppoe.avangarddsl.ru [12.34.56.78] with HELO=stranger-f8sn.blablabla.ru. Mail from admin2@testmail.xxx.ru to super-email@mail.ru.
46770 LOG: MAIN
46770   Delay 10s for ppp12-34-56-78.pppoe.avangarddsl.ru [12.34.56.78] with HELO=stranger-f8sn.blablabla.ru. Mail from admin2@testmail.xxx.ru to super-email@mail.ru.
46770 check delay = $acl_m0
46770             = 10s
46770 delay modifier requests 10-second delay
46770 warn: condition test succeeded
46770 processing "accept"
46770 check domains = +local_domains
46770 search_open: mysql "NULL"
46770   cached open
46770 search_find: file="NULL"
46770   key="SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')"
46770 cached data used for lookup of SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND (`type`='LOCAL' OR `type`='VIRTUAL')
46770 lookup failed
46770 mail.ru in ""? no (end of list)
46770 mail.ru in "+local_domains"? no (end of list)
46770 accept: condition test failed
46770 processing "accept"
46770 check domains = +relay_to_domains
46770 search_open: mysql "NULL"
46770   cached open
46770 search_find: file="NULL"
46770   key="SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND `type`='RELAY'" partial=-1 affix=NULL starflags=0
46770 LRU list:
46770 internal_search_find: file="NULL"
46770   type=mysql key="SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND `type`='RELAY'"
46770 database lookup required for SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND `type`='RELAY'
46770 MySQL query: SELECT `domainname` FROM `domains` WHERE `domainname`='mail.ru' AND `type`='RELAY'
46770 MYSQL using cached connection for localhost/dbmail/dbmail
46770 MYSQL: no data found
46770 lookup failed
46770 mail.ru in ""? no (end of list)
46770 mail.ru in "+relay_to_domains"? no (end of list)
46770 accept: condition test failed
46770 processing "accept"
46770 check hosts = +relay_from_hosts
46770 cached no match for +relay_from_hosts
46770 cached lookup data = NULL
46770 host in "+relay_from_hosts"? no (end of list)
46770 accept: condition test failed
46770 processing "deny"
46770 deny: condition test succeeded
46770 SMTP>> 550 "Ups.. Open Relay = Bad Relay"
46770 LOG: MAIN REJECT
46770   H=ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[88.88.88.88]:25 F=<admin2@testmail.xxx.ru> rejected RCPT <super-email@mail.ru>: "Ups.. Open Relay = Bad Relay"
46770 SMTP<< RSET
46770 SMTP>> 250 Reset OK
46770 SMTP<< RSET
46770 SMTP>> 250 Reset OK
46770 SMTP<< QUIT
46770 SMTP>> 221 testmail.xxx.ru closing connection
46770 LOG: smtp_connection MAIN
46770   SMTP connection from ppp12-34-56-78.pppoe.avangarddsl.ru (stranger-f8sn.blablabla.ru) [12.34.56.78] I=[88.88.88.88]:25 closed by QUIT
46770 search_tidyup called
46770 close MYSQL connection: localhost/dbmail/dbmail
46768 child 46770 ended: status=0x0
46768 0 SMTP accept processes now running


Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение dikens3 » 2008-09-01 10:34:34

46770 SMTP<< AUTH PLAIN
46770 host in smtp_accept_max_nonmail_hosts? yes (matched "*")
46770 SMTP>> 334
46770 SMTP<< AHN0cmFuZ2VyQHRlc3RtYWlsLmNtay5ydQBhMTZWMDFwOTdhbHBoYQ==
46770 auth_plain authenticator:
46770 $auth1 =
46770 $auth2 = stranger@testmail.xxx.ru
46770 $auth3 = megapassword
Здесь очевидно, что в $2($auth2) содержится login, а $3 - пароль.

Твой SQL запрос неверный и должен быть изменён.
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$2}' AND `passwd` = '${quote_mysql:$3}'}{yes}{no}}
server_prompts = :
server_set_id = $2
Аутентификация LOGIN не работает по неизвестным причинам. (Нужна одна запись из базы mysql)
46770 MySQL query: SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = 'stranger@testmail.xxx.ru' AND `passwd` = 'megapassword'
46770 MYSQL: no data found
Пароли в базе должны быть в открытом виде.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Stranger
рядовой
Сообщения: 16
Зарегистрирован: 2007-08-06 23:46:32

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Stranger » 2008-09-01 12:39:49

Спасибо, пофиксил.
По поводу открытых паролей дело в том, что по сути установка этого сервера это решение проблемы описанной в топике http://forum.lissyara.su/viewtopic.php?f=20&t=10551.
Вкратце перенос из сендмаила с системными юзверями, в новую систему где все будет хранится в БД.
Соответсвенно открытых паролей быть к сожалению не может.
Насколько я понял dbmail абсолютно адекватно обрабатывает такие виды паролей, а вот экзим чего то не хочет.
Подскажите плиз как можно обучить экзим работать с такими типами паролей

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

$1$Lkfi6YvO$A4mjxGFvS7CuhjJ96ymjo0

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Alex Keda » 2008-09-01 18:59:43

процедурой на перле например
Убей их всех! Бог потом рассортирует...

Stranger
рядовой
Сообщения: 16
Зарегистрирован: 2007-08-06 23:46:32

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Stranger » 2008-09-01 19:03:48

не вопрос напишу, вот только как и куда её вставить ? :)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Alex Keda » 2008-09-01 19:13:39

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

sub smtpauth
{
        $username       = Exim::expand_string('$1');
        $password       = Exim::expand_string('$2');
        $extra          = Exim::expand_string('$3');
        $domain         = "";
        $unixuser       = 1;

        #check for netscape that offsets the login/pass by one
        if ($username eq "" && length($extra) > 0)
        {
                $username = $password;
                $password = $extra;
        }

        if ($username =~ /\@/)
        {
                $unixuser = 0;
                ($username,$domain) = split(/\@/, $username);
                if ($domain eq "") { return "no"; }
        }

        if ($unixuser == 1)
        {
                #the username passed doesn't have a domain, so its a system account
                $homepath = (getpwnam($username))[7];
                if ($homepath eq "") { return 0; }
                open(PASSFILE, "< $homepath/.shadow") || return "no";
                $crypted_pass = <PASSFILE>;
                close PASSFILE;

                if ($crypted_pass eq crypt($password, $crypted_pass)) { return "yes"; }
                else { return "no"; }
        }
        else
        {
                #the username contain a domain, which is now in $domain.
                #this is a pure virtual pop account.

                open(PASSFILE, "< /etc/virtual/$domain/passwd") || return "no";
                while (<PASSFILE>)
                {
                        ($test_user,$test_pass) = split(/:/,$_);
                        $test_pass =~ s/\n//g; #snip out the newline at the end
                        if ($test_user eq $username)
                        {
                                if ($test_pass eq crypt($password, $test_pass))
                                {
                                        close PASSFILE;
                                        return "yes";
                                }
                        }
                }
                close PASSFILE;
                return "no";
        }

        return "no";
}
это из директадмина
Убей их всех! Бог потом рассортирует...

Stranger
рядовой
Сообщения: 16
Зарегистрирован: 2007-08-06 23:46:32

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Stranger » 2008-09-01 21:32:27

Thx конечно, но где найти пример синтаксиса для того варианта:
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}' AND `passwd` = '${quote_mysql:</usr/local/etc/exim/crypt_password.pl $2>}'}{yes}{no}}
server_prompts = :
server_set_id = $2


auth_login:
driver = plaintext
public_name = LOGIN
server_condition = ${lookup mysql{SELECT `user_idnr` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}' AND `passwd` = '${quote_mysql: </usr/local/etc/exim/crypt_password.pl $2>}'}{yes}{no}}
server_prompts = Username:: : Password::
server_set_id = $1


auth_cram_md5:
driver = cram_md5
public_name = CRAM-MD5
server_secret = </usr/local/etc/exim/crypt_password.pl ${lookup mysql{SELECT `passwd` FROM `dbmail_users` WHERE `userid` = '${quote_mysql:$1}'}{$value}fail}>
server_set_id = $1

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: траблы с авторизацией в exim'e на отправку

Непрочитанное сообщение Alex Keda » 2008-09-01 21:55:06

в документации разумеется.
======
в экзиме перл встроенный, вызывается один раз на запуске, в дальнейшем идёт обращение непосредственно к процедуре по имени.

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

perl_startup = do '/usr/local/etc/exim/exim.pl'
в главной, и в аутентификаторах

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

begin authenticators

plain:
    driver = plaintext
    public_name = PLAIN
    server_condition = "${perl{smtpauth}}"
    server_set_id = $2

login:
    driver = plaintext
    public_name = LOGIN
    server_prompts = "Username:: : Password::"
    server_condition = "${perl{smtpauth}}"
    server_set_id = $1
и ещё раз настоятельно рекомендую читать документацию.
у меня редко бывает настроение всё разжевать.
Убей их всех! Бог потом рассортирует...