Чужой опыт экономит время и увеличивает шансы для удачи

Установка и настройка почтового сервера

Серия заметок по настройке почтовой системы в отдельно взятом частном случае (на основе Postfix, Dovecot + разное). Это главная, "родительская" страница, содержащая ссылки на весь список заметок (с кратким описанием).
Почту в таком формате - "с нуля", настраивал впервые. Ранее приходилось иметь с этим дело только эпизодически, "по касательной". Выбор в пользу определенной конфигурации сделан после перечитывания массы документации, статей и форумов. С учетом задачи, - поднять почтовую систему для быстрой и безотказной работы небольшого количества почтовых ящиков - выбрана такая сборка:
Postfix + Dovecot 2 + MySQL + PostfixAdmin + Postgrey + Postscreen + ClamAV + DKIM + Sieve + RoundCube (+плагины к RoundCube, включая парочку, написанных тут же, "с лету", своих экспериментальных). OC - Debian.

См. ниже Список заметок по настройке почтовой системы и дерево ссылок под этой статьей.

Но сначала - факторы несправедливого везения. :)

  1. Очень повезло что было время (пришлось отобрать у других дел)
  2. Очень повезло, что никто не мешал
  3. Повезло, что в Интернет были разные статьи (хотя многие устаревшие, неполные и с ошибками)
  4. Повезло, что есть официальная документация и Google Translate
  5. Во многих моментах "с тыка" случайно попадал почти точно в цель, часто не понимая причин того, что сделал
Я просил прощения у Заратустры, и всем халявщикам того же советую...

Disclaimer

Написано было всё изначально для себя, а потом дополнено и отформатированно.
В сети много подобных описаний, но с появлением Dovecot 2.x кое-что в них устарело.
Эта шпаргалка - не более чем публичный конспект исследования работы почтовой системы на базе упомянутых программ и методов.

Все заметки имеют характер исследования. Упомянутые в заметках эксперименты проводились на ОС Debian. Пожалуйста не используйте слепое копирование примеров. Автор не гарантирует, что применение изложенной здесь информации не приведет к потере данных.

Важно! Я не пытаюсь охватить все варианты и не описываю всю теорию и практику. Здесь описан только один частный случай настройки конкретных программ для определенного круга задач (хотя и весьма распространенных). Для других задач наверное потребуются изменения (очень вероятно - существенные). Академическая достоверность в изложении не преследовалась.

Описана работа конкретного набора программ и отдельный частный случай их конфигурации.

Список заметок по настройке почтовой системы

Понемногу разгребая свои "путевые заметки", превращаю их в удобоваримые записи, и, по мере готовности, буду обновлять-дополнять этот список. Ниже, в списке, - краткое описание каждой заметки и ссылка. Заметки не являются абсолютно выверенной справочной информацией и кроме ответов могут содержать вопросы!

Заметки не являются выверенной справочной информацией и кроме ответов могут содержать вопросы!

Полный пример установки всех пакетов и настройки конфигурационных файлов

Список всех пакетов для установки в Debian. Пример настройки всех основных конфигов всех элементов рассматриваемой здесь почтовой системы. Этот пример - всего лишь частный случай, для определенных конкретных задач.

Присутствует возможность получить конфиги настроенные под себя (можно указать свои данные и конфиги будут автоматически перестроены под них).

Пересылка почты - примеры работы системы в разных ситуациях

Краткое описание подопытной конфигурации. Список портов и интерфейсов.
Примеры прохождения письма по всей цепочке внутри системы:

  • Что происходит с письмом, когда почта снаружи приходит на сервер. Все его "приключения" внутри почтовой системы.
  • Отправка писем - общие сведения в контексте рассматриваемой конфигурации.
  • и т.п.

Копии всех отправленных

Отправленные письма автоматически сохраняются клиентом MUA в "Отправленные". Но не все письма отправляются с использованием MUA. Таким образом часть отправленных теряется. Проблему можно решить, подключив принудительные BCC (скрытые копии) всех отправляемых, которые Postfix может автоматически пересылать в заданные ящики...

