Справочник по 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) не показывает ошибок, а только зеленые галочки.