Dovecot и nfs, ошибка error: fcntl(read-lock) locking failed for file dovecot.index

Как правильно настроить почтовый сервер postfix + dovecot на ubuntu?

Всем привет. Есть проблема с почтовым сервером.

У меня есть ВПС, на котором будет парочка сайтов со своими почтовыми ящиками. Например user@example1.com и user@example2.com

Настравиваю по этой инструкции

Я вот еще не совсем понял. Если я хочу использовать много доменов на сервере. Как же тогда в инструкции везде заполняешь один домен?

Вот конфиг dovecot.conf

!include_try /usr/share/dovecot/protocols.d/*.protocol
#Разрешаем авторизацию в plaintext
disable_plaintext_auth = no
# Журнал будем писать в файл /var/log/dovecot.err
log_path = /var/log/dovecot.err
# Формат даты и времени для регистрируемых событий
log_timestamp = “%Y-%m-%d %H:%M:%S ”
#Включаем SSL
ssl = yes
# Порядок следования сертификатов имеет большое значение: сначала *.key, за$
ssl_key =< /etc/dovecot/mail_pro-cm_org_ua.key ssl_cert =< /etc/dovecot/mail_pro-cm_org_ua.cert #Строка приветствия при ответе сервера login_greeting = Dovecot ready. #Описываем тип (maildir) и местонахождения почтовых ящиков (/var/spool/mail$ mail_location = maildir:/var/spool/mail/%d/%n #Задаем идентификатор пользователя и группы, с которыми будет работать dove$ mail_uid = 5000 mail_gid = 5000 mail_privileged_group = mail valid_chroot_dirs = /var/spool/mail/ #Настраиваем вывод отладочных сообщений auth_verbose = yes auth_debug = yes auth_debug_passwords = yes #Типы допустимых вариантов аутентификации auth_mechanisms = plain login digest-md5 #Задаем параметры аутентификации passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf } service auth { unix_listener auth-master { mode = 0660 user = virtual group = virtual } unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } } service imap-login { inet_listener imap { port = 0 } inet_listener imaps { port = 993 ssl = yes } }

А вот такое было в логе dovecot.err

2016-01-12 07:49:34 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
2016-01-12 07:49:34 auth: Debug: Module loaded: /usr/lib/dovecot/modules/auth/libdriver_mysql.so
2016-01-12 07:49:34 auth: Fatal: No passdbs specified in configuration file. DIGEST-MD5 mechanism needs one
2016-01-12 07:49:34 master: Error: service(auth): command startup failed, throttling for 8 secs
2016-01-12 07:49:42 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
2016-01-12 07:49:42 auth: Debug: Module loaded: /usr/lib/dovecot/modules/auth/libdriver_mysql.so
2016-01-12 07:49:42 auth: Fatal: No passdbs specified in configuration file. DIGEST-MD5 mechanism needs one
2016-01-12 07:49:42 master: Error: service(auth): command startup failed, throttling for 16 secs
2016-01-12 07:50:20 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
2016-01-12 07:50:20 auth: Debug: Module loaded: /usr/lib/dovecot/modules/auth/libdriver_mysql.so
2016-01-12 07:50:20 auth: Fatal: No passdbs specified in configuration file. DIGEST-MD5 mechanism needs one
2016-01-12 07:50:20 master: Error: service(auth): command startup failed, throttling for 32 secs
2016-01-12 07:50:20 imap-login: Info: Disconnected: Auth process broken (disconnected before auth was ready, waited 0 secs): user=, rip=ИП моего компа, lip=ИП Впс хостинга, TLS handshaking, session=
2016-01-12 07:50:34 imap-login: Info: Disconnected (disconnected before auth was ready, waited 0 secs): user=, rip=ИП моего компа, lip=ИП Впс хостинга, TLS: SSL_read() failed: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca: SSL alert number 48, session=
2016-01-12 07:50:52 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
2016-01-12 07:50:52 auth: Debug: Module loaded: /usr/lib/dovecot/modules/auth/libdriver_mysql.so
2016-01-12 07:50:52 auth: Fatal: No passdbs specified in configuration file. DIGEST-MD5 mechanism needs one
2016-01-12 07:50:52 master: Error: service(auth): command startup failed, throttling for 60 secs
2016-01-12 08:04:09 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
2016-01-12 08:04:09 auth: Debug: Module loaded: /usr/lib/dovecot/modules/auth/libdriver_mysql.so
2016-01-12 08:04:09 auth: Fatal: No passdbs specified in configuration file. DIGEST-MD5 mechanism needs one
2016-01-12 08:04:09 master: Error: service(auth): command startup failed, throttling for 60 secs
2016-01-12 08:13:21 log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
2016-01-12 08:13:21 master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
2016-01-12 08:51:34 master: Info: Dovecot v2.2.9 starting up (core dumps disabled)

НУ КТО ЧЕМ МОЖЕТ подскажите, пооочееему не работает?

Источник: https://toster.ru/q/282228

Ошибка при совместной работе Outlook и Dovecot

IMAP сервер, с которого происходит экспорт — Dovecot, с настроенной сортировкой sieve. При коннекте и попытке импорта в логе dovecot.log появляется ошибка:

IMAP(user@domain.com): Error: stat(/usr/mail/domain.com/user@domain.com/.dovecot.sieve/tmp) failed: Not a directory

В файле dovecot.conf указан именно этот путь:

plugin { sieve=/usr/mail/%d/%u/.dovecot.sieve }

Судя по всему, дело в реализации забора почты Outlook’ом и сделать с этим ни чего нельзя. Он интерпретирует данный файл как один из каталогов с почтой и пытается забрать из него сообщения.

Ошибка наблюдается как при импорте почты в облако, так и при обычной работе клиента Outlook.

С одной стороны, такое поведение логично, ведь все каталоги, начинающиеся с точки, являются каталогами с почтой (Maildir) и выглядят следующим образом:

tree /usr/mail/domain.com/user@domain.com/
|– .Drafts
| |– cur
| | |– 1394074522.M592755P45733
| | |– …
| |– dovecot-uidlist
| |– dovecot.index
| |– dovecot.index.cache
| |– dovecot.index.log
| |– maildirfolder
| |– new
| |– tmp
|– .INBOX.Custom Directory 1
| |– cur
| | |– 1394074522.M592755P45733
| | |– …
| |– dovecot-keywords
| |– dovecot-uidlist
| |– dovecot.index.cache
| |– dovecot.index.log
| |– maildirfolder
| |– new
| |– tmp
|– .INBOX.Custom Directory 2
| |– cur
| | |– 1394074510.M271298P45733
| | |– …
| |– dovecot-keywords
| |– dovecot-uidlist
| |– dovecot.index.cache
| |– dovecot.index.log
| |– maildirfolder
| |– new
| |– tmp
|– .Sent
| |– cur
| | |– 1401957899.M143293P50237
| | |– …
| |– dovecot-keywords
| |– dovecot-uidlist
| |– dovecot.index
| |– dovecot.index.cache
| |– dovecot.index.log
| |– maildirfolder
| |– new
| |– tmp
|– .Trash
| |– cur
| | |– 1393309932.M87457P82790
| |– dovecot-uidlist
| |– dovecot.index.cache
| |– dovecot.index.log
| |– maildirfolder
| |– new
| |– tmp
|– cur
| |– 1391595621.M706764P48743
| |– …
|– sieve
| |– managesieve.sieve
| |– tmp
|– new
| |– 1404725432.M962838P14502
|– tmp
|– .dovecot.sieve -> sieve/managesieve.sieve
|– .dovecot.sieve.log
|– .dovecot.svbin
|– dovecot-keywords
|– dovecot-uidlist
|– dovecot-uidvalidity
|– dovecot-uidvalidity.52f20f7a
|– dovecot.index
|– dovecot.index.cache
|– dovecot.index.log
|– subscriptions

Читайте также:  Добавить swap раздел в linux

С другой — остальные клиенты нормально работают и видят всю почту без ошибок, не пытаясь прочитать .dovecot.sieve как каталог, по крайней мере при использовании ThunderBird или веб-интерфейса подобного не наблюдается.

Решить можно двумя способами. Первый — изменить положение файла .dovecot.sieve, но придется у каждого ящика с настроенными фильтрами переносить этот файл руками (или скриптом).

На боевом сервере я не рискнул так делать, боясь сломать всю пользователькую сортировку. Второй и более простой — скрыть каталог sieve, а следовательно и файл .dovecot.sieve из списка подписки.

Для этого в dovecot.conf внести строку:

maildir_stat_dirs=yes

После рестарта сервиса импорт успешно начался и ошибка исчезла.

На будущее желательно знать и сразу помещать файл .dovecot.sieve в каталог sieve при начальной настройке sieve, т.к. руководство по dovecot в разделе Optimizations говорит, что не желательно в Maildir иметь файлы, начинающиеся с точки.

Источник: https://notessysadmin.com/error-when-working-with-outlook-and-dovecot

Настройка Dovecot

Сервер в кармане, или просто о сложном!

главная – Статьи – Почта – Postfix + Dovecot + MySQL

Теги: Настройка сервера Почтовый сервер

Последнее обновление: 05.05.2015.

Введение

Dovecot выполняет роль POP/IMAP почтового сервера. Фактически, он выполняет две функции:

  1. (основная) получает почту от MTA (Sendmail, Postfix и др.) и хранит ее на диске;
  2. (в моем случае) осуществляет авторизацию логина/пароля почтовых пользователей.

В данном руководстве пойдет речь о настройке Dovecot версии 2 как части классической связки “Dovecot + Postfix + MySQL + PostfixAdmin”.

Напомним пройденные и будущие этапы:

  1. MySQL – нам надо сразу сделать хранилище настроек, т.к. и Postfix и Dovecot будут “завязаны” на базу данных.
  2. PostfixAdmin – аналогично, сразу создаем инструмент управления базой данных, проверяем, что пользователи добавляются и пр.
  3. Postfix – только на этом этапе ставим MTA (Mail Transfer Agent) Postfix.
  4. Dovecot – финал – хранение почты, авторизация и пр.
  5. Только после этого можно думать про антивирусы, веб-интерфейсы типа Roundcube Mail.

Установка Dovecot

Я уже давно для себя выбрал CentOS как основу для серверов. Поэтому все команды установки софта будут именно для этой операционной системы. Я крайне не советую ставить основные программы из исходников командами типа make, make install и т.д. Это приведет только к невозможности получения обновлений в удобной форме.

В процессе отладки я наступал на разные грабли, список которых выделил в отдельную страницу “размышления по ходу отладки”. Не поленитесь, посмотрите, вдруг что-то пригодится.

yum install dovecot yum install dovecot-mysql

chkconfig dovecot on

Вот и все, дальше надо настраивать конфиг.

Главный конфигурационный файл Dovecot

Основные настройки Dovecot хранит в файле конфигурации /etc/dovecot/dovecot.conf (или, реже /etc/dovecot.conf).

Сразу делаем копию конфигурационного файла:

cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak

Примечение: путь к файлу может быть /etc/dovecot.conf, проверьте сначала, где у вас в системе этот файл.

Рабочий конфигурационный файл Dovecot 2.0.9:

# Мы не используем специализированные файлы из поставки Dovecot из папки /etc/dovecot/conf.d/.
# Основная причина: отсутствие ясного руководства по их использованию. А также сравнительно небольшой
# размер всего конфига (все перед глазами, нет необходимости раскидывать по отдельным файлам).
#!include conf.d/*.conf # Нет необходимости явно указывать imaps и pop3s – Dovecot 2.* по-умолчанию их включает.
protocols = imap pop3
listen = * # Завершать все дочерние процессы, если завершен мастер-процесс
shutdown_clients = yes # Владелец почтовых папок (также см. конфиг Postfix):
mail_uid = vmail
mail_gid = vmail # Только наш пользователь с uid и gid 5000 (vmail) может быть использован.
first_valid_uid = 5000
last_valid_uid = 5000 # Лог-файлы. Подробнее: http://wiki2.dovecot.org/Logging
log_path = /var/log/dovecot.log
# Отладка. Если все настроено, отключаем (no)
# http://maint.unona.ru/doc/dovecot2.shtml
mail_debug = no auth_verbose = no
auth_debug = no
auth_debug_passwords = no # SSL
# http://wiki2.dovecot.org/SSL/DovecotConfiguration
ssl = required
ssl_cert =

Источник: https://bozza.ru/art-170.html

Windraw dot Net

Открыл для себя недавно Fail2ban.

ну или по-русски

Порты SSH у меня закрыты изначально и доступны только для определенных айпишников из локалки, но вот для фильтрации трафика на Postfix и Dovecot — он мне очень подошел. Конфиги для Postfix есть в дистрибутиве по умолчанию и про них я писать не буду. Немного повозился с конфигами для Dovecot, и про них решил написать.

У меня Dovecot пишет свои логи в отдельный файл — /var/log/dovecot/dovecot-info.log (по умолчанию же все пишется в системный лог /var/log/maillog).

Первым делом пишем фильтр dovecot-pop3imap.conf в папке /etc/fail2ban/filter.d/

1
2
3
cat /etc/fail2ban/filter.d/
touch dovecot-pop3imap.conf
vi dovecot-pop3imap.conf

cat /etc/fail2ban/filter.d/ touch dovecot-pop3imap.conf vi dovecot-pop3imap.conf

1
2
3
[Definition]
failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login (auth failed|Aborted login (tried to use disabled|Disconnected (auth failed).*rip=(?PS*),.*
ignoreregex =

[Definition] failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login (auth failed|Aborted login (tried to use disabled|Disconnected (auth failed).*rip=(?PS*),.* ignoreregex =

Теперь добавляем секцию в файл /etc/fail2ban/jail.conf:

1
2
3
4
5
6
7
8
9
[dovecot-iptables]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port=”pop3,pop3s,imap,imaps”, protocol=tcp] sendmail-whois[name=dcot, dest=my@email.ru]
logpath = /var/log/dovecot/dovecot-info.log
findtime = 1200
maxretry = 20
bantime = 3600

[dovecot-iptables] enabled = true filter = dovecot-pop3imap action = iptables-multiport[name=dovecot-pop3imap, port=”pop3,pop3s,imap,imaps”, protocol=tcp] sendmail-whois[name=dcot, dest=my@email.ru] logpath = /var/log/dovecot/dovecot-info.log findtime = 1200 maxretry = 20 bantime = 3600

То есть, если появится кто-то, кто в течение 20 минут 20 раз неправильно введет пароль — баним его IP на час. Нам почту приходит сообщение, что мол забанен такой-то и полная whois информация по хосту. Тут каждый волен выбрать для себя параметры за какое время, какое количество попыток проверять и на сколько банить.
Перезапускаем fail2ban, проверяем что в iptables появилось правило:

1
2
3
Chain fail2ban-dovecot-pop3imap (1 references)
num pkts bytes target prot opt in out source destination
1 184897 8571444 RETURN all — * * 0.0.0.0/0 0.0.0.0/0
Читайте также:  Mikrotik настройка простого firewall

Chain fail2ban-dovecot-pop3imap (1 references) num pkts bytes target prot opt in out source destination 1 184897 8571444 RETURN all — * * 0.0.0.0/0 0.0.0.0/0

Оценка сообщения:(Еще не оценили)Загрузка…

Источник: http://www.windraw.net/2014/09/fail2ban-i-dovecot.html

Software :: Dovecot Dotlock Error – Locking Set To Fcntl?

Aug 16, 2010

We are currently running Dovecot 1.2 on a Centos 5.5 machine for a production workload of around 56,000 – 60,000 pop/imap logins per hour of the day (totaling a million something a day). The server has it's storage hosted on nfs. This server is usually humming along just fine until we get the following error in the mail syslog:

Created dotlock file's timestamp is different than current time (1281964699 vs 1281964649): /mail/user/Mai. ldir/dovecot-uidlist We see a couple of these errors and the server explodes with a load average of over 300, which drops back down immediately but definitely causes a small outage.

The strangest part is that we are NOT using dotlock as a locking mechanism on this server. We are also not using dotlock as a locking mechanism for any of the servers that access this nfs storage, rather we use fcntl.

There was a time when we tested dotlock on the servers in our mail cluster, but we are not sure why these errors are appearing now after running without dotlock for so long.

View 1 Replies

ADVERTISEMENT

Jan 29, 2011

Just before X begins, the screen states that there's an error in locking Xauthority. What does this mean? Is this something that should concern me? Is there a way to fix this?

View 2 Replies View RelatedApr 5, 2011

I installed the dovecot with aptitude in the debian squeeze, and want to use dovecot as imap and pop3 server with exim4 for my mail server, i configured the dovecot and exim4, but when want to start the dovecot get this error:

View 3 Replies View RelatedApr 27, 2011

I agree deleting .Xauthority files work, but thats not a good solution. I mean, everytime I have to run any X forwarding application I have to delete the .Xauthority file.

Here is my scenarioThe applications that I want to run are on Linux Server [NFS] and the client machines [CIFS] that are having problem in locking theXauthority files are Macs which share the same domain as that of client solaris machine. i.e.

The home directory of particular user on Solaris & the home directory of that user on Mac have same contents.When I ssh -X from Solaris to the server, everything works fine, no error messages.When I ssh -X from MACs to the server, I get the following warning messages.

Code:/usr/X/bin/xauth: error in locking authority file /home/user/.Xauthority/usr/X/bin/xauth is the path on the server. If I try to break the lock by sudo

[code]….

View 3 Replies View RelatedDec 27, 2010

I am having the following error on my logs.[code]…

I used mail_uid and mail_gid in dovecot.conf to set the permissions, I'm not using local system accounts, instead accounts specified in MySQL. I can dump all the output of doveconf if requested.

Источник: http://linux.bigresource.com/Software-Dovecot-dotlock-error-locking-set-to-fcntl–Ubh9n5IcB.html

Exim: авторизация через dovecot (+cram-md5, digest-md5)

Захотел обновить в памяти настройку exim+dovecot, заодно сделать авторизацию по digest-md5 cram-md5.

Приведу лишь настройки exim, dovecot и дамп БД, с тестовыми юзерами.

Причём, если хотите использовать авторизацию cram-md5 (если только digest-md5, то вроде бы не нужно) через dovecot, exim нужно пропатчить!

Для того, что бы включить в exim возможность авторизации через dovecot и авторизировать через cram-md5 добавляем в /etc/make.conf следующее (привожу только те директивы, которые отвечают именно за авторизацию; остальные директивы, например, поддержку mysqlнужно добавить самостоятельно):

PORTSDIR?= /usr/ports .if ${.CURDIR} == ${PORTSDIR}/mail/exim WITH_AUTH_DOVECOT=YES WITH_AUTH_PLAINTEXT=YES WITH_AUTH_CRAM_MD5=YES WITH_AUTH_LOGIN=YES WITH_PWCHECK=YES

.endif

Хочу заметить, что dovecot от версии к версии некоторые параметры меняет! Поэтому, будьте внимательны, если у вас версии различаются.

router2# pkg_info | grep dovecot dovecot-1.2.4       Secure and compact IMAP and POP3 servers router2# pkg_info | grep exim exim-4.69_4         High performance MTA for Unix systems on the Internet
Конфиг dovecot.conf:

base_dir = /var/run/dovecot/ protocols = imap imaps pop3 pop3s listen = 10.0.3.

132 disable_plaintext_auth = no log_path = /var/log/maillog log_timestamp = “%b %d %H:%M:%S ” syslog_facility = mail info_log_path = /var/log/maillog mail_debug = no auth_debug_passwords = no ssl=no mail_location = maildir:%h mail_privileged_group = mail dotlock_use_excl = yes verbose_proctitle = yes first_valid_uid = 26 first_valid_gid = 6 maildir_copy_with_hardlinks = yes 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 = postmaster@example.com auth_socket_path = /var/run/dovecot/auth-master } auth_default_realm = router2.tld auth_username_format = %Lu auth_verbose = no auth_debug = no auth default { mechanisms = plain login cram-md5 digest-md5 passdb sql { args = /usr/local/etc/dovecot-sql.conf } userdb passwd { args = blocking=yes } 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 } client { path = /var/run/dovecot/auth-client mode = 0660 user = mailnull group = mail } } } dict { } plugin {

}

Конфиг dovecot-sql.conf:

router2# less dovecot-sql.

conf driver = mysql connect = host=localhost user=dovecot password=dovecot dbname=maildb default_pass_scheme = MD5 user_query = SELECT CONCAT('/var/mail/exim/',maildir) AS home, uid AS uid, gid AS gid FROM users WHERE address = '%n@%d' password_query = SELECT pw_encrypted AS password FROM users WHERE address = '%n@%d' AND ok = 'Y'
Конфиг exim:

Читайте также:  Установка и настройка lxc контейнеров на centos 7

primary_hostname = mail.router2.tld #hide mysql_servers = localhost/maildb/dovecot/dovecot hide mysql_servers = localhost::(/tmp/mysql.

sock)/maildb/dovecot/dovecot domainlist local_domains = ${lookup mysql{SELECT `destination` FROM `transport` WHERE `domain`='${domain}' }} domainlist relay_to_domains = ${lookup mysql{SELECT `destination` FROM `transport` WHERE `domain`='${domain}' }} hostlist   relay_from_hosts = localhost:127.0.0.0/8:192.168.0.

0/16 acl_smtp_rcpt = acl_check_rcpt acl_smtp_data = acl_check_data daemon_smtp_ports = 25 qualify_domain = mail.router2.tld qualify_recipient = mail.router2.

tld disable_ipv6 = true exim_user = mailnull exim_group = mail never_users = root rfc1413_query_timeout = 5s host_lookup = * ignore_bounce_errors_after = 2d timeout_frozen_after = 7d log_selector = +all syslog_timestamp = no begin acl acl_check_rcpt: accept  hosts = : deny    message       = Restricted characters in address domains       = !+local_domains local_parts   = ^[.] : ^.*[@%!/|] deny    message       = Restricted characters in address domains       = !+local_domains local_parts   = ^[./|] : ^.*[@%!] : ^.*/\.\./ accept  local_parts   = postmaster domains       = +local_domains require verify        = sender accept  domains       = +local_domains : +relay_to_domains control       = submission accept  authenticated = * control       = submission require message = relay not permitted domains = +local_domains : +relay_to_domains require verify = recipient accept acl_check_data: accept begin routers dovecot_user: driver = accept transport = dovecot_delivery condition = ${lookup mysql{SELECT `address` FROM `users` WHERE `address`='${quote_mysql:$local_part@$domain}' OR `address`='${quote_mysql:@$domain}'}{yes}{no}} dnslookup: driver = dnslookup domains = !+local_domains transport = remote_smtp ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 10.0.3.132/32 no_more system_aliases: driver = redirect allow_fail allow_defer data = ${lookup{$local_part}lsearch{/etc/aliases}} user = mailnull group = mail file_transport = address_file pipe_transport = address_pipe userforward: driver = redirect check_local_user file = $home/.forward no_verify no_expn check_ancestor file_transport = address_file pipe_transport = address_pipe reply_transport = address_reply condition = ${if exists{$home/.forward} {yes} {no} } begin transports remote_smtp: driver = smtp dovecot_delivery: driver = pipe command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain message_prefix = message_suffix = delivery_date_add envelope_to_add return_path_add log_output user = mailnull address_pipe: driver = pipe return_output address_file: driver = appendfile delivery_date_add envelope_to_add return_path_add address_reply: driver = autoreply begin retry *                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h begin rewrite begin authenticators 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 auth_cram_md5: driver = dovecot public_name = CRAM-MD5 server_socket = /var/run/dovecot/auth-client

