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

Проблема с Dovecot

Добавлено: 2008-08-22 23:47:55
NickSmith
Поставил связку exim+dovecot+mysql по инструкции в стате http://www.lissyara.su/?id=1173. Почта заходила. В /var/mail/exim появилась папочка my.domen в которой папочки юзеров. Почта туда падает.
При попытки получить ее от туда батом по pop3 происходит облом. По imap я еще не пробовал.
В логе :
dovecot: Aug 23 00:09:36 Info: pop3-login: Disconnected (auth failed, 1 attempts): user=<aaa>, method=PLAIN, rip=9.11.8.22, lip=1.2.3.4
подконнектится телнетом
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK dovecot MUA ready
user aaa
+OK
pass bbbb
-ERR Authentication failed.
Connection closed by foreign host.
Все кругом обшарил но не нашел причин.
Даю условия задачи:
Система: FreeBSD mail.aol.spb.ru 7.0-RELEASE-p3 FreeBSD 7.0-RELEASE-p3 #1: Sat Aug 9 14:46:13 MSD 2008
Dovecot 1.1.2
dovecot.conf

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

base_dir = /var/run/dovecot/
protocols = imap pop3
listen = *
ssl_disable = yes
disable_plaintext_auth = no
shutdown_clients = yes
log_path = /var/log/dovecot.log
log_timestamp = "%b %d %H:%M:%S "
login_dir = /var/run/dovecot/login
login_chroot = yes
login_user = dovecot
login_process_size = 64
login_process_per_connection = yes
login_processes_count = 3
login_max_processes_count = 64
login_greeting = dovecot MUA ready
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
verbose_proctitle = yes
first_valid_uid = 25
first_valid_gid = 0
mail_access_groups = mailmull
mail_debug = yes
mail_location = maildir:/var/mail/exim/%d/%n
umask = 0077
protocol imap {
 imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
 pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
  postmaster_address = system@domen.ru
  auth_socket_path = /var/run/dovecot/auth-master
}
auth default {
  mechanisms = plain
   socket listen {
     master {
       path = /var/run/dovecot/auth-master
       mode = 0600
       user = mailnull
       #group = mail
     }
   }
 passdb sql {
    args = /usr/local/etc/dovecot-sql.conf
  }
userdb sql {
 args = /usr/local/etc/dovecot-sql.conf
  }
user = root
}
plugin {
}
Соответсвенно dovecot-sql.conf

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

driver = mysql
connect = host=localhost dbname=exim user=exim password=exim
default_pass_scheme = PLAIN
password_query = SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1'
user_query = SELECT `maildir` AS `home`, 26 AS `uid`, 26 AS `gid` FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1'
Буду очень презнателен за подсказки ибо у меня идеи кончились что копать..

Re: Проблема с Dovecot

Добавлено: 2008-08-23 0:36:23
NickSmith
Похоже делов кривом запросе из базы.. Щас прописал в качестве имени aaa@my.domen и все заработало...
Как жеолжен выглядеть этот запрос черт его побери???

Re: Проблема с Dovecot

Добавлено: 2008-08-23 15:08:21
lerryc
NickSmith писал(а):Похоже делов кривом запросе из базы.. Щас прописал в качестве имени aaa@my.domen и все заработало...
Как жеолжен выглядеть этот запрос черт его побери???

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

Соответсвенно dovecot-sql.conf

Код: Выделить всё
    driver = mysql
    connect = host=localhost dbname=exim user=exim password=exim
    default_pass_scheme = PLAIN
    password_query = SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1'
    user_query = SELECT `maildir` AS `home`, 26 AS `uid`, 26 AS `gid` FROM `mailbox` WHERE `username` = '%n@%d' AND `active`='1'


Буду очень презнателен за подсказки ибо у меня идеи кончились что копать..
WHERE `username` = '%n'
не пробовал?

Re: Проблема с Dovecot

Добавлено: 2008-08-23 15:58:40
NickSmith
lerryc писал(а):
WHERE `username` = '%n'
не пробовал?
Пробовал.
Вот что он пишет в логе:

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

