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

dovecot, етить его..

Добавлено: 2006-07-30 10:06:52
grave
Ребят, проблема с dovecot, может подскажите где затык..
структура таблицы users бд mysql:

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

 
username    domain                 password                      maildir                quota       gid uid   
    test      xxxxxxx.xx   $1$tyTgp8vM$HfdvX1v5St   xxxxxxx.xx/test      50000000   89   89  

dovecot.conf:

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

protocols = pop3 
disable_plaintext_auth = no 
ssl_disable = yes 
login_dir = /var/run/dovecot/login 
login_user = dovecot 
mail_extra_groups = vchkpw 
mmap_disable = yes 
first_valid_uid = 89 
first_valid_gid = 89 
valid_chroot_dirs = /usr/home/vpopmail/ 
protocol pop3 { 
  login_executable = /usr/local/libexec/dovecot/pop3-login 
  mail_executable = /usr/local/libexec/dovecot/pop3 
  pop3_uidl_format = %08Xu%08Xv 
} 
auth_verbose = yes 
auth_debug = yes 
auth default { 
  mechanisms = plain 
  passdb sql { 
  args = /usr/local/etc/dovecot-sql.conf 
  } 
  userdb sql { 
  args = /usr/local/etc/dovecot-sql.conf 
  } 
} 

dovecot-sql.conf:

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

driver = mysql 
connect = host=xx.xx.xx.xx dbname=maildb user=sqluser password=xxxxx 
default_pass_scheme = CRYPT 
password_query = SELECT password FROM users WHERE username = '%u' 
user_query = SELECT CONCAT("/usr/home/vpopmail/domains/", maildir), uid, gid FROM users WHERE username = '%u' 

при тестовом подключении в логе такая пурга:

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

Jul 30 01:09:22 smtp1 dovecot: auth(default): client in: AUTH   1       PLAIN   service=POP3    lip=xx.xx.xx.xx 
rip=xx.xx.xx.xx       resp=<hidden> 
Jul 30 01:09:22 smtp1 dovecot: auth-worker(default): sql(test,xx.xx.xx.xx): query: SELECT password FROM users WHERE username = 'test' 
Jul 30 01:09:22 smtp1 dovecot: auth(default): client out: OK    1       user=test 
Jul 30 01:09:22 smtp1 dovecot: auth(default): master in: REQUEST        1       61432   1 
Jul 30 01:09:22 smtp1 dovecot: auth-worker(default): sql(test,xx.xx.xx.xx): SELECT CONCAT("/usr/home/vpopmail/domains/", maildir), uid, gid FROM users WHERE username = 'test' 
Jul 30 01:09:22 smtp1 dovecot: auth(default): master out: USER  1       test        CONCAT("/usr/home/vpopmail/domains/", maildir)=/usr/home/vpopmail/domains/xxxxxxx.xx/test   uid=89  gid=89 
Jul 30 01:09:22 smtp1 dovecot: pop3-login: Login: user=<test>, method=PLAIN, rip=xx.xx.xx.xx, lip=xx.xx.xx.xx 
Jul 30 01:09:22 smtp1 dovecot: POP3(tetst): mbox: Can't create root IMAP folder /mail: Permission denied 
Jul 30 01:09:22 smtp1 dovecot: POP3(test): MAIL environment missing and autodetection failed (home ) 
Jul 30 01:09:22 smtp1 dovecot: child 61438 (pop3) returned error 89 

при чем, если прописать
default_mail_env = maildir:/usr/home/vpopmail/domains
в указанной директории создаются папки cur, new, tmp и все пашет..
система нормально работает с курьером, решил попробовать перейти на dovecot - не получилось %)

Добавлено: 2006-07-30 11:29:28
Alex Keda

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

Jul 30 01:09:22 smtp1 dovecot: POP3(tetst): mbox: Can't create root IMAP folder /mail: Permission denied
это чё такое? где у тя такое?
и поделись сокровенным знанием, почему у тебя в БД "test" а логинишься ты как "tetst"?

