smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Всем привет.
Поставил Exim + Dovecot по статье Лиса http://www.lissyara.su/?id=1173
Столкнулся с проблемой, пароли пользователей хранятся в базе созданной postfixadmin криптованы md5crypt. Exim не понимает этот алгоритм и не может авторизовать пользователей... Ставил перед `password` = MD5(' ') в SQL запросе, не помогло. Подскажите как победить?
Поставил Exim + Dovecot по статье Лиса http://www.lissyara.su/?id=1173
Столкнулся с проблемой, пароли пользователей хранятся в базе созданной postfixadmin криптованы md5crypt. Exim не понимает этот алгоритм и не может авторизовать пользователей... Ставил перед `password` = MD5(' ') в SQL запросе, не помогло. Подскажите как победить?
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Возможно что-нибудь из этого можно использовать http://dev.mysql.com/doc/refman/5.1/en/ ... tions.html Для составления корректного запроса?
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Как вариант перенастроить режим аутентфикации пользователей, и завернуть это дело на Dovecot. Он умеет md5-crypt.
В камментах к статье было:
В камментах к статье было:
ну а там допилить под себя!Tech, 2008-08-06 в 12:23:09
Хотел на FreeBSD 7 поднять все это дело, но не сложилось с рейдом: адаптековский asr падал поcтоянно, аналогично как и gmirror. Времени думать долго не было и пришлось лепить с г..на конфту (железо старое) в ускоренном темпе. Поставил Debian etch - и сконфигуировал там md. Пока вроде держится. Но я не об этом...
Поскольку постфиксадмин хранить данные в $CONF['encrypt'] = 'md5crypt'; а хранить в открытом виде как бы не особо и хотелось бы, плюс ко всему проверка логина/пароля на поп3 идет через dovecot, то почему бы не попользоваться им и для smtp auth ?
вот что получается у меня.
postfixadmin/config.inc.php
...
$CONF['encrypt'] = 'md5crypt';
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
/etc/dovecot/dovecot-sql.conf
...
default_pass_scheme = MD5
password_query = SELECT `username` as `user`,`password` FROM `mailbox` WHERE `username`='%n@%d' AND `active`='1'
user_query = SELECT `maildir` AS `home`, 102 AS `uid`, 104 AS `gid` FROM `mailbox` WHERE `username`='%n@%d' AND `active`='1'
102,104 - это дефолтный дебиановские Debian-exim. решил поставить их т.к. после апдейта или других манипуляций оно все права на спул и логи exim'a ставит в Debian-exim, вобщем не удобно что-то другое ставить.
соответсвенно, меняем чуток /etc/dovecot/dovecot.conf
...
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = Debian-exim
#group = Debian-exim
}
client {
path = /var/run/dovecot/auth-client
mode = 0660
user = Debian-exim
#group = Debian-exim
}
}
ну и exim4.conf:
exim_user = Debian-exim
exim_group = Debian-exim
...
dovecot_delivery:
driver = pipe
command = /usr/lib/dovecot/deliver -d $local_part@$domain
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
user = Debian-exim
...
auth_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
auth_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
отмечу также что для нормальной работы dovecot_delivery мне пришлось на dovecot.conf и dovecot-sql.conf поставить группой Debian-exim и дать право на чтение, а то по-дефолту шло -rw-----— 1 root root и доставка не работала а в логе exim'a шли матюки на пермишены файла dovecot.conf
Также нужно поставить права на mail_location как Debian-exim:Debian-exim ну или какие там у вас узеры и группы.
Надеюсь, кому-то это будет полезным. Если что не так (может где глупости делаю) - поправьте меня плиз.
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Прописал dovecot для авторизации в Exim и, вот что он мне написал:
При этом права на сокет у Exim есть.
Код: Выделить всё
auth_plain authenticator failed for () [192.168.1.7]: 435 Unable to authenticate at present: authentication socket protocol error
2009-08-11 16:14:42 auth_login authenticator failed for () [192.168.1.7]: 435 Unable to authenticate at present: authentication socket protocol error
2009-08-11 16:14:42 H=() [192.168.1.7] F=<igor@> rejected RCPT <vasia>: relay not permitted
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
а почему доменной части у отправителя пусто?
dovecot.conf допиливал?
dovecot.conf допиливал?
-
- проходил мимо
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Я, удалил доменную часть . Ошибка остаётся =(
- Morty
- ст. лейтенант
- Сообщения: 1370
- Зарегистрирован: 2007-07-17 23:25:12
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
есть вот такая штука
http://wiki.dovecot.org/DomainLost
http://wiki.dovecot.org/DomainLost
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Выложи конфигу dovecot и dovecot-sql. Посмотрим. Тока без камментов, желательно
Или verbose в dovecot и логи сюда!
Или verbose в dovecot и логи сюда!
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
да и там в dovecot-sql.conf ошибочка:
вместо:
нужно:
вместо:
Код: Выделить всё
default_pass_scheme = MD5
Код: Выделить всё
default_pass_scheme = MD5-CRYPT
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Вот как просили конфиг Dovecot:
Вот конфиг dovecot-sql.conf
Код: Выделить всё
base_dir = /var/run/dovecot/
protocols = imap imaps
# protocol imap {
# listen = *:10143
# ssl_listen = *:10943
# ..
# }
# protocol pop3 {
# listen = *:10100
# ..
# }
listen = *
disable_plaintext_auth = no
shutdown_clients = yes
log_path = /var/log/dovecot/dovecot.log
info_log_path = /var/log/dovecot/dovecot1.log
log_timestamp = "%b %d %H:%M:%S "
ssl_disable = yes
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 = 128
login_max_connections = 256
login_greeting = Hi.
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
mail_location = maildir:/usr/spool/virtual/%Lu
mail_uid = 26
mail_gid = 6
mail_privileged_group = mail
mail_access_groups = mailnull
mail_debug = yes
mail_log_prefix = "%Us(%u): "
mail_log_max_lines_per_sec = 10
mmap_disable = yes
dotlock_use_excl = yes
mail_nfs_storage = no
mail_nfs_index = no
lock_method = fcntl
verbose_proctitle = yes
first_valid_uid = 0
last_valid_uid = 0
first_valid_gid = 0
last_valid_gid = 0
max_mail_processes = 512
mail_process_size = 256
mail_cache_min_mail_count = 0
mailbox_idle_check_interval = 30
mail_save_crlf = no
maildir_stat_dirs = no
maildir_copy_with_hardlinks = yes
mbox_lock_timeout = 300
mbox_dotlock_change_timeout = 120
mbox_dirty_syncs = yes
mbox_very_dirty_syncs = yes
## IMAP specific settings
protocol imap {
login_executable = /usr/local/libexec/dovecot/imap-login
login_greeting_capability = yes
imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep outlook-idle
}
## LDA specific settings
protocol lda {
postmaster_address = postmaster@mail.....
auth_socket_path = /var/run/dovecot/auth-master
}
## Authentication processes
auth_executable = /usr/local/libexec/dovecot/dovecot-auth
auth_process_size = 256
auth_username_format = %Lu
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth_failure_delay = 5
auth default {
mechanisms = plain login cram-md5
passdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
userdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
user = root
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = mailnull
group = mail
mode = 0660
}
client {
path = /var/run/dovecot/auth-client
user = mailnull
group = mail
mode = 0660
}
}
}
Код: Выделить всё
driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=postfix
default_pass_scheme = MD5
user_query = SELECT username, 'home:/usr/spool/virtual/%Lu' FROM mailbox WHERE username = '%Lu' AND active = 1;
password_query = SELECT password, 'home:/usr/spool/virtual/%Lu' FROM mailbox WHERE username = '%Lu' AND active = 1;
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
В конфиге прописано так же как и в рекомендации здесь http://wiki.dovecot.org/HowTo/EximAndDovecotSASL
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
поправь!CaBa писал(а):да и там в dovecot-sql.conf ошибочка:
вместо:нужно:Код: Выделить всё
default_pass_scheme = MD5
Код: Выделить всё
default_pass_scheme = MD5-CRYPT
и тут второй mode лишний
Код: Выделить всё
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = mailnull
group = mail
mode = 0660
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Ну и ещё:
подкрути до нужного:
Код: Выделить всё
protocols = imap imaps
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Поправил, но ошибка сохранилась =(
Вот что пишет Dovecot в лог при попытке отправить письмо:
P.S. Доменную часть удалил в ручную.
Вот что пишет Dovecot в лог при попытке отправить письмо:
Код: Выделить всё
dovecot: Aug 12 12:10:50 Info: auth(default): new auth connection: pid=3782
dovecot: Aug 12 12:10:50 Info: auth(default): client in: AUTH 20 PLAIN service=smtp rip=192.168.1.7 lip=192.168.1.120 resp=
dovecot: Aug 12 12:10:50 Info: auth(default): client out: CONT 20
dovecot: Aug 12 12:10:50 Info: auth(default): client in: CONT 20 AGlnb3JAbWFpbC5laXMucnUAQVJCbnJVM1g=
dovecot: Aug 12 12:10:50 Info: auth-worker(default): sql(igor@mail,192.168.1.7): query: SELECT password, 'home:/usr/spool/virtual/igor@mail' FROM mailbox WHERE username = 'igor@mail' AND active = 1;
dovecot: Aug 12 12:10:50 Info: auth(default): client out: OK 20 user=igor@mail home:/usr/spool/virtual/igor@mail=home:/usr/spool/virtual/igor@mail
dovecot: Aug 12 12:10:50 Info: auth(default): new auth connection: pid=3782
dovecot: Aug 12 12:10:50 Info: auth(default): client in: AUTH 21 LOGIN service=smtp rip=192.168.1.7 lip=192.168.1.120 resp=
dovecot: Aug 12 12:10:50 Info: auth(default): client out: CONT 21 VXNlcm5hbWU6
dovecot: Aug 12 12:10:50 Info: auth(default): client in: CONT 21 aWdvckBtYWlsLmVpcy5ydQ==
dovecot: Aug 12 12:10:50 Info: auth(default): client out: CONT 21 UGFzc3dvcmQ6
dovecot: Aug 12 12:10:50 Info: auth(default): client in: CONT 21 QVJCbnJVM1g=
dovecot: Aug 12 12:10:50 Info: auth-worker(default): sql(igor@mail,192.168.1.7): query: SELECT password, 'home:/usr/spool/virtual/igor@mail' FROM mailbox WHERE username = 'igor@mail' AND active = 1;
dovecot: Aug 12 12:10:50 Info: auth(default): client out: OK 21 user=igor@mail home:/usr/spool/virtual/igor@mail.eis.ru=home:/usr/spool/virtual/igor@mail
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Что-то я затупил и недосмотрел! А Dovecot-sql не из статьи вроде?
вот мой:
у тебя с запросом напартачено
вот мой:
Код: Выделить всё
driver = mysql
connect = host=localhost dbname=exim user=***** password=*****
default_pass_scheme = MD5-CRYPT
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'
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Или у тебя гибрид ёжика с бегемотом? И ты пытаешься брать пользователей из файла, а пароли из базы?
Что-то в общем какое отступление от статьи... И тогда не совсем понятно, что за схема у тебя.
Что-то в общем какое отступление от статьи... И тогда не совсем понятно, что за схема у тебя.
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Спасибо тебе огромное!!! Теперь вспоминаю, как сам составлял запросы к сиквелу а не из статьи брал
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
Незачто ! Да и лучше всё-таки сделать SSL ! Оно правильнее ИМХО. Да и сертификаты в общем то, можно нахаляву раздобыть.
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
SSL сделать в планах... А где можно на халяву раздобыть?
-
- ефрейтор
- Сообщения: 55
- Зарегистрирован: 2008-12-15 14:16:36
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
А всё таки аунтификация cram-md5 при хранение паролей хешированых md5-crypt возможна через dovecot?
-
- мл. сержант
- Сообщения: 72
- Зарегистрирован: 2009-06-10 22:10:03
Re: smtp auth Exim, Dovecot, MySQL (пароли в md5crypt)
ХЗ где ещё, но я делал на StarSSL.com. Он правда на каждый хост отдельно, зато любимая халява
По поводу cram-md5 - ХЗ это летучий мышь так авторизуется, а у меня его нету :-).
Мож кто из обладателей подскажет.
По поводу cram-md5 - ХЗ это летучий мышь так авторизуется, а у меня его нету :-).
Мож кто из обладателей подскажет.