exim+dovecot+tls

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Agronom
ст. сержант
Сообщения: 304
Зарегистрирован: 2006-12-11 10:30:13

exim+dovecot+tls

Непрочитанное сообщение 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-е какие конфиги смотреть и какие данные нужны? И что не так в связке?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.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
майор
Сообщения: 2545
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

exim+dovecot+tls

Непрочитанное сообщение 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
}
...
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
Agronom
ст. сержант
Сообщения: 304
Зарегистрирован: 2006-12-11 10:30:13

exim+dovecot+tls

Непрочитанное сообщение 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 }
skeletor писал(а):
2021-10-13 9:35:14
но тоже не понимает ни 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

Аватара пользователя
skeletor
майор
Сообщения: 2545
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

exim+dovecot+tls

Непрочитанное сообщение skeletor » 2021-10-13 10:23:12

у вас dovecot2 разбит на 100500 кусков конфига. Поищите, в каком конфиге описывается auth-master и там уже смотрите.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
Agronom
ст. сержант
Сообщения: 304
Зарегистрирован: 2006-12-11 10:30:13

exim+dovecot+tls

Непрочитанное сообщение 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
}
не помогло

Аватара пользователя
skeletor
майор
Сообщения: 2545
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

exim+dovecot+tls

Непрочитанное сообщение skeletor » 2021-10-13 10:50:50

А по какому мануалу вы настраивали? Такое впечатление, что вы сделали только часть настроек из мануала.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
Agronom
ст. сержант
Сообщения: 304
Зарегистрирован: 2006-12-11 10:30:13

exim+dovecot+tls

Непрочитанное сообщение Agronom » 2021-10-13 10:56:06

skeletor писал(а):
2021-10-13 10:50:50
А по какому мануалу вы настраивали? Такое впечатление, что вы сделали только часть настроек из мануала.
сейчас уже не вспомню. Делал изначально по одному - не заработало, нашел второй - ушла часть ошибок, потом искал информацию по оставшимся. Вроде теперь осталась только одна - с поиском пользователей

Аватара пользователя
Agronom
ст. сержант
Сообщения: 304
Зарегистрирован: 2006-12-11 10:30:13

exim+dovecot+tls

Непрочитанное сообщение Agronom » 2021-10-13 11:04:24

есть ссылка на полный мануал по настройке exim+dovecot+ssl? а то все инструкции, которые я находил либо для старых версий, либо типа "прописываем пути к ключу и сертификату, включаем ssl = yes" и все работает

Аватара пользователя
skeletor
майор
Сообщения: 2545
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

exim+dovecot+tls

Непрочитанное сообщение skeletor » 2021-10-13 11:15:01

https://www.lissyara.su/articles/freebsd/mail/ берите любой и настраивайте
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"