Справочник по DNS и почтовой инфраструктуре Mailcow (Пункты 201–300)
Глубокое погружение в PTR и обратную зону
- Запись
in-addr.arpa— это специальная доменная зона, используемая для обратного DNS-запроса (PTR). - Полное имя для PTR-записи IP
91.221.70.18выглядит так:18.70.221.91.in-addr.arpa. - Тот факт, что в статусе PTR указан провайдер (
dedic-center.ru), означает, что зона контролируется им, и запись нужно менять через него. - FCrDNS (Forward-confirmed reverse DNS) — это ситуация, когда прямое (A) и обратное (PTR) сопоставления совпадают и указывают друг на друга.
- FCrDNS является золотым стандартом для почтовых серверов и сильно повышает доверие.
- Если PTR указывает на что-то вроде
dedic-center.ru, а A-запись — наpostmail.nbics.net, FCrDNS не работает, и письма идут в спам. - Проверить FCrDNS можно двумя командами:
dig -x <IP>иdig <hostname> A. - Отсутствие PTR не только ухудшает доставляемость, но и может стать причиной длительных таймаутов при соединении.
Детали работы MX-приоритетов
- Приоритет MX (preference) — это целое число от 0 до 65535.
- Стандарт RFC 5321 требует наличия приоритета в MX-записи.
- Если у домена два MX-сервера с приоритетами 10 и 20, все письма сначала идут на сервер с приоритетом 10.
- Переключение на резервный сервер (приоритет 20) происходит только после того, как основной (10) не ответил в течение определенного времени (обычно несколько минут).
- Наличие двух MX-записей с одинаковым приоритетом означает, что нагрузка будет распределяться между ними случайным образом.
- Запись
MX 0 postmail.nbics.netтехнически возможна, но 0 обычно зарезервирован для особых случаев и не рекомендуется для единственного сервера. - Указывать в MX имя, для которого нет A-записи (как в случае с
mail.books.nbics.net), — фатальная ошибка, почта теряется. - Gmail, Яндекс и Outlook могут по-разному обрабатывать отсутствие приоритета: от помещения в спам до полного отказа в доставке.
Расширенный синтаксис SPF
- Механизм
aв SPF (a:postmail.nbics.net) проверяет все A- и AAAA-записи указанного домена. - Механизм
mxв SPF проверяет все IP-адреса серверов, перечисленных в MX-записях домена. v=spf1 mx -all— более короткий и элегантный способ записи для типовой конфигурации.- Механизм
ip4позволяет явно перечислить разрешенные IPv4-адреса:ip4:91.221.70.18. - Квалификатор
-allозначает "жесткий провал" (hard fail) — письмо должно быть отклонено. - Квалификатор
~allозначает "мягкий провал" (soft fail) — письмо принято, но помечено как подозрительное. - Квалификатор
?allозначает "нейтрально" — ничего не говорит о подлинности письма. - В 2025 году для максимальной защиты рекомендуется использовать
-all. - Если в будущем вы будете отправлять письма через сервис вроде Mailchimp, его нужно будет добавить в SPF через
include:_spf.mailchimp.com.
Нюансы DKIM
- Селектор (
s=emailв твоей записи) позволяет иметь несколько DKIM-ключей для одного домена (например, для разных почтовых серверов или ротации ключей). - Тег
t=sозначает, что данный ключ нельзя использовать для подписывания писем от поддоменов. - DKIM-подпись гарантирует не только то, что письмо от вас, но и что оно не было изменено в пути.
- Публичный ключ (
p=...) — это длинная строка в base64, которую нельзя обрезать или изменять. - Mailcow автоматически создает пару ключей (приватный и публичный) для каждого нового домена.
- Приватный ключ хранится в конфигурации Mailcow и никогда не должен быть опубликован.
- Проверить валидность DKIM-записи можно с помощью онлайн-инструментов, введя селектор и домен.
- Срок действия DKIM-ключа не ограничен, но рекомендуется менять его раз в год или два для усиления безопасности.
DMARC: Политики и Отчеты
- Тег
pct=100означает, что политика применяется к 100% писем. Можно начать с меньшего процента, чтобы протестировать. - Тег
rua=mailto:указывает адрес для получения агрегированных отчетов (XML). - Тег
ruf=mailto:указывает адрес для получения форензик-отчетов (данные о каждом провалившемся письме). - Тег
fo=1означает, что форензик-отчет должен быть отправлен, если провалилась хотя бы одна из проверок (SPF или DKIM). - Тег
aspf=sвключает строгий режим проверки SPF (домен в конверте должен точно совпадать с доменом в заголовке From). - Тег
adkim=sвключает строгий режим проверки DKIM. - Отчеты DMARC отправляют не только Gmail, но и Яндекс, Mail.ru, Outlook и многие другие, если домен отправляет им много писем.
- DMARC-отчеты нужны не для мгновенного чтения, а для долгосрочного мониторинга и выявления проблем.
- Если ящик для отчетов (
rua) переполнится или станет недоступен, отправители (Gmail и др.) просто перестанут слать отчеты, на доставку писем это не повлияет. - Политика
p=reject— самая строгая и говорит принимающему серверу: "Отклони письмо навсегда, не пытайся отправить в спам". - Политика
p=quarantineговорит: "Отправь в спам". - Политика
p=noneговорит: "Ничего не делай, но пришли отчет".
Autodiscover/Autoconfig: Как это работает изнутри
- Outlook, пытаясь найти autodiscover, обращается по URL:
https://autodiscover.books.nbics.net/Autodiscover/Autodiscover.xml. - Thunderbird обращается по URL:
https://autoconfig.books.nbics.net/mail/config-v1.1.xml. - Если CNAME-записи нет, клиент может пробовать "умные" догадки, например, обращаться к
https://books.nbics.net/.well-known/autoconfig/mail/config-v1.1.xml. - Наличие правильно настроенных autodiscover/autoconfig записей избавляет пользователей от необходимости знать разницу между IMAP и SMTP.
- SRV-запись для autodiscover — это запасной механизм на случай, если прямое HTTPS-соединение не удалось.
Архитектурные Решения и Best Practices
- Разделение на "человеческий" (
books.nbics.net) и "мусорный" (trash.nbics.net) домены позволяет применять к ним разные политики безопасности. - Например, для "мусорного" домена можно выставить DMARC
p=quarantine, а для "человеческого" —p=reject. - Технический хостнейм (
postmail.nbics.net) не должен фигурировать в поле "From" отправляемых писем. - Адреса техподдержки и обращения к людям должны идти только с "человеческого" домена.
- При масштабировании (например, добавлении второго почтового сервера) вы просто создаете вторую MX-запись с более высоким приоритетом (например, 20).
- Стратегия "мусорного домена" копирует подход крупных корпораций, использующих отдельные домены для уведомлений (например,
amazonses.com).
Управление Почтовыми Ящиками и Лимитами
- Поле "Полное имя" (Display Name) для технических ящиков вроде
dmarc-reportsможет быть любым понятным, например, "DMARC Aggregated Reports". - Это поле не влияет на техническую функциональность и нужно только для идентификации ящика в веб-интерфейсе.
- В Mailcow лимиты отправки можно настроить как на уровне всего домена, так и на уровне отдельных ящиков.
- Если оставить лимиты отправки пустыми или равными 0, значит, они не ограничены.
- Параметр "Ретрансляция всех получателей" используется только в конфигурациях, где Mailcow выступает в роли промежуточного ретранслятора (relay).
- Для обычного почтового сервера, который доставляет почту в свои же ящики, все опции ретрансляции должны быть отключены.
Сравнение и Выбор Технологий (LDAP vs Keycloak)
- OpenLDAP — это "телефонная книга", а Keycloak — это "пропускная система с регистратурой".
- Keycloak умеет "федерировать" пользователей, то есть работать как единая точка входа для множества приложений (SSO).
- Keycloak поддерживает не только локальную регистрацию, но и вход через аккаунты Google, GitHub и другие.
- OpenLDAP хранит только атрибуты пользователя (имя, пароль, email), Keycloak управляет еще и сессиями, правами доступа и ролями.
- Для интеграции с Mailcow через OpenLDAP потребуется настраивать маппинг атрибутов (что соответствует чему в почтовой системе).
- Интеграция с Keycloak через OpenID Connect (OIDC) проще и современнее: пользователь просто перенаправляется на страницу входа Keycloak.
- Выбор между OpenLDAP и Keycloak зависит от задачи: если нужно просто хранить пользователей — OpenLDAP, если нужна саморегистрация и SSO — Keycloak.
Решение Проблем с Почтовыми Клиентами
- Если Thunderbird не может найти настройки автоматически, проблема часто в кэше DNS или в том, что autoconfig запись еще не распространилась.
- Ошибка "Done is inactive" почти всегда решается повторной проверкой (Re-test) после ручного ввода правильных портов и метода аутентификации.
- Указание неверного порта для SMTP (например, 993) — самая распространенная ошибка при ручной настройке.
- Если пароль не принимается, убедитесь, что в качестве имени пользователя используется полный email, а не его часть.
- Outlook может кэшировать неудачные попытки autodiscover, поэтому после исправления DNS может потребоваться время или перезагрузка.
Безопасность и "Прогрев" IP
- "Холодный" IP — это IP-адрес, который ранее не использовался для отправки почты или использовался для сомнительных целей.
- Даже идеально настроенный сервер с холодного IP будет получать задержки от крупных провайдеров.
- Процесс "прогрева" IP заключается в постепенном увеличении объема легитимной почты для накопления положительной репутации.
- Отправка слишком большого количества писем с нового IP в первый же день может привести к его мгновенной блокировке.
- Жалобы на спам (abuse reports) — самый быстрый способ убить репутацию и IP, и домена.
- Feedback Loop (FBL) — это механизм, при котором провайдер (например, Mail.ru) возвращает отправителю информацию о том, что получатель пометил письмо как спам.
Практические Команды (продолжение)
host -t PTR <IP-адрес>— альтернативная команда для проверки PTR.nslookup -type=mx <домен>— проверка MX-записей в Windows.systemctl status postfixв контейнере или на сервере позволяет увидеть, работает ли почтовая служба.docker exec -it <имя_контейнера> bash— команда для входа внутрь контейнера Mailcow для детальной диагностики.postqueue -p(внутри контейнера postfix) показывает очередь писем, которые не могут быть доставлены.tail -f /var/log/mail.log(путь может отличаться) — просмотр логов почты в реальном времени.swaks— мощная командная утилита для тестирования SMTP-серверов и отправки тестовых писем.
Различные Нюансы из Переписки
- Если провайдер не дает PTR для домашнего статического IP, это делает невозможным использование его для серьезного почтового сервера.
- Использование Cloudflare Tunnel или других решений не решит проблему с 25-м портом, так как это требование к IP, а не к домену.
- Даже если вы никому не отправляете почту, многие сервисы (банки, соцсети) все равно будут пытаться доставить вам письма, и им нужен ваш работающий MX.
- Закрытая корпоративная почта внутри компании на своем сервере может прекрасно работать и без PTR, если вся переписка идет внутри.
- Технические ящики вроде
dmarc-reportsлучше создавать с включенным сборщиком мусора или периодически чистить, чтобы они не переполняли диск. - "Закрашивание" ключей звездочками в посте — обычная практика безопасности при публикации скриншотов.
- Приоритеты в SRV-записи (0 1 443) означают: приоритет 0 (самый высокий), вес 1 (для распределения нагрузки), порт 443.
- TLSA-запись для порта 25 нужна, только если вы хотите, чтобы другие серверы проверяли ваш TLS-сертификат через DANE.
- Mailcow не позволит вам создать почтовый домен, который совпадает с хостнеймом, если это не было сделано специальным образом.
- YunoHost скрывает сложность от пользователя, но под капотом использует те же самые принципы разделения.
- Понимание разницы между
postmail.nbics.net(сервер) иmail.nbics.net(веб-интерфейс) помогает в диагностике проблем. - Если кнопка "Done" в Thunderbird не активна, проверьте, не осталось ли предупреждение (желтый треугольник) после нажатия Re-test.
- Идеальная настройка DNS для почты — это когда ни один из онлайн-чекеров (mxtoolbox, mail-tester) не показывает ошибок, а только зеленые галочки.
Чтобы сервер работал после закрытия терминала
Как остановить сервер
Простой скрипт для управления (Linux/Mac)
Самый простой способ для начала
Структура папок
Запуск сервера
Проверка
Важно: