Dovecot, Exim и AD2003 проблема авторизации.

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
StarЫЙ
рядовой
Сообщения: 44
Зарегистрирован: 2008-03-24 8:33:27
Контактная информация:

Dovecot, Exim и AD2003 проблема авторизации.

Непрочитанное сообщение StarЫЙ » 2010-03-29 9:49:05

Добрый денек,

Пытаюсь насторить почтовик по статье http://root.ua/materialy/stati/full/art ... d/507.html, в принципе настроил SMTP письма приходят раскладываются по папкам, как положено, но проблема в том что не могу забрать, ни по IMAP ни по POP. В логах выдается такое.

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

 Mar 29 14:44:15 dovecot: Error: Relative home directory paths not supported (user TestuseR): TestuseR@my-mail-domain.ru 

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

Mar 29 14:43:07 auth(default): Info: new auth connection: pid=48395
Mar 29 14:44:15 auth(default): Info: client in: AUTH    1       PLAIN   service=pop3    lip=192.168.1.24      rip=192.168.1.23      lport=110       rport=56613   resp=AGFtZXJraGFub3ZyAFN0YXIyMjY3NjI0
Mar 29 14:44:15 auth(default): Info: ldap(TestuseR,192.168.1.23): bind search: base=OU=Employes,DC=mylocaldomain,DC=ru filter=(&(objectClass=user)(objectClass=person(sAMAccountName=testuser) badPasswordTime=*))
Mar 29 14:44:15 auth(default): Info: auth(testuser,192.168.1.23): username changed testuser -> TestuseR
Mar 29 14:44:15 auth(default): Info: ldap(TestuseR,192.168.1.23): result: sAMAccountName(user)=TestuseR
Mar 29 14:44:15 auth(default): Info: client out: OK     1       user=TestuseR
на всякий случай листинги dovecot, уже парюсь с неделю думаю, что где-то рядом, но никак не увижу.

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

cat dovecot.conf

first_valid_uid = 1006
last_valid_uid = 1006
first_valid_gid = 1006
last_valid_gid = 1006
mail_uid=1006
mail_gid=1006
mail_privileged_group = mail

protocols = imap pop3 pop3s imaps 
protocol imap  {
    listen=192.168.1.24:143
    ssl_listen=192.168.1.24:993
}

protocol pop3  {
    listen=192.168.1.24:110
    ssl_listen=192.168.1.24:995
} 

ssl_cert_file=/usr/local/etc/exim/ssl/eximcert.crt
ssl_key_file=/usr/local/etc/exim/ssl/eximcert.key

ssl = yes
mail_location=maildir:/var/mail/virtual/%h
valid_chroot_dirs=/var/mail/virtual

disable_plaintext_auth=yes

shutdown_clients = yes 

max_mail_processes = 512

mail_process_size = 25 

mail_debug = yes

verbose_proctitle = yes
auth_debug = yes
auth_debug_passwords = yes
auth_verbose = yes
verbose_ssl = no 

base_dir = /var/run/dovecot/ 

log_path=/var/log/dovecot.log
info_log_path=/var/log/dovecot-info.log
syslog_facility=mail
mail_log_prefix="%Us(%u):"
mail_log_max_lines_per_sec=10
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s 

ssl_verify_client_cert = no
ssl_parameters_regenerate = 0 

login_dir = /var/run/dovecot/login
login_user = dovecot

login_process_size = 30

login_process_per_connection = yes

login_processes_count = 10
login_max_processes_count = 90

login_max_connections = 180

login_greeting = Hello users
login_chroot = yes 

namespace private {
    separator=/
    prefix=
    inbox=yes
} 

namespace public {
    separator = /
    prefix = Folders/
    location = maildir:/var/mail/virtual/%h/Folders
    hidden = no
    inbox = no
}

mail_full_filesystem_access = no
mmap_disable = yes
fsync_disable = yes
lock_method = fcntl
mail_drop_priv_before_exec = yes

mail_cache_min_mail_count = 0

mailbox_idle_check_interval = 60
mail_save_crlf = no

maildir_stat_dirs = no
dotlock_use_excl=no
maildir_copy_with_hardlinks = yes
maildir_copy_preserve_filename = yes 