server_set_id = $auth1

Если после отправки письма будет вылазить ошибка

Unable to authenticate at present: authentication socket read error or premature eof

значит нужно будет пропатчить авторизацию dovecot в exim’e. Исправленный файл dovecot.c можно взять по адресу http://vcs.exim.org/viewvc/exim/exim-src/src/auths/dovecot.c?r1=1.10&view=log , начиная с версии 1.7. Я брал 1.10. Как патчить: просто ложим скачанный файл в замен имеющегося,  exim-src/src/auths/dovecot.c и пересобираем exim

Как создавать пароли:

— cram-md5

Тут просто: в комплекте с dovecot’ом идёт утилита dovecotpw. Для генерации пароля просто запускаем её, и потом вводим пароль:

# dovecotpw Enter new password: password Retype new password: password {CRAM-MD5}26b633ec8bf9dd526293c5897400bddeef9299fad
В БД нужно вставлять именно с фигурными скобками и словом.

— digest-md5

Выполняем команду:

router2# echo -n “password” | md5
5f4dcc3b5aa765d61d8327deb882cf99

Вставляем полученный хешь в БД.

Привожу дамп БД maildb с тестовыми юзерами и доменами:

— MySQL dump 10.11 — — Host: localhost    Database: maildb — —————————————————— — Server version       5.0.

