LINUX.ORG.RU
ФорумAdmin

Не получается настроить почтовый сервер postfix и dovecot

 , ,


0

1

Приветствую всех. Я хочу разобраться с почтовыми серверами. Развернул я несколько виртуальных машин в virtualbox. Первая машина это шлюз freebsd(192.168.3.1) имеет nat в мою сеть и на ней настроен dhcpd. Вторая машина это dns сервер bind(192.168.3.4). Третья это сам почтовый сервер centos-8(192.168.3.5) с nginx,phpmyadmin,postfixadmin,roundcube, postfix и dovecot.

Создал я два ящика, первый test@domain.local

Второй ящик это: test2@domain.local

При попытки отправить письмо с одного на другой выходит ошибка в thunderbird:

Ошибка при отправлении почты: Ошибка сервера исходящей почты (SMTP). Сервер ответил:  4.3.0 relay.domain.local Server local data error.

В логах /var/log/maillog:

Mar 14 18:41:40 relay postfix/smtps/smtpd[8730]: warning: don't know if EHLO feature AUTH should be announced to unknown[192.168.3.48]
Mar 14 18:41:40 relay postfix/smtps/smtpd[8730]: NOQUEUE: reject: EHLO from unknown[192.168.3.48]: 421 4.3.0 relay.domain.local Server local data error
Mar 14 18:41:40 relay postfix/smtps/smtpd[8730]: warning: smtpd_client_event_limit_exceptions: non-null host address bits in "127.0.0.1/8", perhaps you should use "127.0.0.0/8" instead
Mar 14 18:41:45 relay postfix/smtps/smtpd[8730]: disconnect from unknown[192.168.3.48] ehlo=0/1 commands=0/1
Mar 14 18:41:45 relay dovecot[1417]: imap(test@domain.local)<8743><68/5xHy9t8DAqAMw>: Connection closed: read(size=7443) failed: Connection reset by peer (IDLE running for 0.001 + waiting input for 0.002 secs, 2 B in + 10 B out, state=wait-input) in=749 out=1628 deleted=0 expunged=0 trashed=0 hdr_count=1 hdr_bytes=235 body_count=0 body_bytes=0


Делал по этой статье

Ответ на: комментарий от mky

Кто такой 192.168.3.48

192.168.3.48 очевидно клиент с thunderbird

и почему в конфиге в mydestination не прописываете домен?

потому что нельзя домен одновременно прописывать и в виртуальные домены и в mydestination.

Так.. чуть-чуть решил помочь тебе с матчастью.

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

Изменил в файле main.cf запись на 127.0.0.0/8 .

Ссылка на файл: main.cf

Cейчас thunderbird выдает вот это:

При отправке почты произошла ошибка. Почтовый сервер ответил:
5.7.1 <unknown[192.168.3.48]>: Client host rejected: Access denied.
Пожалуйста, убедитесь, что вы используете правильную учётную запись для отправки и корректный способ аутентификации. Проверьте, что вам разрешено отправлять почту через этот SMTP-сервер с текущими учётными данными из вашей текущей сети.

В /var/log/maillog следующие:

Mar 30 22:15:20 relay postfix/smtps/smtpd[8926]: connect from unknown[192.168.3.48]
Mar 30 22:15:20 relay postfix/smtps/smtpd[8926]: NOQUEUE: reject: RCPT from unknown[192.168.3.48]: 554 5.7.1 <unknown[192.168.3.48]>: Client host rejected: Access denied; from=<test@domain.local> to=<test2@domain.local> proto=ESMTP helo=<[192.168.3.48]>
No_name321 ()
Ответ на: комментарий от No_name321

ну теперь уже просто. в тандерберде и любом почтовом клиенте надо делать авторизацию. порт 587, starttls логин и пароль. а в данный момент твой почтовый клиент пытается послать письмо как будто-то он почтовый сервер , что соответственно накладывает на него кучу ограничений, которые ты сделал, настраивая по статье. и это нормально. ну и еще можно это обойти, добавив твою локалку в mynetworks, но это будет не чистый эксперимент.

короче почтовые клиенты должны авторизоваться.

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

Да вобще то у него уже в конфиге прописано:

mynetworks = 127.0.0.0/8, 192.168.3.0/24

Вангуйте дальше про сервер, который должен авторизовать попытки, отправки почты на его домен.

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

У вас в конфиге вобще нет smtpd_client_restrictions, smtpd_helo_restrictions и т.д. В доке написано:

IMPORTANT: Either the smtpd_relay_restrictions or the smtpd_recipient_restrictions parameter must specify at least one of the following restrictions. Otherwise Postfix will refuse to receive mail:

reject, reject_unauth_destination

defer, defer_if_permit, defer_unauth_destination

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

Вангуйте дальше про сервер,

опять мимо:

smtpd_client_restrictions у него прописан в master.cf

Вангуйте дальше про сервер, который должен авторизовать попытки, отправки почты на его домен.

А это вообще что? По вашему сервер должен от кого угодно без вообще проверок принимать почту, если почта идет с его домена на свой домен, и волшебным образом игнорировать настройки? Это как вообще? Может лучше все же не лезть с советами в посты с темами, в которых не разбиратесь или разбираетесь на уровне автора поста? :)