Добавлено: 2006-07-30 12:13:05
grave
lissyara писал(а):

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

Jul 30 01:09:22 smtp1 dovecot: POP3(tetst): mbox: Can't create root IMAP folder /mail: Permission denied
это чё такое? где у тя такое?
и поделись сокровенным знанием, почему у тебя в БД "test" а логинишься ты как "tetst"?
банальная опечатка в листинге лога.. %)
если бы я знал.. имап же в конфиге полностью отключен

Добавлено: 2006-08-02 16:00:06
grave
короче сырой он еще.. для работы приходится бд под него настраивать, а не наоборот.. а это не есть гуд..

Добавлено: 2006-08-02 16:36:20
Alex Keda
grave писал(а):короче сырой он еще.. для работы приходится бд под него настраивать, а не наоборот.. а это не есть гуд..
в смысле?

Добавлено: 2006-08-02 22:45:50
Din
С довекотом ещё есть такая трабла - нехочет из MySQL шифрованный пароль вытягивать, может подскажете как с этим бороться ?

# Таблица пользователей users,
CREATE TABLE users (
login varchar(64) NOT NULL default '',
name varchar(128) NOT NULL default '',
password varchar(64) NOT NULL default '',
decrypt varchar(64) NOT NULL default '',
uid int(10) unsigned default '1003',
gid int(10) unsigned default '6',
domain varchar(128) NOT NULL default 'mydomain.ru',
quota tinyint(4) default '0',
status enum('0','1') default '1',
PRIMARY KEY (login,domain)

Вытягивает пароль из password если в Bat забить уже шифрованый пароль, а если в нешифрованом decrypt виде то ругается на ошибку аутенфикации, брать пароль из поля decrypt отказывается :(

PS конфиг довекот-sql мэйд ин Лисяра )

Добавлено: 2006-08-03 5:27:15
grave
Din писал(а):С довекотом ещё есть такая трабла - нехочет из MySQL шифрованный пароль вытягивать, может подскажете как с этим бороться ?

# Таблица пользователей users,
CREATE TABLE users (
login varchar(64) NOT NULL default '',
name varchar(128) NOT NULL default '',
password varchar(64) NOT NULL default '',
decrypt varchar(64) NOT NULL default '',
uid int(10) unsigned default '1003',
gid int(10) unsigned default '6',
domain varchar(128) NOT NULL default 'mydomain.ru',
quota tinyint(4) default '0',
status enum('0','1') default '1',
PRIMARY KEY (login,domain)

Вытягивает пароль из password если в Bat забить уже шифрованый пароль, а если в нешифрованом decrypt виде то ругается на ошибку аутенфикации, брать пароль из поля decrypt отказывается :(

PS конфиг довекот-sql мэйд ин Лисяра )
попробуй прописать в dovecot-sql.conf
default_pass_scheme = CRYPT

Добавлено: 2006-08-03 8:32:18
Alex Keda
господа, это неоднократно говорилось, но повторю ещё раз - Bat использует Cram-md5 ацтентификацию - а она в принципе не может работать если на сервере пароли зашифрованы. Единственный вариант - зашифровать их на сервере такимже алгоритмом, но не факт что прокатит, и непонятно как всему остальному этим работать...

Добавлено: 2006-08-03 9:56:56
Din
2 grave - default_pass_scheme = CRYPT прописано
2 lissyara - с аутлуком такаяже петрушка

на офф сайте довекота есть такое вот мнение - http://wiki.dovecot.org/MysqlProblems
Multiple definition of sha1_result

Quick solution: Change all sha1_result functions in Dovecot source tree to dovecot_sha1_result or something. For example:

cd dovecot
perl -i -pe 's/sha1_result/dovecot_sha1_result/' `find . -name '*.[ch]'`
Я пробовал и либо не помогает либо чтото я напутал :(

Собственно даже из комм строки тоже самое
это нешифрованный пароль :
  • [din@poligon ~]$ telnet localhost 110
    Trying ::1...
    Trying 10.16.80.213...
    Connected to localhost.
    Escape character is '^]'.
    +OK dovecot MUA ready
    user admin@bsd.poligon.din
    +OK
    pass qwe
    -ERR Authentication failed.
а это вытянутый из мускуля шифрованый
  • din@poligon ~]$ telnet localhost 110
    Trying ::1...
    Trying 10.16.80.213...
    Connected to localhost.
    Escape character is '^]'.
    +OK dovecot MUA ready
    user admin@bsd.poligon.din
    +OK
    pass Xz6D4PFzLehIQ
    +OK Logged in.

Добавлено: 2006-08-03 10:57:18
Alex Keda
запросы к БД идут?
Включи тладку, в логах чё?

Добавлено: 2006-08-03 11:06:56
Din
maillog
Aug 3 11:01:22 poligon dovecot: auth-worker(default): mysql: Connected to localhost (exim)
Aug 3 11:01:22 poligon dovecot: auth-worker(default): sql(admin@bsd.poligon.din,10.16.80.213): query: SELECT password FROM users WHERE login = 'admin' AND domain = 'bsd.poligon.din' AND status = '1'
Aug 3 11:01:22 poligon dovecot: auth-worker(default): sql(admin@bsd.poligon.din,10.16.80.213): Password mismatch
Aug 3 11:01:24 poligon dovecot: auth(default): client out: FAIL 1 user=admin@bsd.poligon.din
Aug 3 11:02:22 poligon dovecot: pop3-login: Disconnected: Inactivity: user=<admin@bsd.poligon.din>, method=PLAIN, rip=10.16.80.213, lip=10.16.80.213, secured
Aug 3 11:02:42 poligon dovecot: auth(default): client in: AUTH 1 PLAIN service=POP3 secured lip=10.16.80.213 rip=10.16.80.213 resp=<hidden>
Aug 3 11:02:42 poligon dovecot: auth-worker(default): sql(admin@bsd.poligon.din,10.16.80.213): query: SELECT password FROM users WHERE login = 'admin' AND domain = 'bsd.poligon.din' AND status = '1'
Aug 3 11:02:42 poligon dovecot: auth(default): client out: OK 1 user=admin@bsd.poligon.din
Aug 3 11:02:42 poligon dovecot: auth(default): master in: REQUEST 3 905 1
Aug 3 11:02:42 poligon dovecot: auth-worker(default): sql(admin@bsd.poligon.din,10.16.80.213): SELECT uid, gid FROM users WHERE login = 'admin' AND domain = 'bsd.poligon.din'
Aug 3 11:02:42 poligon dovecot: Logins with login process UID 1003 (user admin@bsd.poligon.din) not permitted (see login_user in config file).
Aug 3 11:02:42 poligon dovecot: auth(default): master out: USER 3 admin@bsd.poligon.din uid=1003 gid=6
Aug 3 11:02:42 poligon dovecot: pop3-login: Login: user=<admin@bsd.poligon.din>, method=PLAIN, rip=10.16.80.213, lip=10.16.80.213, secured
PS как сделать чтоб не цитатой выделять а как у Вас в постах выше ?

Добавлено: 2006-08-03 11:09:33
trubb
кнопа code :D

Добавлено: 2006-08-03 11:16:41
Alex Keda
запросы руками проваодил? идут, возвращают то что надо?

Добавлено: 2006-08-03 11:26:37
Din
Насколько я понимаю, да

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

mysql> USE exim;
Database changed
mysql> SELECT password FROM users WHERE login = 'admin' AND domain = 'bsd.poligon.din' AND status = '1';
+---------------+
| password      |
+---------------+
| Xz6D4PFzLehIQ | 
+---------------+
1 row in set (0.00 sec)