Postfix - описание настроек, в контексте рассматриваемой конфигурации

Вольный перевод избранных частей официальной документации Postfix. Разобраны некоторые механизмы работы, приведен список инструментов командной строки, рассмотрены параметры настроек (выборочно) конфигурационных файлов и пр.

Postfix - Milter, фильтрация до очереди

Postfix - Milter, вольный перевод некоторых частей официальной документации + отсебятина. Фильтрация писем до попадания в очередь сообщений, на этапе SMTP-сессии, эмуляция SMTP для не-SMTP почты, и пр.

Postfix - фильтрация после очереди

Фильтрация в Postfix уже после попадания письма в очередь. Вольный перевод некоторых частей официальной документации + отсебятина. Простые и сложные примеры, разные фильтры для разных доменов, и пр.

Postfix - Postscreen, первый уровень обороны

Использование свежей разработки Postfix, - блокировщика зомби Postscreen. Эмуляция SMTP-сессии для ботов вместо реального соединения с smtpd. Вольный перевод некоторых частей официальной документации + отсебятина.

Dovecot 2 - описание настроек, в контексте рассматриваемой конфигурации

Описание ключевых параметров конфигурации, состав Dovecot, терминология, настройка и т.п. Как происходит аутентификация, совместная работа с Postfix, с SQL-базой PostfixAdmin и т.п. Вольный перевод некоторых выборочных частей официальной документации + отсебятина.

Dovecot 2 - ACL

Изложение своими словами части официальной документации + некоторая отсебятина.

  • Наследуемый и глобальный ACL
  • Формат директив в файлах ACL
  • ACL для мастер-пользователя
  • и т.п.

Dovecot 2 - Sieve

Изложение своими словами части официальной документации + некоторая отсебятина.

  • Базовая конфигурация
  • ManageSieve
  • Плагины и расширения Pigeonhole Sieve
  • и т.п.

RoundCube - плагины, описание

Roundcube - краткое описание некоторых моих плагинов.

RoundCube - мой плагин автоподписки нового пользователя New User Autosubscribe

Мой плагин New User Autosubscribe. Автоматическая привязка IMAP папок для нового пользователя. Плагин позволяет сразу связать нового пользователя с его IMAP-папками, без дополнительных манипуляций с настройками. Плагин кроме того позволяет задать порядок папок (например "Отправленные" после "Входящие", вместо "Черновики", как это обычно устанавливается по умолчанию).

RoundCube - мой плагин отображения текущего пользователя Login View

Мой плагин View Username. Показывает имя текущего пользователя (адрес) рядом с логотипом. Интерфейс Roundcube в стандартном варианте не отображает текущего пользователя. Если ящиков несколько, то тяжело понять какой сейчас открыт. Плагин выводит имя пользователя (адрес) на основной странице.

Автоответчики Posfix, Dovecot. Vacation - "я в отпуске".

Обзор нескольких автоответчиков (включая сторонние, в т.ч. и платные продукты). Особенности настройки, плюсы и минусы разных вариантов, сложности в конфигурировании, и механизмы реализации.

Важные определения

В этом разделе - ключевые определения, которые желательно понимать и помнить.

Здесь, как и везде в теме, упор сделан на быстрое запоминание, без оглядки на детальную достоверность формулировок.

За точными формулировками рекомендую обращаться в Википедию.


mta.png
MTA (Mail Transfer Agent) - почтовый сервер, отвечающий за пересылку почты. Общается с внешним миром, принимая и отправляя почту таким же как он сам по всей мировой сети. "В тылу" у него, в пределах родных доменов трудится MDA.


mda2.png
MDA (Mail Delivery Agent) - рассовывает почту по ящикам, обычно внутри конкретного физического сервера - по каталогам (папкам) файловой системы, заданным настройками для этих целей. Кладовщик, расфасовщик и грузчик, привязанный к одному "складу". Кроме того, в описываемой здесь конфигурации выполняет роль вахтера-постового (проверяет пароль и дает "добро" или запрещает доставку почты).