dovecot: Aug 23 01:10:30 Info: auth-worker(default): sql(ааа,8.11.8.2): query: SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` = 'ааа@' AND `active`='1'
dovecot: Aug 23 01:10:30 Info: auth-worker(default): sql(ааа,8.11.8.2): unknown user
dovecot: Aug 23 01:10:30 Info: auth(default): new auth connection: pid=72710
dovecot: Aug 23 01:10:32 Info: auth(default): client out: FAIL  1       user=ааа
В базе у меня `username` сидит в виде username@my.domen. Я поковырялся с запросами. Такой запрос ничего не находит естественно. Если зделать запрос в виде : SELECT `username` as `user`, `password` FROM `mailbox` WHERE `username` LIKE 'ааа@' AND `active`='1' то тогда он находит. Но как я понимаю, в таком виде я лишаюсь возможности обслуживать несколко доменов.
В принципе меня это не очень напрягло. Я могу и username@my.domen для логина задать в клиентах. У меня их не очень много. Но Хочется добится, что бы по имени пользователя работало.
Ведь до этого поставил courier-imap. Там то это работало. Тут повелся на убеждения Лиса и решил пойти по пути Dovecot. Уже голова не соображает ничего от нескольких дней войны с почтой..
Каков же должен быть этот запрос в конфиге??Хочется победить..

Re: Проблема с Dovecot

Добавлено: 2008-08-24 17:49:18
Гость
У меня такая проблема была из-за того, что Postfixadmin писал в базу пароль хэшируя его в мд5. Я так понимаю, это опция по умолчанию идет в его новой версии... Отключил соответствующую опцию в ПФА, а пароль перебил ручками в базе на нехэшировынный - проблема исчезла...

Re: Проблема с Dovecot

Добавлено: 2008-08-25 0:53:18
NickSmith
Гость писал(а):У меня такая проблема была из-за того, что Postfixadmin писал в базу пароль хэшируя его в мд5. Я так понимаю, это опция по умолчанию идет в его новой версии... Отключил соответствующую опцию в ПФА, а пароль перебил ручками в базе на нехэшировынный - проблема исчезла...
У меня все стоит в "открытом" виде.
Помоему когда в PMA ты делаеш вставку в таблицу, там можно выбрать в каком виде она будет сделана.
А так я ящики завожу через PFA.
Там как я понимаю дело в запросе. Судя по логу. Башка уже совсем не варит. Щас приходится аж два сервера на exim переводить. Так что нет спокойного времени, что бы с этим покапатся...

Re: Проблема с Dovecot

Добавлено: 2008-08-26 10:33:28
gruy
Если хочешь обслуживать несколько доменов, то в любом случае придется у клиентов в качестве имени указывать user@domen, иначе при совпадении имени в разных доменах припроверке только имени что вернет запрос?

Также заметил, что Dovecot в процессе авторизации отбрасывал доменную часть от логина пользователя, поэтому при авторизации по двум sql запросам во втором подставлялось только имя без домена. Пришлось использовать prefetch в настройках и один запрос вместо двух.

Re: Проблема с Dovecot

Добавлено: 2008-08-26 15:51:16
NickSmith
Тут еще обнаружил, что перестали приходит системные сообщения. У меня раньше раз в сутки сваливался стандартный отчет на рута. Теперь тишина, хотя все алиасы я прописал...Почта на рута нормально проходит. Я не очень вникал где и как этот отчет формируется...
Кто нибудь знает что копать...???
P.S.
Так вроде связка exim+dovecot жужжит нормально, хотя только со временем будет ясно на сколько нормально...Прав был Лис, когда всех убеждал вместа курьера-имап втыкать довекот.. Оно дейсвтительно "сипатишней" выглядит и проблем меньше при настройке.
Теперь вот осталось определится с антиспам фильтром и будет полный шоколад...

Re: Проблема с Dovecot

Добавлено: 2008-08-26 16:13:48
gruy
logwatch?

Re: Проблема с Dovecot

Добавлено: 2008-08-26 20:53:10
NickSmith
Еще до детального изучения руки не дошли..Я щас озабочен прикручиванием dspam а к системе...
Как я понимаю, системные сообщения отсылают переодические процессы.. Я пробежася по скриптам, но особо не нашел, как там выглядит отправка отчета на рута...Или я не в ту сторону копаю...