LINUX.ORG.RU
ФорумAdmin

Настраиваю dovecot

 


0

1

Настраиваю связку opensmtpd+dovecot. Уже гуглить замучался, третий день сижу. Короче судя по логам входящая почта у меня принимается opensmtpd и передаётся dovecot, а вот в dovecot - дырка, сообщения от opensmtpd он отбрасывает.

Второй вопрос, вот я решил не возиться с mysql, а хранить список ящиков в файле /etc/dovecot/users Как собственно ящик заводить?

Ну а конфиг вот:

base_dir = /var/run/dovecot/
protocols = imap lmtp
listen = 185.132.*.*
hostname = h**********.ru
ssl = required
ssl_cert = </etc/dovecot/h**********.ru_cert.pem
ssl_key = </etc/dovecot/h**********.ru_privkey.pem
ssl_dh = </etc/dovecot/dh.pem
ssl_cipher_list = ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH
service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service lmtp {
  unix_listener lmtp {
    mode = 0666
  }
}
auth_mechanisms = plain login
first_valid_uid = 1
last_valid_uid = 0
mail_uid = dovecot
mail_gid = dovecot
passdb {
  driver = passwd-file
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
}
userdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/users
}

log_path = syslog
log_timestamp = "%b %d %H:%M:%S "
login_log_format = %$: %s

mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
mbox_write_locks = fcntl
namespace inbox {
  inbox = yes
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Trash {
    special_use = \Trash
  }
  mailbox Sent {
    special_use = \Sent
  } 
  mailbox "Sent Messages" {
    special_use = \Sent
  }
}
★★★★★

Второй вопрос, вот я решил не возиться с mysql,

вот накидал скрипт, примерно так:

#!/bin/bash

#by constin

USAGE="Usage: $0 EMAIL";

if [ ! -n "$1" ]
then
  echo $USAGE;
  exit 1;
fi
regex="^[a-z0-9!#\$%&'*+/=?^_\`{|}~-]+(\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]([a-z0-9-]*[a-z0-9])?\$"
if [[ $1 =~ $regex ]] ; then
    email=$1;
else
    echo "Wrong email format."
    exit 1;
fi
echo -n Enter user password:
read -s password
echo

echo $email":"$(doveadm pw -p $password)"::::" >> /etc/dovecot/users
service dovecot reload
echo Done.


....
userdb {
  args = /etc/dovecot/users
  driver = passwd-file                                               
  default_fields = uid=vmail gid=vmail userdb_home=/mail/%Ld/%Ln userdb_location=maildir:/mail/%Ld/%Ln
}     

opensmtpd

А это что вообще ? первый раз слышу.

constin ★★★★ ()
Последнее исправление: constin (всего исправлений: 2)

И как opensmtpd передает письма dovecot? не вижу сокета или ldap Где конфиги, где логи?

constin ★★★★ ()
Ответ на: комментарий от constin

opensmtpd

А это что вообще ? первый раз слышу.

Вы не одиноки. Тоже в гугл полез смотреть что же это такое. Какой-то «новый» MTA оказывается. Век живи. Но пользовать пока даже из далека не хочется. :)
2ТС Просьба, если найдете решение отпишите, вдруг это станет чем-то модным, другим будет на пользу.

anc ★★★★★ ()
Ответ на: комментарий от constin

вместо умершего sendmail

Это откуда такая информация? Sendmail вполне себе жив и довольно широко используется. На сайте производителя последний снепшот датирован февралем 2019 г.

Serge10 ★★★★★ ()
Ответ на: комментарий от Serge10

Это откуда такая информация?

Он так широко используется, что последний раз в продакшене в качестве полноценного МТА я видел его лет 15 назад.

constin ★★★★ ()
Ответ на: комментарий от constin

А это что вообще ? первый раз слышу.

opensmtpd - самый минималистичный MTA-агент, выбрал его потому что настроек в нём минимум и человеку, впервые настраивающему MTA-агент, так проще понять что MTA-агент должен делать и что он не должен делать. MTA-агенты я уже настраивал: и openstpd и postfix, и отправка и приём почты у меня работают, сейчас я подошёл к следующему этапу - сделать так, чтобы opensmtpd не складывал входящую почту в mbox, а передавал её в dovecot, к которому можно было подключаться через imap.

В настройках opensmtp прописано правило для входящей почты - доставлять по протоколу lmtp через сокет /run/dovecot/lmtp

sunny1983 ★★★★★ ()
Ответ на: комментарий от constin

Он так широко используется, что последний раз в продакшене в качестве полноценного МТА я видел его лет 15 назад.

Он вполне себе используется. У тебя не тот продакшен. :-)

AS ★★★★★ ()
Ответ на: комментарий от AS

Он вполне себе используется. У тебя не тот продакшен. :-)

