Настроил сервак но не могу забрать почту

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-17 11:37:44

Всем добрый день!!!

Настроил сервак по статье http://www.lissyara.su/articles/freebsd/mail/exim+ldap/ и не могу забрать почту по причине "Не синхронизируются папки" помогите плииззз

Даю конфиги

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

         
primary_hostname = mx.lepselan.net.ua

ldap_default_servers = 10.135.1.250::389

LDAP_AUTH = user="cn=bonhead,dc=lepselan,dc=net,dc=ua" pass="nhjatq"

domainlist local_domains = lepselan.net.ua

domainlist relay_to_domains = lepselan.net.ua

hostlist   relay_from_hosts = localhost:127.0.0.0/8

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

av_scanner = clamd:/var/run/clamav/clamd


tls_advertise_hosts = *
tls_certificate = /usr/local/etc/ssl/mail.pem
tls_privatekey = /usr/local/etc/ssl/mail.pem

qualify_domain = lepselan.net.ua

qualify_recipient = lepselan.net.ua

allow_domain_literals = false

exim_user = mailnull
exim_group = mail

never_users = root

rfc1413_query_timeout = 0s

ignore_bounce_errors_after = 45m

timeout_frozen_after = 15d


freeze_tell = root@lepselan.net.ua

helo_accept_junk_hosts = 10.135.1.0/24, 213.160.144.186

auto_thaw = 1h

smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"

smtp_accept_max = 20

smtp_accept_max_per_connection = 4

smtp_connect_backlog = 30

smtp_accept_max_per_host = 4

split_spool_directory = true

remote_max_parallel = 5

return_size_limit = 70k