P.S. Когда я вангую по поводу postfix , даже не читая конфиги или когда автор их не дает, то обычно попадаю в цель в 99% случаев, чем немного даже горжусь:)

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

если читерим, то дописываем в master.cf permit_mynetworks:

-o smtpd_client_restrictions= permit_mynetworks, permit_sasl_authenticated,reject

но вообще permit_mynetworks сюда надо бы написать, а вот локальную сетку все же убрать из permit_mynetworks и авторизоваться, как я писал выше. Иначе весь этот тестовый полигон - профанация.

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

smtpd_client_restrictions у него прописан в master.cf

ТС не показывал master.cf, по ссылке на инструкцию что он приводил, должны быть прописаны все *_restrictions. Это утверждение опять вангование.

Даже если в master.cf это строчка есть, по вашему её достаточно?

Когда я вангую по поводу postfix... то обычно попадаю в цель в 99% случаев

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

ТС не прописал ограничения, и это вангование не попадает в цель.

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

Базовая настройка почтового сервера это принимать почту на свой домен. В postfix нет отдельной проверки для почты, которая идет с его домена на свой домен.

И я не про игнорирование настроек, а про то, что проверку почтового сервера (тестового полигона) нужно начинать по smtp, а уже потом лезть в submission...

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

Вы так ТС'а совсем запутаете, он может уже перенастроит тандерберд на 578 порт (submission), а permit_mynetworks пропишет в master.cf в строку smtps, так как только там исходно по инструкции было smtpd_client_restrictions.

убрать из permit_mynetworks

из mynetworks, чтобы не было путаницы.

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

ТС не показывал master.cf,

TC показывал статью. Там есть master.cf

Даже если в master.cf это строчка есть, по вашему её достаточно?

Мне вообще по барабану, это тестовый полигон для человека, который ничего не шарит. Если бы вопрос был про прод сервер , то я бы раскритиковал статью и возможно , в зависимости от настроения, подошел бы к вопрос более внимательно.

ТС не прописал ограничения, и это вангование не попадает в цель.

ТС вообще ничего не писал. Писал автор статьи. Автор статьи в свою очередь тоже ее где-то скопипастил и там дальше рекурсия. Но ограничения есть. И в цель я попал и оба раза.

И я не про игнорирование настроек,

Еще раз говорю, мне насрать. Я знаю про почту очень много, почти все и мне лень дальше дискутировать.

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

Вы так ТС’а совсем запутаете, он может уже перенастроит тандерберд на 578 порт

Давай на ты, мы же в интернете.

У меня нет цели помочь ТСу получить рабочий полигон. Он учится, а не настраивает почтовик.

Те я, например, не уверен, генерил ли он самоподписные сертификаты для своего серого домена, советуя ему starttls в настройках клиента, но это будет его след вопрос.

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

Я главу с антиспамом пока пропустил. Настроил только необходимые записи в dns, поставил roundcube, nginx, php, mysql, postfix, dovecot, postfixadmin, phpmyadmin.

Я хочу чтобы просто почта пока работала а дальше с антиспамом разбираться буду.

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

1. Статья кривая, то, что там названо «Антиспам средствами Postfix», это не антиспам, а анти криво настроеные почтовые сервера. И эту часть можно делать без «Установка и настройка Clamav + Amavisd».

2. Если вы ничего не прописали в *_restrictions, то не факт, что там будет permit, там мантейнер дистрибутива может что-то своё засунуть. Поизучайте вывод команды ″postconf″.

3. В логе нет такой ошибки?

postfix/smtpd[]: fatal: in parameter smtpd_relay_restrictions or
smtpd_recipient_restrictions, specify at least one working instance of:
reject_unauth_destination, defer_unauth_destination, reject, defer,
defer_if_permit or check_relay_domains
Какая версия postfix?

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

Нет такой ошибки нету.

Версия:

Installed Packages
Name         : postfix
Epoch        : 2
Version      : 3.3.1
Release      : 12.el8
Architecture : x86_64
Size         : 4.1 M
Source       : postfix-3.3.1-12.el8.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Postfix Mail Transport Agent
URL          : http://www.postfix.org
License      : (IBM and GPLv2+) or (EPL-2.0 and GPLv2+)
Description  : Postfix is a Mail Transport Agent (MTA).
No_name321 ()

Ещё в логах dovecot нашёл:

Apr 03 14:52:42 relay.domain.local dovecot[9461]: imap-login: Login: user=<test@domain.local>, method=PLAIN, rip=192.168.3.48, lip=192.168.3.5, mpid=9488, TLS, session=<+PUc6Qu/rMHAqAMw>
Apr 03 14:56:39 relay.domain.local auth[9492]: pam_unix(dovecot:auth): check pass; user unknown
Apr 03 14:56:39 relay.domain.local auth[9492]: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=test@domain.local rhost=192.168.3.48
Apr 03 14:56:42 relay.domain.local dovecot[9461]: imap-login: Login: user=<test@domain.local>, method=PLAIN, rip=192.168.3.48, lip=192.168.3.5, mpid=9493, TLS, session=</cNo9wu/rsHAqAMw>
No_name321 ()