mua.png
MUA (Mail User Agent) - конечная программа просмотра ящиков и управления почтой для юзеров. Например Outlook, Bat, Gmail, или его родственник - RoundCube.


MSA (Mail Submission Agent) - "кусок" MTA, отнимающий у него функцию приема авторизованных SMTP-подключений перед отправкой почты.
MUA-клиент подключается на 587 порт MSA, проходит аутентификацию и все необходимые этапы (TLS и т.п.), и всю отправляемую почту отдает своему MTA. Такой механизм разделения обязанностей между 25 и 587 портом повышает надежность, оставляя на 25 порту только "чистые" MTA-функции.


LDA (Local Delivery Agent) - то же, что и MDA, но здесь "L" - это local (локальный). Основное отличие от MDA в том, что LDA не может сохранять почту на другом сервере.


SMTPd - Сервер, работающий по протоколу SMTP. Здесь - часть MTA. Основное назначение - принимать почту. Принимает ее только для того, чтобы тут же ее передать другим внутренним сервисам, обычно лишь ненадолго задерживая ее во временном внутреннем "отстойнике" - в очереди (в специальной папке на диске).


LMTPd - Тоже, что и SMTPd, но только "L" - это local (локальный). Сервер, работающий по протоколу LMTP. Здесь - часть MDA (+ клиент в MTA), - среднее звено из цепочки между менеджером очереди сообщений в Postfix-MTA и обработчиком почты в Dovecot-MDA/LDA. Здесь - работает над unix-сокетом (указывается полный путь к "файлу обмена"; на практике, в Postfix, настройка клиента lmtp может выглядеть например так: "lmtp:unix:/path/to/sock-file"). В некоторых задачах - конкурент LDA.


IMAPd - Сервер, работающий по протоколу IMAP. Здесь - часть MDA. Используется для доступа MUA в папки почтового ящика. Позволяет не хранить почту на клиенте, а работать с сервером в онлайн-режиме (этот его плюс, иногда бывает минусом).


SASL - это фреймворк (набор правил и механизмов) аутентификации. Работает ПОД протоколом (напр. LMTP), НАД соединением. В описываемой конфигурации используется в механизме передачи данных через unix-сокеты.


TLS/SSL - протоколы шифрования данных. В описываемой здесь конфигурации их использование обязательно для внешних подключений MUA.


MX - Прямая запись для почтового сервера (создается напр. на DNS регистратора домена). Примерно так: mail.domain.tld -> IP.IP.IP.IP


PTR - Обратная запись для сервера (настраивается со стороны подсети которой принадлежит IP сервер). Позволяет по IP определить связанное доменное имя. Важна для проверки спам-фильтрами. Примерно так: IP.IP.IP.IP -> mail.domain.tld


SPF - Запись в DNS перечисляющая сервера, которым разрешено отправлять почту от Вашего домена.


Postfix - MTA + дополнения. Говорят что он настолько крут, что автор за его взлом предлагает награду. Быстрый, надежный, простой в настройке, по сравнению с exim, но не такой как exim гибкий. Связка с Dovecot стала почти стандартом. Хорош для небольших почтовых систем (хотя недавно на глаза попался заголовок статьи о том, что - Microsoft выбирает Postfix :)). Дублирует некоторые функции Dovecot (которыми конечно можно не пользоваться).

Включает в себя (перечислено не всё):

  • smtpd - сервер, к которому коннектятся другие сервера (порт 25), для того, чтобы отдать ему его почту
  • smtp - сервис (клиент), который коннектится к другим серверам, чтобы отдать им их почту
  • submission - сервис переопределяющий порт (с 25 на 587), к которому должен подключаться MUA для отправки почты
  • qmgr - менеджер очереди сообщений, маэстро, который правит весь бал
  • cleanup - упаковщик, педант, чистюля: дополняет заголовки, исправляет/дополняет/подчищает адреса и т.п.
  • virtual, local - встроенные LDA (дублируют часть функций Dovecot)
  • policyd-spf - запрашивает TXT-запись в DNS, и проверяет в SPF разрешения для подключающегося MTA
  • postscreen - "пограничник", блокиратор зомби-компьютеров, эмулирующий SMTP-сессию и проводящий рад тестов SMTP-клиента
  • Milter - фильтр (протокол), проверяющий SMTP события и команды, а также содержимое письма до попадания его в очередь (см. ниже краткое определение или подробнее, заметку Postfix - Milter, фильтрация до очереди)
  • и пр.

