К основному контенту

Postfix: Как диагностировать задержку ответа на порту 25 и проблемы с DNS

В этой статье мы разберем типичные проблемы, из-за которых почтовый сервер Postfix может медленно отвечать на соединения по порту 25 (SMTP), и дадим пошаговые инструкции по диагностике и устранению неполадок. Все примеры приведены на базе FreeBSD 14. Названия хостов и IP-адреса заменены на вымышленные.


Проблема: задержка при соединении с SMTP-сервером

Почтовый сервер (например, mail.example.com) долго отвечает на входящие SMTP-соединения — до 5-10 секунд перед выдачей приветствия 220. Это может замедлить доставку писем и вызвать проблемы у отправителей.


Причины задержек:

1. postscreen_greet_wait

Postfix может быть сконфигурирован на намеренную задержку перед приветствием клиента, чтобы защититься от спам-ботов:

postconf postscreen_greet_wait
postscreen_greet_wait = ${stress?{2}:{6}}s

Если включён postscreen, то задержка 6 секунд по умолчанию — это нормально. Отключается или настраивается параметром postscreen_greet_wait в /usr/local/etc/postfix/main.cf.


2. Медленный запуск smtpd-процесса

Если master.cf ограничивает число smtpd, и они заняты, Postfix ждёт освобождения:

smtpd      unix  n       -       n       -       10      smtpd

Параметр maxproc указывает максимум одновременно работающих smtpd. Повышается в /usr/local/etc/postfix/master.cf.

Проверь текущую загрузку:

ps ax | grep smtpd

3. Chroot-среда и отсутствие /dev/urandom или /etc/resolv.conf

Если smtpd работает в chroot, но внутри окружения нет необходимых файлов:

  • /dev/urandom — нужен для TLS/SSL

  • /etc/resolv.conf — нужен для DNS-запросов

Решение:

  • Убедитесь, что эти файлы доступны внутри /var/spool/postfix.

  • Либо отключите chroot для smtpd:

smtpd      unix  n       -       n       n       -       smtpd

4. Ошибка DNS

Postfix использует системный DNS, указанный в /etc/resolv.conf. Пример:

nameserver 8.8.8.8
nameserver 1.1.1.1

Если DNS работает нестабильно или отдает неверные записи, это вызывает задержки на этапе RCPT TO или при проверке HELO.

Проверь работу DNS:

dig mx domain.com
host domain.com

Проверь запросы в tcpdump:

tcpdump -i em0 port 53

Ошибки в логах и их значение

Пример логов:

(connect to mail.remotehost.com[104.21.16.1]:25: Operation timed out)

Причина: Postfix не смог разрешить MX-запись домена remotehost.com и использовал A-запись, которая не принимает почту.

Решение: Проверь DNS-записи домена:

dig mx remotehost.com

Если вместо MX есть только A-запись, то Postfix пробует доставку на неё. Если там нет SMTP-сервера — будет timeout или connection refused.


Как посмотреть очередь Postfix

postqueue -p

Показанные ошибки могут быть:

  • Connection refused — удалённый сервер не принимает соединения

  • Operation timed out — удалённый сервер недоступен

  • Relay access denied — отказ из-за политики


Как увидеть, кто слушает порт 25

sockstat -4 -l | grep :25

Или с netstat:

netstat -an | grep ".25"

Как узнать, какие DNS использует Postfix

Postfix не указывает явно DNS-сервер в логах. Но он использует системные из /etc/resolv.conf. Убедитесь, что они рабочие:

cat /etc/resolv.conf

Проверь DNS-запросы с tcpdump:

tcpdump -i em0 port 53 -n

Как включить отладку Postfix по домену

postconf -e 'debug_peer_list = example.com'
postconf -e 'debug_peer_level = 2'
postfix reload

После этого появятся подробные логи при работе с указанным хостом.


Заключение

Задержка на SMTP-порте может быть вызвана разными причинами: от защиты Postfix до проблем с DNS или нехваткой ресурсов. Используйте системные инструменты FreeBSD и расширенное логирование Postfix, чтобы поэтапно диагностировать проблему. Внимание к деталям — залог стабильной почтовой системы.

Комментарии

Популярные сообщения из этого блога

Debian 10: Подключение и Настройка Архивных Репозиториев для Работы

Актуальные рабочие репозитории для Debian 10: подключение и исправление проблем Debian 10 "Buster" официально устарел, и его репозитории были перемещены в архив. Это означает, что стандартные зеркала больше не содержат пакеты для данной версии. Однако можно продолжать использовать Debian 10, подключив архивные репозитории. В этой статье рассмотрим, как правильно настроить систему и устранить возможные проблемы. 1. Подключение архивных репозиториев для Debian 10 Шаг 1: Редактирование файла sources.list Для работы с пакетами необходимо обновить список репозиториев в файле /etc/apt/sources.list . Откройте его с правами суперпользователя: sudo nano /etc/apt/sources.list Замените его содержимое на следующее: deb http://archive.debian.org/debian buster main contrib non-free deb http://archive.debian.org/debian-security buster/updates main contrib non-free deb http://archive.debian.org/debian buster-updates main contrib non-free Сохраните изменения ( Ctrl + X , затем Y и Enter ). Ш...

Настройка и подключение IPSec в Windows

Настройка IPSec на Windows включает в себя создание правил безопасности и фильтров для защиты сетевого трафика. Ниже — пошаговое руководство. Включение службы IPSec Перед настройкой убедитесь, что служба IPSec Policy Agent запущена: Нажмите Win + R , введите services.msc и нажмите Enter . Найдите IPsec Policy Agent . Если она не работает, нажмите ПКМ → Свойства . Установите Тип запуска: Автоматически , затем нажмите Запустить . Настройка политики IPSec через «Локальную политику безопасности» Нажмите Win + R , введите secpol.msc , нажмите Enter . Перейдите в Политики IP-безопасности в локальном компьютере . В правом окне нажмите Создать политику IP-безопасности → Далее . Укажите имя политики (например, "IPSec VPN"), снимите флажок Активировать правило по умолчанию , нажмите Далее . Нажмите Добавить , чтобы создать правило. Транспортный или туннельный режим : Если IPSec для защищенной локальной сети – выберите Транспортный режим . Если IPSec для VPN – выберите Туннельн...

Полный обзор AWX для Ansible: возможности, назначение и логика работы

AWX — это веб-интерфейс, REST API и механизм управления для Ansible, который делает автоматизацию удобнее и управляемее. Он является основой для Red Hat Ansible Automation Platform (AAP) и предоставляет мощные возможности для администрирования инфраструктуры. 🔹 Возможности AWX Управление инвентарем Подключение к динамическим инвентарям (например, AWS, GCP, VMware). Группировка хостов и управление ими через GUI. Импорт инвентаря из статических файлов (INI, YAML, JSON). Планирование и выполнение заданий Запуск плейбуков по расписанию. Возможность ручного запуска через интерфейс. Параллельное выполнение нескольких задач. Контроль доступа и безопасность Ролевая модель управления (RBAC). Поддержка интеграции с LDAP, SAML, OAuth. Гибкие политики доступа к ресурсам. Логирование и мониторинг Детальный журнал выполнения задач. Интеграция с Grafana, Prometheus, ELK. Уведомления (Slack, Email, Webhook). CI/CD и интеграция с SCM Авто...