Корпоративная почта на Postfix: SPF, DKIM, DMARC и борьба со спамом для бизнеса
Меня зовут Семёнов Евгений Сергеевич, я директор АйТи Фреш. Из всех инфраструктурных задач, которые проходят через нашу команду, корпоративная почта остаётся самой недооценённой. Бухгалтер не получает счёт от поставщика — «наверное, провайдер тормозит». Менеджер по продажам отправил коммерческое предложение, клиент его не видит — «может, не интересно?» На самом деле в 80 % случаев виноват плохо настроенный почтовый сервер. За 15 лет я разобрал десятки таких историй. В этой статье — пошаговая инструкция, как сделать корпоративную почту, которая не теряет письма и не открывает дверь злоумышленникам.
Почему «у нас всё работает» — это самый опасный диагноз
В декабре 2024 года к нам обратился клиент — производство строительной химии, 80 человек в офисе и на двух заводах. Жалоба простая: «Контрагенты не получают наши счета». Бухгалтерия неделю выясняла с тремя компаниями: проверяли спам, обновляли список контактов, пересылали повторно. Только когда ситуация повторилась с пятым контрагентом подряд, ИТ-руководитель решил позвонить нам.
Аудит показал картину, которую я видел десятки раз. SPF-записи в DNS не было вообще, DKIM не настроен, IP сервера попал в Spamhaus PBL ещё в 2022 году после взлома, и компания об этом не знала. Gmail и Mail.ru тихо складывали 60 % их писем в спам, а часть вообще не принимали с reject. Простой подсчёт: 80 человек × 30 деловых писем в день × 60 % потерь = 1440 писем ежедневно никуда не доходило. Сколько денег это стоило за два года — никто не считал, но руководитель компании после нашего отчёта схватился за голову.
Свой сервер или облако: честный разбор
Прежде чем уходить в технику, надо ответить на главный вопрос: вам вообще нужен свой Postfix? За 15 лет я выработал простую матрицу:
| Сценарий | Что выбирать | Почему |
|---|---|---|
| Офис до 30 человек, обычная переписка | Яндекс 360 для Бизнеса | 250 ₽/ящик/мес, нулевая поддержка, отличная доставляемость |
| Офис 30–80 человек | Mail.ru для Бизнеса или Яндекс 360 | Те же плюсы, корпоративные тарифы |
| 80+ человек, требования к контролю | Свой Postfix + облачные ящики гибридно | Контроль политик, локальное хранение |
| Массовые рассылки 1000+/день | Свой Postfix как relay | Облачные провайдеры режут массовые рассылки |
| Юр. требования к хранению переписки | Свой Postfix + Dovecot | Полный аудит, архивирование, eDiscovery |
Если вы попали в первую или вторую строку — закрывайте статью и открывайте сайт Яндекса. Серьёзно. Поднимать свой Postfix для 25 ящиков — это пилить дрова бензопилой, когда нужен топор. Дальнейшая статья — для тех, кто действительно решил держать почту у себя.
Анатомия корпоративного почтового сервера
Полноценный сервер для бизнеса — это не один Postfix, а связка из шести компонентов:
- Postfix — MTA, принимает и отправляет SMTP-трафик.
- Dovecot — IMAP/POP3 для клиентов (Outlook, Thunderbird, мобильные).
- Rspamd — антиспам и DKIM-подпись исходящих.
- OpenDMARC или встроенные механизмы Rspamd — проверка DMARC.
- ClamAV — антивирусная проверка вложений.
- Postfwd / Postscreen — защита от ботов и rate limiting.
Все эти компоненты ставятся за час, но дьявол в деталях конфигурации и в DNS. Именно DNS-записи — главный источник проблем у 90 % клиентов, которые приходят к нам с жалобами на доставляемость.
SPF: разрешите своему серверу отправлять от вашего имени
SPF (Sender Policy Framework) — DNS-запись TXT, в которой вы указываете, какие IP-адреса имеют право отправлять почту от имени вашего домена. Если письмо приходит с IP, которого нет в SPF, получатель считает его подозрительным.
# DNS TXT-запись для company.ru
company.ru. IN TXT "v=spf1 ip4:185.45.67.89 ip4:185.45.67.90 include:_spf.mail.ru ~all"
# Что значит каждая часть:
# v=spf1 — версия SPF (других нет)
# ip4:185.45.67.89 — IPv4 нашего основного почтового сервера
# ip4:185.45.67.90 — IPv4 резервного MX
# include:_spf.mail.ru — доверяем серверам Mail.ru (если часть ящиков там)
# ~all — все остальные источники под подозрением (soft fail)
# После 2 недель тестов меняем на:
# -all — жёсткий fail для всех неперечисленных IP
Ключевая ошибка: ставить сразу -all. Потом обнаруживается, что у вас была настроена отправка из 1С через CRM-сервер, который вы забыли в SPF упомянуть, и все уведомления из CRM перестают приходить. Начинайте с ~all, через две недели мониторинга — переходите на -all.
DKIM: цифровая подпись каждого письма
DKIM (DomainKeys Identified Mail) — криптографическая подпись заголовков письма приватным ключом. Получатель проверяет подпись через публичный ключ в DNS и убеждается, что письмо действительно от вас и его никто не редактировал в пути.
Мы делаем DKIM через Rspamd — он сам подписывает все исходящие письма для всех доменов, которые он обслуживает.
# Установка Rspamd на Debian 12 / Ubuntu 22.04
apt install -y rspamd redis-server
systemctl enable --now rspamd
# Создание DKIM-ключа
mkdir -p /var/lib/rspamd/dkim
rspamadm dkim_keygen -s 2026 -d company.ru -b 2048 \
-k /var/lib/rspamd/dkim/company.ru.2026.key
# Команда выводит готовую DNS-запись:
# 2026._domainkey.company.ru. IN TXT (
# "v=DKIM1; k=rsa; p=MIIBIjANBgkqhki..."
# )
chown _rspamd:_rspamd /var/lib/rspamd/dkim/company.ru.2026.key
chmod 600 /var/lib/rspamd/dkim/company.ru.2026.key
Конфигурация подписи в Rspamd:
# /etc/rspamd/local.d/dkim_signing.conf
enabled = true;
path = "/var/lib/rspamd/dkim/$domain.$selector.key";
selector = "2026";
try_fallback = true;
use_domain = "header";
sign_authenticated = true;
sign_local = true;
allow_hdrfrom_mismatch = false;
Интеграция Rspamd с Postfix через milter:
# /etc/postfix/main.cf — добавляем
smtpd_milters = inet:127.0.0.1:11332
non_smtpd_milters = inet:127.0.0.1:11332
milter_protocol = 6
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
milter_default_action = accept
systemctl restart postfix rspamd
Селектор «2026» — это произвольное имя ключа. Удобно ставить год: каждый январь меняете ключ, и старый сразу становится недействительным. Это обязательная гигиена для серьёзных компаний.
DMARC: связываем SPF и DKIM в политику
DMARC говорит получателю: «Если SPF и DKIM не сошлись, делай вот так». Без DMARC антивирусные шлюзы вашего контрагента сами решают, верить вашему письму или нет, и часто решают не в вашу пользу.
# DNS TXT-запись DMARC
_dmarc.company.ru. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@company.ru; ruf=mailto:dmarc-forensic@company.ru; fo=1; adkim=r; aspf=r; pct=100"
# Расшифровка:
# p=none — на старте только наблюдаем, никого не блокируем
# rua= — куда слать ежедневные агрегированные отчёты
# ruf= — куда слать отчёты по каждому подозрительному письму
# fo=1 — генерировать forensic при любом fail
# adkim=r — DKIM-домен может быть relaxed-подмножеством
# aspf=r — то же для SPF
# pct=100 — политика касается 100 % писем
План внедрения DMARC такой: первые 14 дней p=none и читаем агрегированные отчёты. Видим, какие IP отправляют от вашего имени — часть законных (вы про них могли забыть), часть мошеннических. Дополняем SPF законными источниками, после чего переходим к p=quarantine на месяц. И только потом — p=reject.
PTR-запись: обратный DNS
PTR — это обратная DNS-запись, которая по IP вашего сервера должна возвращать его hostname. Без PTR Gmail, Outlook и Mail.ru сразу режут оценку доверия. PTR настраивается не у регистратора домена, а у хостинга — там, где у вас стоит сервер.
# Проверка PTR из консоли
dig -x 185.45.67.89 +short
# Должно вернуть: mail.company.ru.
# Прямая запись должна вести обратно на тот же IP
dig mail.company.ru A +short
# Должно вернуть: 185.45.67.89
# Если PTR пустой — идём в личный кабинет хостинга
# (Hetzner Robot, Selectel, FirstByte и т.п.) → IP → rDNS
Rspamd для входящего антиспама
Та же связка Postfix + Rspamd, что подписывает исходящие, заодно фильтрует входящие. Конфигурация по умолчанию уже неплохая, но мы всегда добавляем три вещи: greylisting, расширенный список RBL и обучение байесом.
# /etc/rspamd/local.d/greylist.conf
enabled = true;
timeout = 300; # 5 минут задержка для новых отправителей
expire = 86400; # помним отправителя сутки
whitelist_symbols = ["WHITELIST_DKIM", "WHITELIST_SPF_DKIM"];
# Белые списки крупных провайдеров (чтобы не задерживать Yandex/Gmail)
whitelist_domains_url = ["https://maps.rspamd.com/freemail/free.txt.zst"];
# /etc/rspamd/local.d/rbl.conf — расширяем список RBL
rbls {
spamhaus_zen {
symbol = "RBL_SPAMHAUS_ZEN";
rbl = "zen.spamhaus.org";
}
barracuda {
symbol = "RBL_BARRACUDA";
rbl = "b.barracudacentral.org";
}
sorbs {
symbol = "RBL_SORBS";
rbl = "dnsbl.sorbs.net";
}
}
Greylisting убивает 70–80 % спама от ботнетов с нулевой настройкой, потому что бот не повторяет отправку через 5 минут. А вот легитимные SMTP-серверы (включая Gmail) — повторяют, и письмо проходит.
Postfix: правильные настройки для бизнеса
Базовая конфигурация Postfix, которую мы используем у клиентов:
# /etc/postfix/main.cf — ключевые параметры
myhostname = mail.company.ru
mydomain = company.ru
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost
# Виртуальные домены и ящики через MySQL/PostgreSQL
virtual_mailbox_domains = mysql:/etc/postfix/mysql-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-mailboxes.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-aliases.cf
# TLS — обязательно, минимум 1.2
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.company.ru/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.company.ru/privkey.pem
smtpd_tls_security_level = may
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_security_level = may
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
# Защита от open relay
smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
# Постскрин для отсева ботов до основного SMTP
postscreen_dnsbl_threshold = 3
postscreen_dnsbl_sites =
zen.spamhaus.org*3
b.barracudacentral.org*2
bl.spamcop.net*2
# Rate limiting — не более 100 писем/мин с одного клиента
smtpd_client_message_rate_limit = 100
# Размеры
message_size_limit = 26214400 # 25 МБ
mailbox_size_limit = 0 # без лимита (Dovecot управляет)
Защита от подделок и фишинга «от директора»
Самая распространённая атака на бизнес — письмо «от директора» с просьбой срочно перевести деньги контрагенту. Без правильной настройки SPF/DKIM/DMARC такое письмо проходит насквозь и попадает к бухгалтеру. По нашему опыту, две из трёх компаний без жёсткого DMARC хотя бы раз получали такое письмо, и в одном из десяти случаев — деньги уходили.
После настройки p=reject в DMARC такая атака превращается в техническую невозможность: письмо отклоняется на стороне сервера получателя. У одного нашего клиента (логистическая компания, 90 человек) после внедрения DMARC за год было два зафиксированных случая, когда мошенники пытались отправить письмо «от генерального» на ящик главбуха. Оба отклонены автоматически, бухгалтер их даже не видела.
Мониторинг доставляемости: что замерять
Настроить — половина дела. Дальше нужно регулярно проверять, что всё работает. Минимальный набор инструментов:
- mail-tester.com — отправляете тестовое письмо, получаете оценку 0–10. Норма для бизнеса — 9+. Меньше 7 — катастрофа, что-то срочно ломаем.
- Google Postmaster Tools — единственный способ увидеть реальную статистику доставки в Gmail. Регистрация бесплатна, подтверждение домена — TXT-запись в DNS.
- Mail.ru Postmaster — то же для Mail.ru. У них собственный набор требований и метрик.
- Yandex Postmaster — для Yandex.Mail. Менее информативный, но обязательно.
- Microsoft SNDS / JMRP — для Outlook.com и Hotmail.
- Анализатор DMARC-отчётов — DMARCian, Postmark, или собственный скрипт. Сырой XML читать тяжело.
Метрики, на которые мы смотрим у клиентов еженедельно:
| Метрика | Норма | Тревожный порог |
|---|---|---|
| Spam rate (Google Postmaster) | <0.1 % | >0.3 % |
| Domain reputation | High | Medium / Low |
| Authentication pass rate | >99 % | <95 % |
| TLS encryption rate | 100 % | <99 % |
| Bounce rate | <2 % | >5 % |
| Оценка mail-tester | 9–10 | <7 |
Что делать, если IP уже попал в чёрный список
Если IP в RBL — паниковать рано. Делистинг возможен, но требует терпения:
- Найти все RBL, в которых IP числится. Удобно проверять через mxtoolbox.com/blacklists.aspx.
- Для каждого RBL найти процедуру делистинга. У Spamhaus —
check.spamhaus.org, у Barracuda —www.barracudacentral.org/lookups, у SORBS —www.sorbs.net. - Перед запросом на делистинг убедиться, что причина включения устранена: сервер не открытый relay, нет вирусов на машинах в сети, есть SPF/DKIM/DMARC.
- Запросить делистинг. Spamhaus обычно отвечает за 4–24 часа, остальные — от 1 до 7 дней.
- Если попадание было серьёзным — лучше сменить IP. У хостингов это стоит 200–500 ₽ единовременно, и сразу решает все проблемы.
Кейс: как мы вытащили почту корпоративного клиента из спама
Январь 2026 года. Клиент — торговая компания, 110 человек, своя CRM с автоматическими уведомлениями клиентам. Жалоба: «Из 1500 уведомлений в день клиенты получают примерно треть, остальное в спаме». Аудит показал классику: SPF был, но без CRM-сервера; DKIM не подписывал письма из CRM; PTR-запись указывала на хостинг-провайдера, а не на mail.company.ru; в DMARC стояло p=none уже три года.
За 8 рабочих часов мы переписали SPF (добавили IP CRM-сервера), настроили DKIM-подпись для CRM-писем через выделенный селектор, поправили PTR через хостинг, начали мигрировать DMARC на p=quarantine. Параллельно зарегистрировали клиента в Google Postmaster и Mail.ru Postmaster, выгрузили IP из двух RBL, в которых он застрял после старого взлома.
Через две недели spam rate в Gmail упал с 4.2 % до 0.08 %, доставляемость в Mail.ru — с 35 % до 96 %. Бизнес-эффект: клиент посчитал, что плохая доставляемость стоила им 18–22 потерянных заказа в месяц при среднем чеке 80 000 ₽. Полная стоимость наших работ — 65 000 ₽, окупилась за пять рабочих дней.
Закажите аудит корпоративной почты
За 1 рабочий день мы проверим SPF, DKIM, DMARC и PTR ваших доменов, прогоним домен через mail-tester и реальные провайдеры, дадим письменный отчёт со списком найденных проблем и оценкой рисков. Стоимость аудита — 12 000 ₽, при заключении договора на сопровождение засчитывается в счёт работ.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы по корпоративной почте
- Свой сервер Postfix или Яндекс 360 для бизнеса?
- Для офиса до 50 человек и без жёстких требований к контролю — Яндекс 360 или Mail.ru для Бизнеса. Для 50+ человек, юр. отдела, требований к локальному хранению — свой Postfix. Гибридный вариант: Postfix только как relay для рассылок, основные ящики в облаке.
- Зачем нужны SPF, DKIM и DMARC, если письма и так уходят?
- Без них любой может отправить письмо «от имени» вашего директора и обмануть бухгалтерию. SPF/DKIM/DMARC защищают репутацию домена и блокируют подделки. Gmail и Mail.ru с 2024 года требуют все три записи для массовых рассылок.
- Сколько стоит развернуть свой почтовый сервер для офиса?
- Развёртывание — от 35 000 ₽ для базовой конфигурации (Postfix + Dovecot + Rspamd + SPF/DKIM/DMARC), от 75 000 ₽ для серверов с массовыми рассылками (warm-up, FBL, мониторинг доставляемости).
- Как проверить, попадают ли мои письма в спам?
- Используйте mail-tester.com — отправьте тестовое письмо, получите оценку 0-10. Подключите Google Postmaster Tools и Mail.ru Postmaster — там видно реальную статистику доставляемости. Норма для бизнеса — оценка от 8/10 и spam rate ниже 0.1 %.
- Делает ли АйТи Фреш почтовый аудит?
- Да. За 1 рабочий день мы проверяем DNS-записи, репутацию IP, реальную доставляемость в основные провайдеры (Gmail, Mail.ru, Yandex, Outlook), даём письменный отчёт. Стоимость аудита — 12 000 ₽, при заключении договора на сопровождение засчитывается в счёт.