Также, подробнее о Postfix, см. заметку Postfix - описание настроек, в контексте рассматриваемой конфигурации.


PostfixAdmin - Web-интерфейс к Postfix. Настройку Postfix на нем сделать невозможно, а вот создать домены/ящики, редактировать их свойства - как раз его работа. Хранит информацию в БД-SQL, которую использует его "папа" - Postfix, и даже Dovecot. Позволяет создать частичную автоматизацию пост-событий добавления/удаления/редактирования ящиков/доменов, которая ограничена возможностями стандартных прав пользователя Apache (хотя и здесь есть варианты). Есть два входа: для интерфейса суперадмина - domain.tld/postfixadmin, и для пользователей (например, чтобы отредактировать свои автоответчики) - domain.tld/postfixadmin/users. Впрочем второе может быть небезопасно для системы в целом.


ViMbAdmin - Альтернатива PostfixAdmin. Мне не понравилось в нем то, что для работы требует Zend Framework, Doctrine, Smarty, - и всё это обязательно устаревших версий! Т.е. установив последние версии рискуешь нарваться на глюки в его работе.


Dovecot - MDA + дополнения. Гибкий, имеет высокое быстродействие. Упор в разработке делался на безопасность. За взлом так же назначена награда от автора. :) Дублирует некоторые функции Postfix.

Состоит и поддерживает (перечислено не всё):

  • imap listener - IMAP-сервер. См выше краткое определение.
  • lmtp listener - LMTP-сервер. См выше краткое определение.
  • ACL (Access Contfol List) - список контроля доступа См. ниже краткое определение или см. заметку Dovecot 2 - ACL.
  • Sieve - язык правил для фильтрации писем. См. ниже краткое определение или см. заметку Dovecot 2 - Sieve.
  • и пр.

См. заметку Dovecot 2 - описание настроек, в контексте рассматриваемой конфигурации.


Milter (Mail Filter) - почтовый фильтр. Здесь - часть Postfix. Реализован как поддержка протокола Sendmail 8 Milter, и позволяет обрабатывать SMTP-события (CONNECT, DISCONNECT), SMTP-команды (HELO, MAIL FROM, и т.д.), а также почтовый контент (headers, body), - до попадания письма в очередь. Присутствует в двух ипостасях - для smtpd и для не smtp почты.
См. заметку Postfix - Milter, фильтрация до очереди


ACL (Access Contfol List) - список контроля доступа. Часть Dovecot. Позволяет для виртуальных пользователей (пока только виртуальных) задавать права в стиле системных Unix-пользователей на IMAP-папки. Удобен для блокирования прав на некоторые папки ящиков обычным пользователям, и, наоборот - для расширения прав на ящики master-пользователю. ACL есть двух типов: ACL и IMAP-ACL. ACL - создается и поддерживается администратором. IMAP-ACL - создается и поддерживается пользователями при использовании IMAP.
См. заметку Dovecot 2 - ACL


Sieve - язык для написания правил предварительного анализа почты перед ее сохранением, и управлением дальнейшей судьбой сообщений. Работает в составе Dovecot. Позволяет задавать глобальные правила, а также пользовательские правила (ManageSieve), назначаемые себе пользователем самостоятельно.
См. заметку Dovecot 2 - Sieve


Postgrey - отсеивает входящую почту, путем проверки характера настойчивости отправляющих MTA. Не настойчивые - отбрасываются. Те, кто прошел проверку - попадают в белый список на какое-то продолжительное время (например месяц). В период экзамена учет ведется в "сером списке", после прохождения которого определяется дальнейшая судьба "экзаменуемых".
См. заметку Postfix - описание настроек, в контексте рассматриваемой конфигурации.