Я про почтовые сервера, а не отсылку почты для вебмакак. Или же у тебя есть кейсы, где он реально используется в почтовых системах?

constin ★★★★ ()
Ответ на: комментарий от constin

Не стал сейчас копипастить весь ваш скрипт, взял из него только одну строку:

echo webmaster@h**********ostline-test.ru:"$(doveadm pw -p ********)"::::
Двоеточий на конце точно должно быть 4, я видел руководство где их 6?

sunny1983 ★★★★★ ()
Ответ на: комментарий от constin

Или же у тебя есть кейсы, где он реально используется в почтовых системах?

У меня например. Ну или посмотри заголовки сообщений по рассылкам разным. Тоже вполне себе попадается Sendmail на первом (снизу вверх, разумеется, первом) received. Сейчас рассылку ClamAV посмотрел, достаточно быстро нашёл mail6.jubileegroup.co.uk (8.15.2/8.15.2/Debian-14~deb10u1).

AS ★★★★★ ()
Ответ на: комментарий от constin

Он так широко используется, что последний раз в продакшене в качестве полноценного МТА я видел его лет 15 назад.

Мне кажется, это скорее свидетельствует о широте Вашего кругозора, а не о смерти Sendmail ;). Я, например, уже больше 20 лет использую этот MTA и пока не вижу никаких причин отказываться - все современные стандарты, имеющие отношение к электронной почте, он поддерживает.

Serge10 ★★★★★ ()
Последнее исправление: Serge10 (всего исправлений: 1)
Ответ на: комментарий от sunny1983

Двоеточий на конце точно должно быть 4, я видел руководство где их 6?

Зачем руководства, есть документация.

user:password:uid:gid:(gecos):home:(shell):extra_fields



Остальные поля подставляются автоматически из конфига dovecot, я выше скинул кусок.
constin ★★★★ ()
Ответ на: комментарий от constin

Ну так то рассылки, MTA в этом случае особо и конфигурить не надо.

Речь не про сервер рассылок, а про то, через что в рассылку шлют. Обычно сначала сообщение сервер оператора получает, или gmail какой.

AS ★★★★★ ()
Ответ на: комментарий от constin

Нашел, какая-то новая BSDшная свистелка, вместо умершего sendmail

не знал что сендмаил помер, RIP

Shulman ()
Ответ на: комментарий от constin

constin, короче я не понял ваш код, либо просто до сих пор неправильно понимаю как функционирует dovecot.

У меня каталоги ящиков в /var/mail/indexes и /var/spool/indexes создаются с правами 2700, то есть без прав для записи, а нужно чтобы создавались с правами 2770.

И ещё вопрос, как сделать, чтобы почта, адресованная в несуществующие ящики, отправлялась в webmaster@h**********.ru?

sunny1983 ★★★★★ ()
Последнее исправление: sunny1983 (всего исправлений: 1)
Ответ на: комментарий от sunny1983

Это уже больше напоминает пост в job.

изначальные каталоги , те /var/mail/indexes надо создавать руками и выставлять правильные пермишенны.

И ещё вопрос, как сделать, чтобы почта, адресованная в несуществующие ящики, отправлялась в webmaster@h**********.ru?

Делать надо на MTA. Open-smtpd я не знаю.

constin ★★★★ ()
Последнее исправление: constin (всего исправлений: 1)
Ответ на: комментарий от constin

Так я и создал каталоги /var/spool/mail и /var/spool/indexes (изначально опечатался) и выставил им пермишены 2770 (setgid-бит, чтобы все создаваемые в них каталоги принадлежали группе dovecot). Потом в них сами создались каталоги с именем домена, а внутри них каталоги с именами получателей. Получается, что всякий раз, когда я буду добавлять новых получателей мне нужно будет пермишены переустанавливать?

sunny1983 ★★★★★ ()
Ответ на: комментарий от sunny1983

каталоги с именем домена

в ручную, сами ящики автоматом.

constin ★★★★ ()
Ответ на: комментарий от buratino

Скорее «старый», по причине отсутствия реализаций с голубями :) Поясню. В данном случае речь идет об MTA. Попыток реализаций MTA с голубями вроде ещё не было. :)

anc ★★★★★ ()
Ответ на: комментарий от anc

мне чё-то казалось, что он более-менее известный. в новостях, с ним связанных, немало народу было

но мне сложно судить, у меня много OpenBSD, поэтому он у меня постоянно есть из коробки

buratino ★★★★★ ()

Хорош маятся. Кусками ставить почтовика. Себя напрягать. Скачай сборку iredmail, А потом спрашивай. Iredmail готовый почтовик. Без прибамбасов (ну почти). Поставишь. Он тоочно будет работать. АА потом разбирайся в его внутренностях. Так проще. Iredmail это то что Вы хотели собрать на коленке. Но, получится быстрее.

Bootmen ☆☆☆ ()
Последнее исправление: Bootmen (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.