protocol imap {
  login_executable = /usr/local/libexec/dovecot/imap-login
  imap_max_line_length = 65536
  mail_max_userip_connections = 3
  imap_logout_format = bytes=%i/%o
  mail_executable = /usr/local/libexec/dovecot/imap   
  mail_plugin_dir = /usr/local/lib/dovecot/imap
  imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}

 protocol pop3 {
  login_executable = /usr/local/libexec/dovecot/pop3-login
  mail_executable = /usr/local/libexec/dovecot/pop3
  pop3_no_flag_updates = no
  pop3_enable_last = no
  pop3_reuse_xuidl = no
  pop3_lock_session = no
  pop3_uidl_format = %08Xu%08Xv
  mail_max_userip_connections = 3
  pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, in/out=%i/%o
  mail_plugin_dir = /usr/local/lib/dovecot/pop3
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
} 

protocol lda {
  postmaster_address = postmaster@my-maildomain.ru
  hostname = mail.my-maildomain.ru
  mail_plugin_dir = /usr/local/lib/dovecot/lda
  sendmail_path = /usr/local/sbin/exim
  auth_socket_path = /var/run/dovecot/auth-master
  quota_full_tempfail = yes
  deliver_log_format = msgid=%m, from=%f, status=%$
  sendmail_path = /usr/local/sbin/exim
  rejection_subject = Automatically rejected mail
  rejection_reason = Your message to <%t> was automatically rejected:%n%r
} 
auth_executable = /usr/local/libexec/dovecot/dovecot-auth

auth_process_size = 50

auth_cache_size = 0
auth_cache_ttl = 3600
auth_cache_negative_ttl = 0

auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

auth_username_format =%u
auth_worker_max_count = 30
auth_failure_delay = 10 

auth default { 

    mechanisms = plain login

    passdb ldap {
args = /usr/local/etc/dovecot-ldap.conf
    }
    userdb ldap {
args = /usr/local/etc/dovecot-ldap.conf
    } 

    socket listen {
client {
      path=/var/run/dovecot/auth-client
      mode=0666
      user=mailnull
      group=mail
}

  master {
      path=/var/run/dovecot/auth-master
      mode=0600
      user=mailnull
      group=mail
}
    }
}

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

cat dovecot-ldap.conf 

hosts= 192.168.1.21:389
ldap_version = 3 
debug_level = 0
auth_bind= yes 
dn= CN=Exim,OU=Employes,DC=mylocaldomain,DC=ru 
dnpass= Password
base= OU=Employes,DC=mylocaldomain,DC=ru  
deref=searching
scope=subtree 
user_attrs= mail=home
user_filter= (&(objectClass=user)(objectClass=person)(sAMAccountName=%u)(badPasswordTime=*)) 
pass_attrs=sAMAccountName=user
pass_filter = (&(objectClass=user)(objectClass=person)(sAMAccountName=%u)(badPasswordTime=*)) 
Заранее благодарен, за любую помощь.

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

Аватара пользователя
skeletor
майор
Сообщения: 2534
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: Dovecot, Exim и AD2003 проблема авторизации.

Непрочитанное сообщение skeletor » 2010-03-29 11:53:50

Вместо строки в dovecot.conf

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

mail_location = maildir:/var/mail/virtual/%h 
нужно писать

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

mail_location = maildir:%h 
а так же в файле dovecot-sql.conf (пишу пример для mysql, как в ldap'e - я не знаю, но думаю суть вы поняли) вместо строки

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

user_query = SELECT maildir AS home, uid, gid FROM users WHERE address = '%n@%d'
пишем такую:

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

user_query = SELECT CONCAT('/var/mail/virtual/',maildir) AS home, uid, gid FROM users WHERE address = '%n@%d'
Может как-то так:

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

user_attrs=sAMAccountName=mail=maildir:/var/mail/virtual/%$
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
StarЫЙ
рядовой
Сообщения: 44
Зарегистрирован: 2008-03-24 8:33:27
Контактная информация:

Re: Dovecot, Exim и AD2003 проблема авторизации.

Непрочитанное сообщение StarЫЙ » 2010-03-29 13:54:29

Спасибо за помощь идею понял. Сделал доводку, все пошло.
Парился неделю с этой проблемой большое спасибки.