DKIM - цифровая подпись для исходящей почты. Не обязательный, но желательный элемент почтовой системы. Теоретически, - позволяет не только подтвердить связь отправителя с его доменом (через открытый ключ доступный прямо в DNS), но и то, что письмо не подвергалось изменениям в процессе доставки.
См. заметку Postfix - описание настроек, в контексте рассматриваемой конфигурации.


ClamAV - антивирус, проверяющий содержимое поступающих писем на предмет наличия в них вредоносного кода. Его антивирусные базы нужно постоянно пополнять.
См. заметку Postfix - описание настроек, в контексте рассматриваемой конфигурации.


Spamassassin - "оценщик" угрозы спама. Программа, которая по массе критериев назначает для каждого письма баллы (очки), по которым можно определить вероятность, - является ли письмо спамом. Оценка производится еще в Postfix, а решение может принимать уже Dovecot, например с помощью Sieve перемещая письма с высоким баллом вероятности спама в соответствующую папку.


Amavis/Amavis-new - Интерфейс-посредник, диспетчер, через который почтовая система может осуществлять ряд функций (вместо того чтобы осуществлять их напрямик). "Начальник цеха", заведующий антивирусами, фильтрами, цифровыми подписями, доступом на внешние сервисы и пр., пропускающий всю работу через себя.


Ссылки

Ссылки, которые я использовал в поиске информации, разбиты по категориям (в которых они иногда дублируются) и вынесены для удобства на отдельную страницу.

Рекламные ссылки:
Комментариев: 24 RSS

Спасибо за качественно разжеванный материал. Учитывая подход к делу и разнонаправленность интересов Вам следует заняться созданием умного дома :)

Добрый день! Труд конечно монументальный за что огромное спасибо.

Но есть маленький вопросик: Вы на лдап случайно мигрировать не собираетесь ? )))

vadkalina.

Спасибо.

Нет не планирую, точно. Хотя конечно всякое бывает...

dovecot-lmtp does not exist

Sulution: http://serverfault.com/questions/512219/dovecot-lmtp-does-not-exist

В моем случае : conf.d/99-mail-stack-delivery.conf

Вообщем надо проверить все файлы конфигураций и там кучу всего нового узнать.

Vladimir

Интересно, в моей сборке не было такого файла.

Но вообще начать наверное имело смысл с того чтобы проверить exist этот файл в самом деле или нет

/var/spool/postfix/private/dovecot-lmtp

Впрочем уже не важно, Вы насколько я понял свою проблему решили.

Здравствуйте!

Мучаюсь с настройками Dovecot и потихоньку зверею.

У Вас среди папок imap стала создаваться лишняя папка name, я же ни как не могу заставить Dovecot создать нужную мне папку.

namespace inbox {

...........

mailbox Test {

auto = create

special_use = \Junk

}

...........

}

Ни чего не создается. Может быть причина в том, что я использую Maildir?

Как победить эту засаду?

HighMan

Здесь везде тоже Maildir.

Не исключено, быть у Вас проблема из-за использования "special_use". Какая у Вас версия Dovecot? Насколько я понимаю, "special_use" можно использовать в Dovecot начиная с версии 2.1

Dummy Luck

Добрый день.

Dovecot 2.2.13.

Каталог создавать отказывается. В логах все чисто.

special_use комментировал и все равно каталог не создается.

Можно, конечно, создавать его "вручную", но это как-то не правильно.

Еще есть вопрос по auth_mechanisms = plain login. Это очень не здорово для безопасности, т.к. использовать самоподписные SSL сертификаты, в моем случае, нельзя.

