EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
Agronom
- ст. сержант
- Сообщения: 305
- Зарегистрирован: 2006-12-11 10:30:13
Непрочитанное сообщение
Agronom » 2021-10-12 10:13:26
Настраиваю связку exim+dovecot+tls, но происходит затык - Довекот не может попасть в директорию почты:
2021-10-12 10:03:09 1maBob-0005vB-Kr <=
fortest@yandex.ru H=forward102p.mail.yandex.net [77.88.28.102] P=esmtps X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no S=2093 DKIM=yandex.ru id=
453321634022178@mail.yandex.ru
2021-10-12 10:03:09 1maBob-0005vB-Kr ==
testuser@domain.ru R=localuser T=dovecot_lda defer (13): Permission denied: failed to chdir to /home/testuser/Maildir
2021-10-12 10:03:09 1maBob-0005vB-Kr **
testuser@domain.ru: retry timeout exceeded
2021-10-12 10:03:09 1maBob-0005vF-Lb <= <> R=1maBob-0005vB-Kr U=exim P=local S=3336
Роутер и Транспорт Exim:
Код: Выделить всё
begin routers
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
# transport = local_delivery
transport = dovecot_lda
cannot_route_message = Unknown user
begin transports
dovecot_lda:
driver = pipe
command = /usr/libexec/dovecot/dovecot-lda -f "$sender_address" -d "$local_part@$domain"
home_directory = /home/$local_part/Maildir
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
log_output
log_defer_output
return_fail_output
umask = 077
freeze_exec_fail
temp_errors = 64: 69: 70: 71: 72: 73: 74: 75: 78
group = exim
user = exim
#mode = 0660
Если комментирую группу и юзера в транспорте, то не находит пользователя:
2021-10-12 10:08:13 1maBtV-0005vs-2k **
testuser@domain.ru R=localuser T=dovecot_lda: Child process of dovecot_lda transport returned 67 (could mean user nonexistent) from command: /usr/libexec/dovecot/dovecot-lda
Все работает без MySQL, сертификаты прикрутил, Довекот хранит логин/пароль в /etc/cram-md5.pwd, пользователи заведены, у каждого есть /home
В Dovecot-е какие конфиги смотреть и какие данные нужны? И что не так в связке?
Agronom
-
Хостинг HostFood.ru
-
Хостинг HostFood.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/
-
skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Непрочитанное сообщение
skeletor » 2021-10-13 9:35:14
в dovecot.conf найдите такой кусок, и посмотрите, какой user/group/mode у вас прописаны. Должны быть exim. Если там другие, то правильнее поменять в exim.conf в секции транспорта dovecot_lda.
Код: Выделить всё
...
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = exim
group = exim
}
...
skeletor
-
Agronom
- ст. сержант
- Сообщения: 305
- Зарегистрирован: 2006-12-11 10:30:13
Непрочитанное сообщение
Agronom » 2021-10-13 10:16:18
такого куска не было вообще. добавил, но теперь ругается:
doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 109: Unknown setting: socket { socket
в exim.conf было так:
Код: Выделить всё
PLAIN:
driver = dovecot
server_set_id = $auth1
server_socket = /var/run/dovecot/auth-client
# server_prompts = :
server_condition = ${if saslauthd{{$2}{$3}{smtp}} {1}}
server_advertise_condition = ${if def:tls_in_cipher }
# LOGIN authentication has traditional prompts and responses. There is no
# authorization ID in this mechanism, so unlike PLAIN the username and
# password are $auth1 and $auth2. Apart from that you can use the same
# server_condition setting for both authenticators.
LOGIN:
driver = dovecot
server_set_id = $auth1
# server_prompts = <| Username: | Password:
server_socket = /var/run/dovecot/auth-client
server_condition = ${if saslauthd{{$1}{$2}{smtp}} {1}}
server_advertise_condition = ${if def:tls_in_cipher }
но тоже не понимает ни mode, ни user, ни group
нашел в 10-mail.conf закомментированные пустые строки с uid|gid и поставил так:
Код: Выделить всё
# System user and group used to access mails. If you use multiple, userdb
# can override these by returning uid or gid fields. You can use either numbers
# or names. <doc/wiki/UserIds.txt>
mail_uid = exim
mail_gid = exim
Agronom
-
skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Непрочитанное сообщение
skeletor » 2021-10-13 10:23:12
у вас dovecot2 разбит на 100500 кусков конфига. Поищите, в каком конфиге описывается auth-master и там уже смотрите.
skeletor
-
Agronom
- ст. сержант
- Сообщения: 305
- Зарегистрирован: 2006-12-11 10:30:13
Непрочитанное сообщение
Agronom » 2021-10-13 10:42:07
auth-master.conf
Код: Выделить всё
[root@mail-10 conf.d]# cat ./auth-master.conf.ext
# Authentication for master users. Included from 10-auth.conf.
# By adding master=yes setting inside a passdb you make the passdb a list
# of "master users", who can log in as anyone else.
# <doc/wiki/Authentication.MasterUsers.txt>
# Example master user passdb using passwd-file. You can use any passdb though.
passdb {
driver = passwd-file
master = yes
args = /etc/dovecot/master-users
# Unless you're using PAM, you probably still want the destination user to
# be looked up from passdb that it really exists. pass=yes does that.
pass = yes
}
добавил в него этот кусок, dovecot принял, но ошибка с отсутствия юзера осталась:
2021-10-13 10:35:20 1maYnI-00071P-Cc **
testuser@domain.ru R=localuser T=dovecot_lda: Child process of dovecot_lda transport returned 67 (could mean user nonexistent) from command: /usr/libexec/dovecot/dovecot-lda
я так понимаю, что это нужно описать в 10-auth.conf (точнее в auth-passwdfile.conf.ext и auth-checkpassword.conf.ext)? В dovecon.conf я указал на файл с логином:хэшем пароля -
Код: Выделить всё
passdb {
driver = passwd-file
# Path for passwd-file. Also set the default password scheme.
args = scheme=cram-md5 /etc/cram-md5.pwd
}
а в auth-passwdfile.conf.ext и auth-checkpassword.conf.ext что нужно прописывать? попробовал так:
Код: Выделить всё
[root@mail-10 conf.d]# cat ./auth-passwdfile.conf.ext
# Authentication for passwd-file users. Included from 10-auth.conf.
#
# passwd-like file with specified location.
# <doc/wiki/AuthDatabase.PasswdFile.txt>
passdb {
driver = passwd-file
args = scheme=CRYPT username_format=%Lu /etc/cram-md5.pwd
}
userdb {
driver = passwd-file
args = username_format=%Lu /etc/cram-md5.pwd
# Default fields that can be overridden by passwd-file
#default_fields = quota_rule=*:storage=1G
# Override fields from passwd-file
#override_fields = home=/home/virtual/%u
}
не помогло
Agronom
-
skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
Непрочитанное сообщение
skeletor » 2021-10-13 10:50:50
А по какому мануалу вы настраивали? Такое впечатление, что вы сделали только часть настроек из мануала.
skeletor
-
Agronom
- ст. сержант
- Сообщения: 305
- Зарегистрирован: 2006-12-11 10:30:13
Непрочитанное сообщение
Agronom » 2021-10-13 10:56:06
skeletor писал(а): ↑2021-10-13 10:50:50
А по какому мануалу вы настраивали? Такое впечатление, что вы сделали только часть настроек из мануала.
сейчас уже не вспомню. Делал изначально по одному - не заработало, нашел второй - ушла часть ошибок, потом искал информацию по оставшимся. Вроде теперь осталась только одна - с поиском пользователей
Agronom
-
Agronom
- ст. сержант
- Сообщения: 305
- Зарегистрирован: 2006-12-11 10:30:13
Непрочитанное сообщение
Agronom » 2021-10-13 11:04:24
есть ссылка на полный мануал по настройке exim+dovecot+ssl? а то все инструкции, которые я находил либо для старых версий, либо типа "прописываем пути к ключу и сертификату, включаем ssl = yes" и все работает
Agronom
-
skeletor
- майор
- Сообщения: 2548
- Зарегистрирован: 2007-11-16 18:22:04
skeletor