Код: Выделить всё
OS FreeBSD6.4-STABLE
Exim 4.72
Mysql 5.1.44
Vexim 2.2.1
Dovecot 1.2.11
Код: Выделить всё
Dovecot : dovecot.conf
# Каталог для хранения рабочих данных
base_dir = /var/run/dovecot/
# Протоколы, которые будем поддерживать
protocols = imap pop3 imaps pop3s
# Адреса, которые будем слушать, мы слушаем все
listen = *
# Отключать ли авторизацию без SSL
disable_plaintext_auth = no
# Сбрасывать ли клиентские подключения при остановке главного процесса.
# Теоретически с этой опцией можно апгрейдить довкот на ходу
shutdown_clients = no
# Лог-файл для ошибок
log_path = /var/log/dovecot.log
# Лог-файл для остального
info_log_path = /var/log/dovecot-info.log
# На каких адресах ждать соединений с SSL, нам надо на всех
ssl_listen = *
# Включаем SSL
ssl = yes
# Файлы ключа и сертификата SSL
ssl_cert_file = /etc/ssl/certs/mail.pem
ssl_key_file = /etc/ssl/certs/mail.pem
# Каталог, где довкот держит сокеты для логин-процессов
login_dir = /var/run/dovecot/login
# Делать ли chroot для логин-процессов
login_chroot = yes
# Пользователь, под которым запускать логин-процессы. НЕ должен совпадать с тем, под которым работает почтовый сервер
login_user = dovecot
# Надо ли для каждой попытки логина запускать новый процесс
#login_process_per_connection = no
# Приветственное сообщение для клиентов, не будем палиться :-) )
login_greeting = Microsoft POP3 server
# Место и формат хранения пользовательской почты. У нас - Maildir
mail_location = maildir:/usr/local/mail/%d/%n
# Пользователь и группа, под которыми работаем с почтой
mail_uid = exim
mail_gid = mail
# "Привелигированная группа" для доступа к письмам. У нас и так основная - mail, но пусть будет
mail_privileged_group = mail
# Если что - тут включается дебаг
mail_debug = no
# Показывать в top и ps более подробные данные о процессах
verbose_proctitle = yes
# Ограничиваем UID/GID, которым с нами можно вообще работать
first_valid_uid = 500
last_valid_uid = 0
first_valid_gid = 0
last_valid_gid = 0
# Каталоги, куда можно делать chroot
valid_chroot_dirs = /var/mail
protocol imap {
# Исправление известных глюков с почтовыми клиентами
imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
# Поддерживать ли команду LAST из ранних спецификаций POP3
#pop3_enable_last = no
# Лочить ли ящик на время сессии
#pop3_lock_session = no
# Формат POP3 UIDL идентификатора
pop3_uidl_format = %08Xu%08Xv
# Формат POP3 logout сообщения:
#pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
# Исправление известных глюков с почтовыми клиентами
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
# Допустимые символы в логине
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
# Логгирование безуспешных попыток входа с причинами
auth_verbose = yes
# Дебаг авторизации
auth_debug = yes
# Если пароль не подходит, записать его в лог
auth_debug_passwords = yes
auth default {
# Список желаемых механизмов авторизации. Допускаются:
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey gss-spnego
mechanisms = plain login cram-md5
# База откуда брать пароли
passdb sql {
# Путь к файлу конфигурации SQL
args = /usr/local/etc/dovecot-sql.conf
}
# База откуда брать пользовательские данные (путь, uid/gid и т.д.)
userdb sql {
# Путь к файлу конфигурации SQL
args = /usr/local/etc/dovecot-sql.conf
}
# Пользователь, под которым проводить авторизацию. По возможности - не root
user = exim
}
Код: Выделить всё
dovecot-sql.conf
# Тип SQL-сервера
driver = mysql
# Параметры соединения с SQL
connect = host=localhost user=vexim password=password dbname=vexim
# Схема хранения паролей
default_pass_scheme = PLAIN-MD5
# Запросы для извлечения данных из БД
password_query = SELECT users.crypt as `password` FROM users,domains WHERE users.username = '%u' AND users.enabled = '1' AND users.type='local' and domains.e
user_query = SELECT pop as home, uid, gid FROM users WHERE username = '%u'
Код: Выделить всё
Exim authenticators.conf
plain_login:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{SELECT '1' FROM users \
WHERE username = '${quote_mysql:$2}' \
AND clear = '${quote_mysql:$3}'} {yes}{no}}
server_set_id = $2
fixed_login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = ${lookup mysql{SELECT '1' FROM users \
WHERE username = '${quote_mysql:$1}' \
AND clear = '${quote_mysql:$2}'} {yes}{no}}
server_set_id = $1
fixed_cram:
driver = cram_md5
public_name = CRAM-MD5
server_secret = ${lookup mysql{SELECT clear FROM users \
WHERE username = '${quote_mysql:$1}'}{$value}fail}
server_set_id = $1
Код: Выделить всё
Vexim variables.php
/* Set to either "des" or "md5" depending on your crypt() libraries */
$cryptscheme = "md5";
Код: Выделить всё
Jun 24 22:27:11 auth(default): Info: client in: AUTH 1 PLAIN service=pop3 lip=1.1.1.1 rip=2.2.2.2 lport=110 rport=4622 resp=AGFkbWluQHByb2Zlc3Npb25hbC5regAyMzZ3cWRic2Q=
Jun 24 22:27:11 auth-worker(default): Info: sql(user@domain.tld,2.2.2.2): query: SELECT users.crypt as `password` FROM users,domains WHERE users.username = 'user@domain.tld' AND users.enabled = '1' AND users.type='local' and domains.enabled='1' and domains.domain_id = users.domain_id
Jun 24 22:27:11 auth(default): Info: client out: OK 1 user=user@domain.tld
Jun 24 22:27:11 auth(default): Info: master in: REQUEST 1 10376 1
Jun 24 22:27:11 auth-worker(default): Info: sql(user@domain.tld,2.2.2.2): SELECT pop as home, uid, gid FROM users WHERE username = 'admin@professional.kz'
Jun 24 22:27:11 auth(default): Info: master out: USER 1 user@domain.tld home=/usr/local/mail/domain.tld/user uid=90 gid=90
Jun 24 22:27:11 pop3-login: Info: Internal login failure (auth failed, 1 attempts): user=<user@domain.tld>, method=PLAIN, rip=2.2.2.2, lip=1.1.1.1
Jun 24 22:27:12 auth(default): Info: new auth connection: pid=10382
Код: Выделить всё
INSERT INTO `users` (`user_id`, `domain_id`, `localpart`, `username`, `clear`, `crypt`, `uid`, `gid`, `smtp`, `pop`, `type`, `admin`, `on_avscan`, `on_blocklist`, `on_complexpass`, `on_forward`, `on_piped`, `on_spamassassin`, `on_vacation`, `enabled`, `flags`, `forward`, `maxmsgsize`, `quota`, `realname`, `sa_tag`, `sa_refuse`, `tagline`, `vacation`) VALUES
(1, 1, 'user', 'user', '123465', MD5('3d9188577cc9bfe9291ac66b5cc872b7'), 90, 90, '', '', 'site', 1, 0, 0, 0, 0, 0, 0, 0, 1, NULL, NULL, 0, 0, 'SiteAdmin', 60, 600, NULL, NULL);
Код: Выделить всё
dovecotpw -l
CRYPT MD5 MD5-CRYPT SHA SHA1 SHA256 SMD5 SSHA SSHA256 PLAIN CLEARTEXT CRAM-MD5 HMAC-MD5 DIGEST-MD5 PLAIN-MD4 PLAIN-MD5 LDAP-MD5 LANMAN NTLM OTP SKEY RPA
Помогите разобраться с этим делом! Буду премного благодарен!