Согласно http://wiki2.dovecot.org/Authentication/Mechanisms, по умолчанию используется auth_mechanisms = plain login cram-md5, но я пока не понял, какие нужно внести дополнительные изменения. Сделал auth_mechanisms = plain login cram-md5 и началась какая-то странная непонятка. В логах все чисто. Пытаюсь заново настроить учетную запись в Thunderbird и начинаются чудеса. Автоматические настройки определяют не пойми что, а указав в настройках, что без шифрования, но "Защищенный пароль", отказывается авторизовываться. Меняю на "пароль без защиты передачи" и нормально авторизуюсь. Если судить по логу Dovecot, то c "зашифрованным паролем" method=CRAM-MD5 и ошибка авторизации. С "Пароль без защиты передачи" все проходит нормально, method=PLAIN. Убираю, вообще, из 10-auth.conf auth_mechanisms и смотрю doveconf.

doveconf | grep 'auth_mech'

auth_mechanisms = plain

Заврались что-то в Голубятне.

Делаю auth_mechanisms = cram-md5 и идет ошибка авторизации. Хоть с зашифрованным паролем, хоть без.

Как обезопасить пароль без использования SSL???

Заранее благодарен!

HighMan

Дело в том, что всю эту пачку заметок я написал как раз потому, что крайне редко с этим сталкивался, и каждый раз приходилось терять на этом много времени. Поэтому я один раз засел (весьма надолго) за изучение всего с чем сталкивался и отформатировал в читабельном виде это для сайта, что заставило меня навести порядок и систематизировать все свои разрозненные заметки. Т.е. это публичная шпаргалка, созданная с целью больше не тратить в будущем на это время.

С вопросами, которые Вы задаете я не сталкивался, поэтому чтобы ответить мне нужно заново засесть за документацию и погрузится в длительное изучение. Вот в чем дело.

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

Папка конечно должна создаваться. Обратите внимание, что в моем примере стоит "auto=subscribe", а у Вас "auto=create". Кроме того папка может создаваться если при создании ящика автоматически посылать приветственное письмо. Вообще, насколько я понимаю autocreate создает папку только при первом подключении пользователя.

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

Добрый день, есть вопрос, может Вы мне поможете, настроил сервер с учетом ваших статей, решил проверить, и вот что обнаружил, можно подключиться к серверу по telnet и написать письмо от любого сервера любого имени пользователю который обслуживается моим сервером, формально нет проверки helo/ehlo имени и ip адресу с которого идет подключение, но вот не могу врубиться как это исправить. Может Вам будет проще наглядный пример того что я описал:

>>telnet mail.example.ru 25

Trying 192.168.5.5...

Connected to mail.example.ru.

Escape character is '^]'.

220 mail.example.ru ESMTP

ehlo gmail.com

250-mail.example.ru

250-PIPELINING

250-SIZE 102400000

250-ETRN

250-STARTTLS

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

mail from:hdspam@gmail.com

250 2.1.0 Ok

rcpt to:admin@example.ru

250 2.1.5 Ok

data

354 End data with .

From:hdspam@gmail.com

Data: 12.02.1700

Subject: test

test mail from telnet

.

250 2.0.0 Ok: queued as 8AB525C009E

^]

telnet>

сервер принял письмо, и поставил его в очередь на доставку, а этого не должно быть, так как ежу понятно что я не подключился с серверов gmail что бы писать от домена gmail.com.

Буду очень признателен если подскажите где я накосячил с настройкой, конфиги сейчас такие: hastebin.com/edareqinuy.makefile

Сергей.

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