message_size_limit = 10M

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       = "Недопустимые символы в адресе"
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]

  deny    message       = "Недопустимые символы в адресе"
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./




  deny    message       = "HELO/EHLO обязано быть по SMTP RFC"
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}





  deny    condition     = ${if eq{$sender_helo_name}\
                          {$interface_address}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "Это мой IP-адрес! Пшёл прочь!"

  deny    condition     = ${if match{$sender_helo_name}\
                          {\N^\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1:!localhost:*
          message       = "В HELO не могут быть тока цифры!"

  deny    message       = "Не нравится мне Ваш хост..."
          condition     = ${if match{$sender_host_name} \
                               {adsl|dialup|pool|peer|dhcp} \
                               {yes}{no}}

  accept  authenticated = *




  warn
        set acl_m0 = 25s
  warn
        hosts = +relay_from_hosts
        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       = "В этом домене нет такого пользователя"
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = "Моя сервера не знать маршрут на этот хост..."
          verify        = recipient

  accept  hosts         = +relay_from_hosts

  deny    message       = "Свободен. Это тебе не ОпенРелей."



acl_check_data:

  deny message = "this is spam - denied"
  condition = ${if match{$message_body} \
              {105[-_]*51[-_]*86|778[-_]*98[-_]*94} \
              {yes}{no}}



  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

system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup ldapm{LDAP_AUTH \
            ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?mail?sub?(&(accountStatus=active) \
            (mailAlternateAddress=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}}
ldapuser:
  driver = accept
  condition = ${if eq{}{${lookup ldapdn{LDAP_AUTH \
                ldap:///ou=exim,dc=lepselan,dc=net,dc=ua??sub?(&(accountStatus=active) \
                (mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}}}{no}{yes}}
  transport = ldap_delivery

begin transports

remote_smtp:
    driver = smtp

ldap_delivery:
    driver = appendfile
    check_string = ""
    create_directory
    delivery_date_add
    directory = ${lookup ldap{LDAP_AUTH \
                ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?homeDirectory?sub?\
                (&(accountStatus=active) \
                (mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}{/usr/mail/$value/Maildir/} }
    directory_mode = 770
    envelope_to_add
    maildir_use_size_file
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0600
    quota = ${lookup ldap{LDAP_AUTH \
            ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?mailQuotaSize?\
            sub?(&(accountStatus=active) \
            (mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}{$value}fail}
    quota_warn_message = "\
    To: $local_part@$domain\n\
    From: postmaster@$domain\n\
    Subject: Your maildir is going full\n\
    This message is automaticaly gnerated by your mail server.\n\
    This means, that your mailbox is 80% full. If you would \n\
    override this limit new mail would not be delivered to you!\n\n\
    Please, clean your mailbox."
    quota_warn_threshold = 80%
    return_path_add

address_file:
    driver = appendfile
    delivery_date_add
    envelope_to_add
    return_path_add

address_pipe:
  driver = pipe
  return_output

address_reply:
  driver = autoreply



begin retry


*                    quota
*                    *       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 ldapdn{LDAP_AUTH \
                        ldap:///ou=exim,dc=lepselan,dc=net,dc=ua??sub?(&\
                        (accountStatus=active)(mail=${quote_ldap:$2}) \
                        (clearPassword=${quote_ldap:$3}))}{yes}{no}}
  server_prompts = :
  server_set_id = $2

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup ldapdn{LDAP_AUTH \
                        ldap:///ou=exim,dc=lepselan,dc=net,dc=ua??sub?\
                        (&(accountStatus=active)(mail=${quote_ldap:$1}) \
                        (clearPassword=${quote_ldap:$2}))}{yes}{no}}
  server_prompts = Username:: : Password::
  server_set_id = $1

auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup ldap{LDAP_AUTH \
                ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?clearPassword?sub?\
                (&(accountStatus=active)(mail=${quote_ldap:$1}) \
                )}{$value}fail}
  server_set_id = $1



Настройки Аутдеймона

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

LDAP_URI                ldaps://10.135.1.250
LDAP_PROTOCOL_VERSION   3
LDAP_BASEDN             ou=exim,dc=lepselan,dc=net,dc=ua
LDAP_BINDDN             cn=bonhead,dc=lepselan,dc=net,dc=ua
LDAP_BINDPW             nhjatq
LDAP_TIMEOUT            5
LDAP_AUTHBIND           0
LDAP_MAIL               mail
LDAP_FILTER           (accountStatus=active)
LDAP_DOMAIN             lepselan.net.ua
LDAP_GLOB_UID           mailnull
LDAP_GLOB_GID           mailnull
LDAP_HOMEDIR            homeDirectory
LDAP_MAILROOT        /usr/mail/
LDAP_MAILDIRQUOTA       mailQuotaSize
LDAP_FULLNAME           gecos
LDAP_CLEARPW            clearPassword
LDAP_DEREF              never
LDAP_TLS                0
LDAP_EMAILMAP_BASEDN    ou=exim,dc=lepselan,dc=net,dc=ua

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

authmodulelist="authldap"
authmodulelistorig="authldap"

daemons=5

authdaemonvar=/var/run/authdaemond

subsystem=mail

DEBUG_LOGIN=2

DEFAULTOPTIONS="wbnodsn=1"

LOGGEROPTS=""

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

SSLPORT=993


SSLADDRESS=0


SSLPIDFILE=/var/run/imapd-ssl.pid


SSLLOGGEROPTS="-name=imapd-ssl"


IMAPDSSLSTART=NO


IMAPDSTARTTLS=YES


IMAP_TLS_REQUIRED=0



COURIERTLS=/usr/local/bin/couriertls






TLS_KX_LIST=ALL


TLS_COMPRESSION=ALL


TLS_CERTS=X509




TLS_CERTFILE=/usr/local/etc/ssl/mail.pem


TLS_TRUSTCERTS=/etc/ssl/cert.pem

TLS_VERIFYPEER=NONE




TLS_CACHEFILE=/usr/local/var/couriersslcache
TLS_CACHESIZE=524288
Вроде все........помогите потому как третий день почту не могу собрать

Хостинговая компания 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/

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-17 12:03:37

Как минимум смотреть логи IMAP/POP3 сервера, так как он отвечает за отдачу пользователю почты. Также можно прогнать без SSL/TLS доступ к почте.
запустите тестовую сессию
telnet IP-SERVER 143
1 login USER PASS
2 select INBOX
3 logout

telnet IP-SERVER 110
user USER
pass PASS
quit

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-17 12:25:08

Потушил SSL поднял обычный и вот что выдает

mx# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* BYE imaplogin expected exactly two arguments.
Connection closed by foreign host.

да еще нашел в дебаг логе вот такую хрень

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

Dec 17 11:11:19 mx slapd[1408]: conn=1118 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
Dec 17 11:11:19 mx slapd[1408]: conn=1118 op=2 SRCH base="ou=exim,dc=lepselan,dc=net,dc=ua" scope=2 deref=0 filter="(&(accountStatus=active)(mail=bonhead@lepselan.net.ua))"
Dec 17 11:11:19 mx slapd[1408]: conn=1118 op=2 SRCH attr=homeDirectory
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (accountStatus) not indexed
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (mail) not indexed
Dec 17 11:11:19 mx slapd[1408]: conn=1118 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
Dec 17 11:11:19 mx slapd[1408]: conn=1118 op=3 UNBIND
Dec 17 11:11:19 mx slapd[1408]: conn=1118 fd=17 closed
Dec 17 11:11:19 mx slapd[1408]: conn=1119 fd=16 ACCEPT from IP=10.135.1.250:52191 (IP=0.0.0.0:389)
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=0 BIND dn="cn=bonhead,dc=lepselan,dc=net,dc=ua" method=128
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=0 BIND dn="cn=bonhead,dc=lepselan,dc=net,dc=ua" mech=SIMPLE ssf=0
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=0 RESULT tag=97 err=0 text=
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=1 SRCH base="ou=exim,dc=lepselan,dc=net,dc=ua" scope=2 deref=0 filter="(&(accountStatus=active)(mailAlternateAddress=bonhead@lepselan.net.ua))"
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=1 SRCH attr=mail
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (accountStatus) not indexed
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (mailAlternateAddress) not indexed
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=2 SRCH base="ou=exim,dc=lepselan,dc=net,dc=ua" scope=2 deref=0 filter="(&(accountStatus=active)(mail=bonhead@lepselan.net.ua))"
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (accountStatus) not indexed
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (mail) not indexed
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
Dec 17 11:11:19 mx slapd[1408]: conn=1119 op=3 UNBIND
Dec 17 11:11:19 mx slapd[1408]: conn=1119 fd=16 closed
Dec 17 11:11:19 mx slapd[1408]: conn=1120 fd=16 ACCEPT from IP=10.135.1.250:58398 (IP=0.0.0.0:389)
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=0 BIND dn="cn=bonhead,dc=lepselan,dc=net,dc=ua" method=128
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=0 BIND dn="cn=bonhead,dc=lepselan,dc=net,dc=ua" mech=SIMPLE ssf=0
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=0 RESULT tag=97 err=0 text=
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=1 SRCH base="ou=exim,dc=lepselan,dc=net,dc=ua" scope=2 deref=0 filter="(&(accountStatus=active)(mail=bonhead@lepselan.net.ua))"
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=1 SRCH attr=mailQuotaSize
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (accountStatus) not indexed
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (mail) not indexed
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=2 SRCH base="ou=exim,dc=lepselan,dc=net,dc=ua" scope=2 deref=0 filter="(&(accountStatus=active)(mail=bonhead@lepselan.net.ua))"
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=2 SRCH attr=homeDirectory
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (accountStatus) not indexed
Dec 17 11:11:19 mx slapd[1408]: <= bdb_equality_candidates: (mail) not indexed
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=2 SEARCH RESULT tag=101 err=0 nentries=1 text=
Dec 17 11:11:19 mx slapd[1408]: conn=1120 op=3 UNBIND
Dec 17 11:11:19 mx slapd[1408]: conn=1120 fd=16 closed

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-17 15:11:05

на not indexed Не смотрите
ВЫ уверены, что здесь правильное значени LDAP_BASEDN ou=exim,dc=lepselan,dc=net,dc=ua? Может поставить dc=lepselan,dc=net,dc=ua
Что касается лога - в нем ничего интересного нет. Слветую прогнать с помощью ldapsearch запрос - убедиться, что он возвращает данные.

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-17 19:26:15

Вроде как отдает

ldapsearch -b "ou=exim,dc=lepselan,dc=net,dc=ua" "mail=bonhead@lepselan.net.ua"
# extended LDIF
#
# LDAPv3
# base <ou=exim,dc=lepselan,dc=net,dc=ua> with scope subtree
# filter: mail=bonhead@lepselan.net.ua
# requesting: ALL
#

# bonhead@lepselan.net.ua, lepselan.net.ua, exim, lepselan.net.ua

dn: mail=bonhead@lepselan.net.ua,ou=lepselan.net.ua,ou=exim,dc=lepselan,dc=net
,dc=ua
objectClass: top
objectClass: MailAccount
mail: bonhead@lepselan.net.ua
homeDirectory: lepselan.net.ua/bonhead
accountStatus: active
mailMessageStore: Maildir/
clearPassword: passwd
mailQuotaSize: 25000

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-17 19:39:15

Попробуйте увеличить уровень дебага в courier, а также проверить авторизация в смтп. работает ли?

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-17 19:57:19

не могу понять где уровень дебага увеличить в файле imapd

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-17 20:22:02

Turn on debugging со страницы http://www.courier-mta.org/authlib/READ ... debug.html

For courier-imap, you need to set one of the following values in /usr/local/etc/authdaemonrc:
DEBUG_LOGIN=1 # turn on authentication debugging
DEBUG_LOGIN=2 # turn on authentication debugging AND show passwords

Хотя в вашем конфиге это уже есть.

А вообще есть возможность/желание поставить dovecot 2 вместо courier?

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-17 20:37:24

подскажите статью для того что бы это сделать по быстрому в связке с лдапом... Заранее благодарен

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-17 20:59:24

Ну как минимум http://www.opennet.ru/base/net/dovecot_ ... p.txt.html
+ документация dovecot.

Почему dovecot - активно развивается, текущий функционал вполне подходит для продакшн.
Использую в связке с AD довольно давно.

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-19 4:57:47

Чесно может я и дыбил но не могу и настроить давекот уже как только не ипусь с ним и так и сяк.... он просто не находит пользователя..... может конечно я не правильно указываю фильтры но помогите плииизззз ..... и я занимаюсь тем чем надо.... просто времени не хватает полностью сесть и сначала все написать... помогите плииззззззз

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-19 13:02:15

укажите чтоли версию/конфиг dovecot
doveconf -v

что в логах пишется. OS какая.

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-19 15:27:48

Еще раз сбрасываю все конфиги от эксима до давекота

slapd.conf

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

include         /usr/local/etc/openldap/schema/core.schema

include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/misc.schema
include         /usr/local/etc/openldap/schema/nis.schema
include         /usr/local/etc/openldap/schema/openldap.schema
include         /usr/local/etc/openldap/schema/mail.schema

pidfile         /var/run/openldap/slapd.pid

argsfile        /var/run/openldap/slapd.args

modulepath      /usr/local/libexec/openldap

moduleload      back_bdb


access to attrs=userPassword
        by dn="cn=bonhead,dc=lepselan,dc=net,dc=ua"
        by self write
        by anonymous auth
        by * none

access to *
        by self write
        by anonymous read
        by * none


database        bdb

suffix          "dc=lepselan,dc=net,dc=ua"

rootdn          "cn=bonhead,dc=lepselan,dc=net,dc=ua"

rootpw          {SSHA}kh7Qzfwh5XzrKgBvSCvQKKETKhC1qu1Q

directory       /var/db/openldap-data

loglevel        256

index   objectClass     eq
index   cn              eq
base.ldif

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

dn: dc=lepselan,dc=net,dc=ua
objectClass: dcObject
objectClass: organization
objectClass: top
dc:lepselan
o:lepselan
exim.ldif

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

dn: mail=bonhead@lepselan.net.ua,ou=lepselan.net.ua,ou=exim,dc=lepselan,dc=net,dc=ua
objectClass: top
objectClass: MailAccount
mail: bonhead@lepselan.net.ua
homeDirectory: lepselan.net.ua/bonhead
accountStatus: active
mailMessageStore: Maildir/
clearPassword: secret
mailQuotaSize: 2500
Эксим

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

primary_hostname = mx.lepselan.net.ua

ldap_default_servers = 10.135.1.250::389

LDAP_AUTH = user="cn=bonhead,dc=lepselan,dc=net,dc=ua" pass="nhjatq"

domainlist local_domains = lepselan.net.ua

domainlist relay_to_domains = lepselan.net.ua

hostlist   relay_from_hosts = localhost:127.0.0.0/8

acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data

av_scanner = clamd:/var/run/clamav/clamd


tls_advertise_hosts = *
tls_certificate = /usr/local/etc/ssl/mail.pem
tls_privatekey = /usr/local/etc/ssl/mail.pem

qualify_domain = lepselan.net.ua

qualify_recipient = lepselan.net.ua

allow_domain_literals = false

exim_user = mailnull
exim_group = mail

never_users = root

rfc1413_query_timeout = 0s

ignore_bounce_errors_after = 45m

timeout_frozen_after = 15d


freeze_tell = root@lepselan.net.ua

helo_accept_junk_hosts = 10.135.1.0/24, 213.160.144.186

auto_thaw = 1h

smtp_banner = "$primary_hostname, ESMTP EXIM $version_number"

smtp_accept_max = 20

smtp_accept_max_per_connection = 4

smtp_connect_backlog = 30

smtp_accept_max_per_host = 4

split_spool_directory = true

remote_max_parallel = 5

return_size_limit = 70k

message_size_limit = 10M

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       = "Недопустимые символы в адресе"
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]

  deny    message       = "Недопустимые символы в адресе"
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./




  deny    message       = "HELO/EHLO обязано быть по SMTP RFC"
          condition     = ${if eq{$sender_helo_name}{}{yes}{no}}





  deny    condition     = ${if eq{$sender_helo_name}\
                          {$interface_address}{yes}{no}}
          hosts         = !127.0.0.1 : !localhost : *
          message       = "Это мой IP-адрес! Пшёл прочь!"

  deny    condition     = ${if match{$sender_helo_name}\
                          {\N^\d+$\N}{yes}{no}}
          hosts         = !127.0.0.1:!localhost:*
          message       = "В HELO не могут быть тока цифры!"

  deny    message       = "Не нравится мне Ваш хост..."
          condition     = ${if match{$sender_host_name} \
                               {adsl|dialup|pool|peer|dhcp} \
                               {yes}{no}}

  accept  authenticated = *




  warn
        set acl_m0 = 25s
  warn
        hosts = +relay_from_hosts
        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       = "В этом домене нет такого пользователя"
          verify        = recipient

  accept  domains       = +relay_to_domains
          endpass
          message       = "Моя сервера не знать маршрут на этот хост..."
          verify        = recipient

  accept  hosts         = +relay_from_hosts

  deny    message       = "Свободен. Это тебе не ОпенРелей."



acl_check_data:

  deny message = "this is spam - denied"
  condition = ${if match{$message_body} \
              {105[-_]*51[-_]*86|778[-_]*98[-_]*94} \
              {yes}{no}}



  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

system_aliases:
    driver      = redirect
    allow_fail
    allow_defer
    data = ${lookup ldapm{LDAP_AUTH \
            ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?mail?sub?(&(accountStatus=active) \
            (mailAlternateAddress=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}}
ldapuser:
  driver = accept
  condition = ${if eq{}{${lookup ldapdn{LDAP_AUTH \
                ldap:///ou=exim,dc=lepselan,dc=net,dc=ua??sub?(&(accountStatus=active) \
                (mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}}}{no}{yes}}
  transport = ldap_delivery

begin transports

remote_smtp:
    driver = smtp

ldap_delivery:
    driver = appendfile
    check_string = ""
    create_directory
    delivery_date_add
    directory = ${lookup ldap{LDAP_AUTH \
                ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?homeDirectory?sub?\
                (&(accountStatus=active) \
                (mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}{/usr/mail/$value/Maildir/} }
    directory_mode = 770
    envelope_to_add
    maildir_use_size_file
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0600
    quota = ${lookup ldap{LDAP_AUTH \
            ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?mailQuotaSize?\
            sub?(&(accountStatus=active) \
            (mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}{$value}fail}
    quota_warn_message = "\
    To: $local_part@$domain\n\
    From: postmaster@$domain\n\
    Subject: Your maildir is going full\n\
    This message is automaticaly gnerated by your mail server.\n\
    This means, that your mailbox is 80% full. If you would \n\
    override this limit new mail would not be delivered to you!\n\n\
    Please, clean your mailbox."
    quota_warn_threshold = 80%
    return_path_add

address_file:
    driver = appendfile
    delivery_date_add
    envelope_to_add
    return_path_add

address_pipe:
  driver = pipe
  return_output

address_reply:
  driver = autoreply



begin retry


*                    quota
*                    *       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 ldapdn{LDAP_AUTH \
                        ldap:///ou=exim,dc=lepselan,dc=net,dc=ua??sub?(&\
                        (accountStatus=active)(mail=${quote_ldap:$2}) \
                        (clearPassword=${quote_ldap:$3}))}{yes}{no}}
  server_prompts = :
  server_set_id = $2

auth_login:
  driver = plaintext
  public_name = LOGIN
  server_condition = ${lookup ldapdn{LDAP_AUTH \
                        ldap:///ou=exim,dc=lepselan,dc=net,dc=ua??sub?\
                        (&(accountStatus=active)(mail=${quote_ldap:$1}) \
                        (clearPassword=${quote_ldap:$2}))}{yes}{no}}
  server_prompts = Username:: : Password::
  server_set_id = $1

auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup ldap{LDAP_AUTH \
                ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?clearPassword?sub?\
                (&(accountStatus=active)(mail=${quote_ldap:$1}) \
                )}{$value}fail}
  server_set_id = $1
Давекот

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

mx# dovecot --version
2.0.7
dovecot.conf

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

mx# less dovecot.conf
## Dovecot configuration file

# If you're in a hurry, see http://wiki.dovecot.org/QuickConfiguration

# "doveconf -n" command gives a clean output of the changed settings. Use it
# instead of copy&pasting files when posting to the Dovecot mailing list.

# '#' character and everything after it is treated as comments. Extra spaces
# and tabs are ignored. If you want to use either of these explicitly, put the
# value inside quotes, eg.: key = "# char and trailing whitespace  "

# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.
# Paths are also just examples with the real defaults being based on configure
# options. The paths listed here are for configure --prefix=/usr/local
# --sysconfdir=/usr/local/etc --localstatedir=/var

# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf

# Protocols we want to be serving.
protocols = imap pop3

# A comma separated list of IPs or hosts where to listen in for connections.
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
listen = *

# Base directory where to store runtime data.
base_dir = /var/run/dovecot/

# Greeting message for clients.
login_greeting = Dovecot ready.

# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =

# Sepace separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets =

# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no

# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
shutdown_clients = yes

# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server

##
## Dictionary server settings
##

# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::<name>".

dict {
  #quota = mysql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
}

# A config file can also tried to be included without giving an error if
# it's not found:
#!include_try /usr/local/etc/dovecot/local.conf
dovecot-ldap.conf

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

# This file is opened as root, so it should be owned by root and mode 0600.
#
# http://wiki.dovecot.org/AuthDatabase/LDAP
#
# NOTE: If you're not using authentication binds, you'll need to give
# dovecot-auth read access to userPassword field in the LDAP server.
# With OpenLDAP this is done by modifying /etc/ldap/slapd.conf. There should
# already be something like this:

# access to attribute=userPassword
#        by dn="<dovecot's dn>" read # add this
#        by anonymous auth
#        by self write
#        by * none

# Space separated list of LDAP hosts to use. host:port is allowed too.
hosts = localhost

# LDAP URIs to use. You can use this instead of hosts list. Note that this
# setting isn't supported by all LDAP libraries.
uris = ldap://localhost

# Distinguished Name - the username used to login to the LDAP server.
# Leave it commented out to bind anonymously (useful with auth_bind=yes).
dn = cn=bonhead,dc=lepselan,dc=net,dc=ua

# Password for LDAP server, if dn is specified.
dnpass = nhjatq

# Use SASL binding instead of the simple binding. Note that this changes
# ldap_version automatically to be 3 if it's lower. Also note that SASL binds
# and auth_bind=yes don't work together.
#sasl_bind = no
# SASL mechanism name to use.
#sasl_mech =
# SASL realm to use.
#sasl_realm =
# SASL authorization ID, ie. the dnpass is for this "master user", but the
# dn is still the logged in user. Normally you want to keep this empty.
#sasl_authz_id =

# Use TLS to connect to the LDAP server.
#tls = no
# TLS options, currently supported only with OpenLDAP:
#tls_ca_cert_file =
#tls_ca_cert_dir =
#tls_cipher_suite =
# TLS cert/key is used only if LDAP server requires a client certificate.
#tls_cert_file =
#tls_key_file =
# Valid values: never, hard, demand, allow, try
#tls_require_cert =

# Use the given ldaprc path.
#ldaprc_path =

# LDAP library debug level as specified by LDAP_DEBUG_* in ldap_log.h.
# -1 = everything. You may need to recompile OpenLDAP with debugging enabled
# to get enough output.
#debug_level =

# Use authentication binding for verifying password's validity. This works by
# logging into LDAP server using the username and password given by client.
# The pass_filter is used to find the DN for the user. Note that the pass_attrs
# is still used, only the password field is ignored in it. Before doing any
# search, the binding is switched back to the default DN.
auth_bind = no

# If authentication binding is used, you can save one LDAP request per login
# if users' DN can be specified with a common template. The template can use
# the standard %variables (see user_filter). Note that you can't
# use any pass_attrs if you use this setting.
#
# If you use this setting, it's a good idea to use a different
# dovecot-ldap.conf.ext for userdb (it can even be a symlink, just as long as
# the filename is different in userdb's args). That way one connection is used
# only for LDAP binds and another connection is used for user lookups.
# Otherwise the binding is changed to the default DN before each user lookup.
#
# For example:
#   auth_bind_userdn = cn=%u,ou=people,o=org
#
#auth_bind_userdn = mail=%u,ou=lepselan.net.ua

# LDAP protocol version to use. Likely 2 or 3.
ldap_version = 3

# LDAP base. %variables can be used here.
# For example: dc=mail, dc=example, dc=org
base = ou=lepselan.net.ua,ou=exim,dc=lepselan,dc=net,dc=ua

# Dereference: never, searching, finding, always
deref = never

# Search scope: base, onelevel, subtree
#scope = subtree

# User attributes are given in LDAP-name=dovecot-internal-name list. The
# internal names are:
#   uid - System UID
#   gid - System GID
#   home - Home directory
#   mail - Mail location
#
# There are also other special fields which can be returned, see
# http://wiki.dovecot.org/UserDatabase/ExtraFields
user_attrs = homeDirectory=home,mail=uid,mail=mail

# Filter for user lookup. Some variables can be used (see
# http://wiki.dovecot.org/Variables for full list):
#   %u - username
#   %n - user part in user@domain, same as %u if there's no domain
#   %d - domain part in user@domain, empty if user there's no domain
user_filter = (&(accountStatus=active)(mail=%u))

# Password checking attributes:
#  user: Virtual user name (user@domain), if you wish to change the
#        user-given username to something else
#  password: Password, may optionally start with {type}, eg. {crypt}
# There are also other special fields which can be returned, see
# http://wiki.dovecot.org/PasswordDatabase/ExtraFields
pass_attrs = mail=user,clearPassword=password

# If you wish to avoid two LDAP lookups (passdb + userdb), you can use
# userdb prefetch instead of userdb ldap in dovecot.conf. In that case you'll
# also have to include user_attrs in pass_attrs field prefixed with "userdb_"
# string. For example:
#pass_attrs = uid=user,userPassword=password,\
#  homeDirectory=userdb_home,uidNumber=userdb_uid,gidNumber=userdb_gid

# Filter for password lookups
pass_filter = (&(accountStatus=active)(mail=%u))

# Attributes and filter to get a list of all users
#iterate_attrs = mail=user
#iterate_filter = (accountStatus=active)

# Default password scheme. "{scheme}" before password overrides this.
# List of supported schemes is in: http://wiki.dovecot.org/Authentication
default_pass_scheme = CRYPT

Теперь логи

debud.log

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

Dec 19 14:29:00 mx slapd[40895]: conn=1067 fd=14 ACCEPT from IP=10.135.1.250:15597 (IP=0.0.0.0:389)
Dec 19 14:29:00 mx slapd[40895]: conn=1067 op=0 BIND dn="cn=bonhead,dc=lepselan,dc=net,dc=ua" method=128
Dec 19 14:29:00 mx slapd[40895]: conn=1067 op=0 BIND dn="cn=bonhead,dc=lepselan,dc=net,dc=ua" mech=SIMPLE ssf=0
Dec 19 14:29:00 mx slapd[40895]: conn=1067 op=0 RESULT tag=97 err=0 text=
Dec 19 14:29:00 mx slapd[40895]: connection_input: conn=1067 deferring operation: binding
Dec 19 14:29:00 mx slapd[40895]: conn=1067 op=1 SRCH base="ou=exim,dc=lepselan,dc=net,dc=ua" scope=2 deref=0 filter="(&(accountStatus=active)(mailAlternateAddress=root@lepselan.net.ua))"
Dec 19 14:29:00 mx slapd[40895]: conn=1067 op=1 SRCH attr=mail
Dec 19 14:29:00 mx slapd[40895]: <= bdb_equality_candidates: (accountStatus) not indexed
Dec 19 14:29:00 mx slapd[40895]: <= bdb_equality_candidates: (mailAlternateAddress) not indexed
Dec 19 14:29:00 mx slapd[40895]: conn=1067 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
Dec 19 14:29:00 mx slapd[40895]: conn=1067 op=2 SRCH base="ou=exim,dc=lepselan,dc=net,dc=ua" scope=2 deref=0 filter="(&(accountStatus=active)(mail=root@lepselan.net.ua))"

maillog

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

Dec 19 14:20:51 mx dovecot: master: Dovecot v2.0.7 starting up
Dec 19 14:26:00 mx dovecot: auth: Fatal: ldap: LDAP attribute 'mail' used multiple times. This is currently unsupported.
Dec 19 14:26:00 mx dovecot: master: Error: service(auth): command startup failed, throttling
Dec 19 14:26:35 mx dovecot: imap-login: Error: Timeout waiting for handshake from auth server. my pid=43037, input bytes=0
Dec 19 14:27:00 mx dovecot: auth: Fatal: ldap: LDAP attribute 'mail' used multiple times. This is currently unsupported.
Dec 19 14:27:00 mx dovecot: master: Error: service(auth): command startup failed, throttling
Вроде пока все

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-19 15:41:33

немного поменял конфиг давекота и вот теперь получаю в дебаге вот это

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

Dec 19 14:40:08 mx slapd[40895]: conn=1070 op=1 SRCH base="ou=exim,dc=lepselan,dc=net,dc=ua" scope=2 deref=0 filter="(&(accountStatus=active)(mail=bonhead@lepselan.net.ua))"
Dec 19 14:40:08 mx slapd[40895]: conn=1070 op=1 SRCH attr=mail clearPassword
Dec 19 14:40:08 mx slapd[40895]: <= bdb_equality_candidates: (accountStatus) not indexed
Dec 19 14:40:08 mx slapd[40895]: <= bdb_equality_candidates: (mail) not indexed
Dec 19 14:40:08 mx slapd[40895]: conn=1070 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=

Конфиг

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

hosts = localhost

uris = ldap://localhost

dn = cn=bonhead,dc=lepselan,dc=net,dc=ua

dnpass = nhjatq






auth_bind_userdn = mail=%u,ou=lepselan.net.ua

ldap_version = 3

base = ou=exim,dc=lepselan,dc=net,dc=ua

deref = never

#от сюдя убрал параметр mail=mail
user_attrs = homeDirectory=home,mail=uid

user_filter = (&(accountStatus=active)(mail=%u))

pass_attrs = mail=user,clearPassword=password


pass_filter = (&(accountStatus=active)(mail=%u))


default_pass_scheme = CRYPT

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

mx# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
a login bonhead@lepselan.net.ua nhjatq
a NO [AUTHENTICATIONFAILED] Authentication failed.

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-19 17:23:28

В файле 10-logging.conf изменить
auth_debug = yes
auth_debug_passwords = yes
log_path = /var/log/dovecot/dovecot.log
info_log_path = /var/log/dovecot/info.log
debug_log_path = /var/log/dovecot/debug.log

mkdir -p /var/log/dovecot - создание директории, если у вас ее нет, вообщем логи храните в любом удобном для вас месте.
Последний раз редактировалось blade_007 2010-12-19 17:27:52, всего редактировалось 1 раз.

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-19 17:27:18

в dovecot-ldap.conf
default_pass_scheme = PLAIN
поскольку clearPassword=password т.е. формат хранения паролей - в явном виде (некриптованном)

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-19 18:39:53

Вообщем, приведенные выше опции включают дополнительное логгирование dovecot.
Перезапустите dovecot.
Сделайте telnet localhost 143, попытайтесь авторизоваться.
Если получится/не получится смотрите в логи в папке //var/log/dovecot/*.log и скиньте последние записи сюда - может разберемся.

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-19 18:57:59

оки сейчас зделаю отпишусь

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-19 20:14:14

Так пароль уже распознает и запрос я поменял потому он уже воспринимается но есть еще баг

debug.log

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

Dec 19 19:04:45 auth: Debug: Loading modules from directory: /usr/local/lib/dovecot/auth
Dec 19 19:04:45 auth: Debug: auth client connected (pid=1902)
Dec 19 19:04:55 auth: Debug: client in: AUTH    1       PLAIN   service=imap    secured lip=127.0.0.1   rip=127.0.0.1   lport=143       rport=44083     resp=AGJvbmhlYWRAbGVwc2VsYW4ubmV0LnVhAG5oamF0cQ==
Dec 19 19:04:55 auth: Debug: ldap(bonhead@lepselan.net.ua,127.0.0.1): pass search: base=ou=exim,dc=lepselan,dc=net,dc=ua scope=subtree filter=(&(accountStatus=active)(mail=bonhead@lepselan.net.ua)) fields=mail,clearPassword
Dec 19 19:04:55 auth: Debug: ldap(bonhead@lepselan.net.ua,127.0.0.1): result: mail(user)=bonhead@lepselan.net.ua clearPassword(password)=nhjatq
Dec 19 19:04:55 auth: Debug: client out: OK     1       user=bonhead@lepselan.net.ua
Dec 19 19:04:55 auth: Debug: master in: REQUEST 1       1902    1       7299a9b78f6666d1fe6b5ec8f2b03c24
Dec 19 19:04:55 auth: Debug: ldap(bonhead@lepselan.net.ua,127.0.0.1): user search: base=ou=exim,dc=lepselan,dc=net,dc=ua scope=subtree filter=(&(accountStatus=active)(mail=bonhead@lepselan.net.ua)) fields=homeDirectory,mail
Dec 19 19:04:55 auth: Debug: ldap(bonhead@lepselan.net.ua,127.0.0.1): result: mail(uid)=bonhead@lepselan.net.ua homeDirectory(home)=lepselan.net.ua/bonhead
Dec 19 19:04:55 auth: Debug: master out: FAIL   1
А конфиг давекота сейчас такой

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

# This file is opened as root, so it should be owned by root and mode 0600.
#
# http://wiki.dovecot.org/AuthDatabase/LDAP
#
# NOTE: If you're not using authentication binds, you'll need to give
# dovecot-auth read access to userPassword field in the LDAP server.
# With OpenLDAP this is done by modifying /etc/ldap/slapd.conf. There should
# already be something like this:

# access to attribute=userPassword
#        by dn="<dovecot's dn>" read # add this
#        by anonymous auth
#        by self write
#        by * none

# Space separated list of LDAP hosts to use. host:port is allowed too.
hosts = mx.lepselan.net.ua

# LDAP URIs to use. You can use this instead of hosts list. Note that this
# setting isn't supported by all LDAP libraries.
uris = ldap:///localhost

# Distinguished Name - the username used to login to the LDAP server.
# Leave it commented out to bind anonymously (useful with auth_bind=yes).
dn = "cn=bonhead,dc=lepselan,dc=net,dc=ua"

# Password for LDAP server, if dn is specified.
dnpass = nhjatq

# Use SASL binding instead of the simple binding. Note that this changes
# ldap_version automatically to be 3 if it's lower. Also note that SASL binds
# and auth_bind=yes don't work together.
#sasl_bind = no
# SASL mechanism name to use.
#sasl_mech =
# SASL realm to use.
#sasl_realm =
# SASL authorization ID, ie. the dnpass is for this "master user", but the
# dn is still the logged in user. Normally you want to keep this empty.
#sasl_authz_id =

# Use TLS to connect to the LDAP server.
tls = no
# TLS options, currently supported only with OpenLDAP:
#tls_ca_cert_file =
#tls_ca_cert_dir =
#tls_cipher_suite =
# TLS cert/key is used only if LDAP server requires a client certificate.
#tls_cert_file =
#tls_key_file =
# Valid values: never, hard, demand, allow, try
#tls_require_cert =

# Use the given ldaprc path.
#ldaprc_path =

# LDAP library debug level as specified by LDAP_DEBUG_* in ldap_log.h.
# -1 = everything. You may need to recompile OpenLDAP with debugging enabled
# to get enough output.
#debug_level = 0

# Use authentication binding for verifying password's validity. This works by
# logging into LDAP server using the username and password given by client.
# The pass_filter is used to find the DN for the user. Note that the pass_attrs
# is still used, only the password field is ignored in it. Before doing any
# search, the binding is switched back to the default DN.
#auth_bind = no

# If authentication binding is used, you can save one LDAP request per login
# if users' DN can be specified with a common template. The template can use
# the standard %variables (see user_filter). Note that you can't
# use any pass_attrs if you use this setting.
#
# If you use this setting, it's a good idea to use a different
# dovecot-ldap.conf.ext for userdb (it can even be a symlink, just as long as
# the filename is different in userdb's args). That way one connection is used
# only for LDAP binds and another connection is used for user lookups.
# Otherwise the binding is changed to the default DN before each user lookup.
#
# For example:
#   auth_bind_userdn = cn=%u,ou=people,o=org
#
auth_bind_userdn = mail=%u,ou=lepselan.net.ua

# LDAP protocol version to use. Likely 2 or 3.
ldap_version = 3

# LDAP base. %variables can be used here.
# For example: dc=mail, dc=example, dc=org
base = ou=exim,dc=lepselan,dc=net,dc=ua

# Dereference: never, searching, finding, always
deref = never

# Search scope: base, onelevel, subtree
scope = subtree

# User attributes are given in LDAP-name=dovecot-internal-name list. The
# internal names are:
#   uid - System UID
#   gid - System GID
#   home - Home directory
#   mail - Mail location
#
# There are also other special fields which can be returned, see
# http://wiki.dovecot.org/UserDatabase/ExtraFields
user_attrs = homeDirectory=home,mail=uid

# Filter for user lookup. Some variables can be used (see
# http://wiki.dovecot.org/Variables for full list):
#   %u - username
#   %n - user part in user@domain, same as %u if there's no domain
#   %d - domain part in user@domain, empty if user there's no domain
user_filter = (&(accountStatus=active)(mail=%u))

# Password checking attributes:
#  user: Virtual user name (user@domain), if you wish to change the
#        user-given username to something else
#  password: Password, may optionally start with {type}, eg. {crypt}
# There are also other special fields which can be returned, see
# http://wiki.dovecot.org/PasswordDatabase/ExtraFields
pass_attrs = mail=user,clearPassword=password

# If you wish to avoid two LDAP lookups (passdb + userdb), you can use
# userdb prefetch instead of userdb ldap in dovecot.conf. In that case you'll
# also have to include user_attrs in pass_attrs field prefixed with "userdb_"
# string. For example:
#pass_attrs = uid=user,userPassword=password,\
#  homeDirectory=userdb_home,uidNumber=userdb_uid,gidNumber=userdb_gid

# Filter for password lookups
pass_filter = (&(accountStatus=active)(mail=%u))

# Attributes and filter to get a list of all users
#iterate_attrs = uid=user
#iterate_filter = (objectClass=posixAccount)

# Default password scheme. "{scheme}" before password overrides this.
# List of supported schemes is in: http://wiki.dovecot.org/Authentication
default_pass_scheme = PLAIN
Еще хотил спросить может эта ошибка о неправильном указании папки в файле conf.d/10-mail.conf???

Что еще можеш подсказать

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-19 20:40:12

mail (uid)=bonhead@lepselan.net.ua
Mail = здесь указывается путь к собственно Maildir пользователя.
uid = uid пользователя почты, если используется один (виртуальный) юзер для всей почты, то лучше указать
mail_uid=47
mail_gid=12
в 10-mail.conf

А здесь собственно речь, где смотреть mail_localtion - http://wiki2.dovecot.org/MailLocation.

Т.е. где хранится почта пользователя?
/путь/domain/user/Maildir - это mail, сюда LDA кладет/ложит почту
/путь/domain/user/ - это home, домашняя директория для доп. файлов, например, .forward, sieve-фильтров и т.п.

LDAP-запрос должен вернуть нужную (для dovecot) информацию - home, mail, uid, gid.

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-19 20:46:12

У меня указано:
mail_location = maildir:/var/spool/vmail/domains/%d/%n/Maildir
mail_uid=47
mail_gid=12

pass_attrs = clearPassword=password
#userattrs =

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-19 21:26:31

по твоему совету сделал
mail_uid=47
mail_gid=12

pass_attrs = clearPassword=password
#userattrs =
вот лог после

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

Dec 19 20:21:26 auth: Debug: Loading modules from directory: /usr/local/lib/dovecot/auth
Dec 19 20:21:26 auth: Debug: auth client connected (pid=2190)
Dec 19 20:21:38 auth: Debug: client in: AUTH    1       PLAIN   service=imap    secured lip=127.0.0.1   rip=127.0.0.1   lport=143       rport=40505     resp=AGJvbmhlYWRAbGVwc2VsYW4ubmV0LnVhAG5oamF0cQ==
Dec 19 20:21:38 auth: Debug: ldap(bonhead@lepselan.net.ua,127.0.0.1): pass search: base=ou=exim,dc=lepselan,dc=net,dc=ua scope=subtree filter=(&(accountStatus=active)(mail=bonhead@lepselan.net.ua)) fields=clearPassword
Dec 19 20:21:38 auth: Debug: ldap(bonhead@lepselan.net.ua,127.0.0.1): result: clearPassword(password)=nhjatq
Dec 19 20:21:38 auth: Debug: client out: OK     1       user=bonhead@lepselan.net.ua
Dec 19 20:21:38 auth: Debug: master in: REQUEST 1       2190    1       d1c319a390ebe6e5633462b1ec0f35f1
Dec 19 20:21:38 auth: Debug: ldap(bonhead@lepselan.net.ua,127.0.0.1): user search: base=ou=exim,dc=lepselan,dc=net,dc=ua scope=subtree filter=(&(accountStatus=active)(mail=bonhead@lepselan.net.ua)) fields=homeDirectory,uidNumber,gidNumber
Dec 19 20:21:38 auth: Debug: ldap(bonhead@lepselan.net.ua,127.0.0.1): result: homeDirectory(home)=lepselan.net.ua/bonhead
Dec 19 20:21:38 auth: Debug: master out: USER   1       bonhead@lepselan.net.ua home=lepselan.net.ua/bonhead
слушай может я все же указываю папку неправильно в эксиме указано так

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

## ищем хомяк пользователя
    directory = ${lookup ldap{LDAP_AUTH \
                ldap:///ou=exim,dc=lepselan,dc=net,dc=ua?homeDirectory?sub?\
                (&(accountStatus=active) \
                (mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}{/usr/mail/$value/Maildir/} }
в давекоте так

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

mail_location = maildir:/usr/mail/%h/Maildir

bonhead
рядовой
Сообщения: 33
Зарегистрирован: 2010-04-12 0:30:45
Откуда: Киев
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение bonhead » 2010-12-19 21:29:06

я наверно дыбил.... ты прости меня но

mx# ll /usr/mail/lepselan.net.ua/bonhead/
Maildir/
mx# ll /usr/mail/lepselan.net.ua/bonhead/Maildir/
cur/ maildirsize new/ tmp/
mx# ll /usr/mail/lepselan.net.ua/bonhead/Maildir/

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-19 21:42:37

Итак, начнем сначала.
Конфиг exim НЕ трогать.
В LDAP БД ничего НЕ трогать.

Где лежит вся почта? Пусть в - /var/spool/vmail/domains/DOMAIN/USER/Maildir, например,
/var/spool/vmail/domains/test.com/vasya/Maildir
/var/spool/vmail/domains/test.com/petya/Maildir

путь может быть другим, но суть должна быть понятна...

Далее, dovecot аутентифицирует юзера, который предоставляет логин и пароль (bonhead@lepselan.net.ua b ПАРОЛЬ соот.)
Если поиск в LDAP с фильтром для данного юзера (bonhead@lepselan.net.ua) вернет какие-то поля (password как минимум), то значение в clearPassword сравнит с переданным ПАРОЛЕМ. Если все хорошо, то пользователь залогинится.
Куда? Тут нужен запрос к userdatabase.
Тоже, lDAP-запрос с фильтром для данного юзера (bonhead@lepselan.net.ua) вернет какие-то поля (home, mail, uid, gid для dovecot. для ldap это homeDirectory и т.п.).
home и mail должны быть абсолютными путями !!!

Вот здесь и выступает mail_location (если ldap-запрос возвращает значени mail, то оно используется вместо mail_location, НО поскольку значение НЕ АБСОЛЮТНЫЙ ПУТЬ, то задайте mail_location )
mail_location = maildir:/var/spool/vmail/domains/%d/%n/Maildir

а user_attrs в запросе ldap закомментируйте

Перезапустите dovecot и смотрите логи.

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Настроил сервак но не могу забрать почту

Непрочитанное сообщение blade_007 » 2010-12-19 21:46:00

В добавку
пользователь с uid =47 должен иметь права на вход/запись в папку /var/spool/vmail/domains/DOMAIN
так как он создает остальные папки (домашнюю директорию, Maildir-папки ит.п.)
Но, естественно, такой uid - у меня. У вас он может быть другим.

Вся почта для виртуальных юзеров хранится физически с одним и тем же uid (в моем случае 47).

Еще в догонку. Поскольку аутентификация проходит уже успешно. Теперь очередь дебага процесса доступа к папкам и т.п.

в файле 10-logging.conf указать mail_debug = yes