84 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; — — Table structure for table `transport` — DROP TABLE IF EXISTS `transport`; /*!40101 SET @saved_cs_client     = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `transport` ( `id` int(10) unsigned NOT NULL auto_increment, `domain` varchar(128) NOT NULL default '', `destination` varchar(128) NOT NULL default '', PRIMARY KEY  (`id`), UNIQUE KEY `domain` (`domain`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; — — Dumping data for table `transport` — LOCK TABLES `transport` WRITE; /*!40000 ALTER TABLE `transport` DISABLE KEYS */; INSERT INTO `transport` VALUES (1,'router2.tld','virtual:'),(2,'mail.router2.tld','local:'),(3,'domain.ru','virtual:'); /*!40000 ALTER TABLE `transport` ENABLE KEYS */; UNLOCK TABLES; — — Table structure for table `users` — DROP TABLE IF EXISTS `users`; /*!40101 SET @saved_cs_client     = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL auto_increment, `address` varchar(128) NOT NULL default '', `pw_clear` varchar(32) NOT NULL default '', `pw_encrypted` varchar(200) default NULL, `name` varchar(128) NOT NULL default '', `uid` int(11) unsigned NOT NULL default '26', `gid` int(11) unsigned NOT NULL default '26', `maildir` varchar(128) NOT NULL default '', `quota` int(10) unsigned NOT NULL default '0', `ok` enum('Y','N') NOT NULL default 'Y', PRIMARY KEY  (`id`), UNIQUE KEY `address` (`address`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; — — Dumping data for table `users` — LOCK TABLES `users` WRITE; /*!40000 ALTER TABLE `users` DISABLE KEYS */; INSERT INTO `users` VALUES (1,'admin@router2.tld','12345','{CRAM-MD5}365ea5b640cf5bc3d3c7ebeeb3194c4f46a2c30fd8a7b017b5cecb0c3501459c','Admin Admin',26,26,'router2.tld/admin@router2.tld/',0,'Y'),(2,'root@router2.tld','12345','{CRAM-MD5}365ea5b640cf5bc3d3c7ebeeb3194c4f46a2c30fd8a7b017b5cecb0c3501459c','',26,26,'router2.tld/root@router2.tld/',0,'Y'),(3,'user@domain.ru','7TN4ogHs','92f3f6276b2c024aa23c0203d9c40dff','',26,26,'domain.ru/user@domain.ru/',0,'Y'); /*!40000 ALTER TABLE `users` ENABLE KEYS */; UNLOCK TABLES; — — Table structure for table `virtual` — DROP TABLE IF EXISTS `virtual`; /*!40101 SET @saved_cs_client     = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `virtual` ( `id` int(10) unsigned NOT NULL auto_increment, `address` varchar(128) NOT NULL default '', `destination` text NOT NULL, PRIMARY KEY  (`id`), UNIQUE KEY `domain` (`address`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; — — Dumping data for table `virtual` — LOCK TABLES `virtual` WRITE; /*!40000 ALTER TABLE `virtual` DISABLE KEYS */; INSERT INTO `virtual` VALUES (1,'admin.admin@router2.tld','admin@router2.tld'); /*!40000 ALTER TABLE `virtual` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

Источник: https://skeletor.org.ua/?p=206

Ссылка на основную публикацию