Но если все таки есть такая необходимость, то для начала имеет смысл настроить SPF (см. здесь: http://dummyluck.com/page/postfix_konfiguracia_nastroika#spf ), - механизм в котором настраивается возможность проверки другими серверами Вашей исходящей почты, а так же такая же проверка у Вас чужой входящей почты.

Кроме того, когда Вы указываете для smtpd_helo_restrictions = ... reject_unknown_helo_hostname ... в конфиге main.cf Postfix, то отклоняются запросы в которых имя хоста не имеет соотв записи в DNS.

На всякий случай - важно не забывать что настраивая любые параметры для любых smtpd_***_restrictions, Вы сами так же будете в случае отправки письма - отправитель, а в случае приема - получатель.

Ага посмотрел Ваши конфиги.

Уберите лишние запятые в конце каждого списка параметров. И в конце каждого списка поставьте permit.

Проверьте на всякий случай через telnet - работает ли так же check_helo_access - выводится ли сообщение из Вашего /etc/postfix/helo_access.pcre в случае использования чужим отправителем имени Вашего домена (т.е. используйте Ваш домен вместо gmail в Вашем примере).

Добрый день, сейчас конфиг выглядит так: https://hastebin.com/avisafiqom.makefile

В /etc/postfix/helo_access.pcre добавлены строки:

/(mail\.example\.ru)$/ REJECT ACCESS DENIED. (${1})

/(example\.ru)$/ REJECT ACCESS DENIED.(${1})

Если повторить процедуру с указанием собственного сервера то получаем:

hastebin.com/fuxalefano.vbs

SFP у меня настроено

Сергей.

Сложно что-то сказать определенное, слишком много деталей может влиять на результат - включен ли Postgrey, Postscreen (например Ваш IP в процессе тестов мог успеть попасть в черный список), какие настроены коды ответов, какие настройки у остальных параметров, в правильном ли порядке и т.д. Лишний пробел, отсутствие в некоторых местах двух (!) обязательных проблеов, не в том месте запятая - все может повлиять на результат

Могу сказать точно что по инструкции на этом сайте настроено уже достаточно много работающих серверов.

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

меня интересует такой вопрос, почему когда я включаю опцию: reject_unknown_client_hostname в разделе smptd_client_restrictions у меня лигитимные почтовики реджектятся:

postfix/smtpd[46598]: NOQUEUE: reject: RCPT from unknown[85.25.243.123]: 450 4.7.1 Client host rejected: cannot find your hostname, [85.25.243.123]; from= to= proto=ESMTP helo=

Хотя при ручной поверке, понятно что все резолвится как надо. postfix не в chroot dns вроде нормально отрабатывают.

Как вообще заставить postfix проверять ehlo/helo с ip с которого идет подключение.

Спасибо что помогаете :)

В строке из лога отсутствует все кроме IP, в т.ч. там нет информации о hostname. Поэтому там и reject.

Что касается связки helo/ehlo с IP, то в smtpd_helo_restrictions стандартные параметры работают, скажем так - с тем кем клиент назвался, а не с тем кто он есть.

Видимо reject_unknown_client_hostname как раз то что Вы ищете. Но не советую :).

Это парсер схавал, все там было указано правильно и если все проводить вручную то все отрабатывает, но postfix делает reject при включении данной опции (reject_unknown_client_hostname) а почему не советуете ?

Не советую потому что вполне нормальная почта довольно часто приходит не от тех серверов которыми она была создана. В силу разных причин.

Попробуйте установить не дефолтный код для "unknown_client_reject_code = 550". И посмотрите как изменится (изменится ли) код ответа в логе для reject. Возможно у Вас все-же проблемы с DNS сервером.

Код 550 - жесткий отказ, код 450 - "попробуйте позже". Возможно код 450 используется каким-то Вашим антиспам сервисом, который проверяет настойчивость нормального сервера (боты обычно не настойчивы и не возвращаются после отказа, в отличии от норм. сервера, который повторяет попытки через время когда получает 450)

Исправил ошибку в предыдущем сообщении.

Исхожу из предположения что я правильно понял эту фразу из доков: "The SMTP server always replies with 450 when the mapping failed due to a temporary error condition.". Если я ее правильно понял то в случае "temporary error" у Вас в логе будет всегда 450, даже если Вы укажете 550 (см. выше).

Вообщем вот мой конфиг https://hastebin.com/obinahihok.makefile . Посмотрите пожалуйста :) буду очень благодарен

Навскидку по конфигам ничего не заметил.

Попробуйте подмену дефолтного кода ответа - см. выше.

Вопросы по теме статьи (просьба - без личностей), - присутствует премодерация:
   - регистрироваться НЕ обязательно! -

Комментарий будет опубликован только после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)