Решил поднять свой почтовый сервер? Отлично. Сейчас объясню, почему это одновременно лучшее и худшее решение, которое ты можешь принять для своей инфраструктуры.
Зачем вообще заморачиваться#
Что говорят в интернете: “Gmail бесплатный и работает отлично, зачем изобретать велосипед?”
Как есть на самом деле:#
Gmail и прочие публичные сервисы - это хорошо до тех пор, пока:
- Тебя не смущает, что твою переписку читают для таргетинга рекламы
- Ты не против того, что твой домен висит на чужой инфраструктуре
- Тебе не критично, когда Google решит внезапно заблокировать аккаунт без объяснений
- Ты готов платить за каждый ящик в корпоративном тарифе
- Тебе норм, что лимиты на размер ящика устанавливает кто-то другой
Свой почтовый сервер дает:
- Полный контроль - ты сам решаешь кто, что и как
- Безлимитные ящики - сколько нужно, столько и создашь
- Любой размер - ограничение только в железе
- Свои правила - никаких внезапных “обновлений политики”
- Прозрачность - ты знаешь где лежит твоя почта и кто к ней имеет доступ
Но есть нюанс.
Реальность: во что ты ввязываешься#
Первые 48 часов после запуска:#
Час 1: Сервер работает, письма ходят, ты доволен собой.
Час 3: Gmail отправляет твои письма в спам. Начинаешь разбираться с SPF.
Час 6: SPF настроен. Письма все равно в спаме. Погружаешься в DKIM.
Час 12: DKIM работает. Половина писем доходит. Открываешь документацию DMARC.
Час 24: Понимаешь, что твой IP попал в какой-то DNSBL. Гуглишь что это вообще такое.
Час 48: Письма наконец-то доходят до inbox. Пользователь жалуется: “Я не получил письмо от клиента”. Начинаешь копаться в логах.
Неделя 1: Обнаруживаешь, что сервер стал источником спама. Как это получилось - вопрос другой.
Месяц 1: Осознаешь, что забыл настроить бэкапы. Молишься, чтобы диск не “помер”.
Это нормально#
Я не пугаю. Я готовлю к реальности. Почтовый сервер - это не “поставил и забыл”. Это инфраструктура, которая требует:
- Начальной настройки (4-8 часов чистого времени)
- Отладки репутации (первые 2-4 недели)
- Регулярного мониторинга (15-30 минут в день)
- Периодического обслуживания (2-4 часа в месяц)
Но когда оно работает - работает как часы.
Что ты получишь в итоге#
Техническая часть:#
ТВОЙ ПОЧТОВЫЙ СЕРВЕР
│
├─ Прием и отправка почты (Postfix)
├─ Доступ к ящикам через IMAP (Dovecot)
├─ Веб-интерфейс (RoundCube)
├─ Защита от вирусов (ClamAV)
├─ Защита от спама (SpamAssassin)
├─ Защита от взлома (Fail2ban)
├─ Шифрование (Let's Encrypt)
├─ Подписи писем (DKIM)
└─ Мониторинг и логи (Pflogsumm)Функциональная часть:#
Отправка почты:
- С любого почтового клиента (Thunderbird, Outlook, Apple Mail, K-9)
- Через веб-интерфейс из любой точки мира
- С защищенным соединением (TLS)
- С цифровой подписью (твои письма не подделать)
Прием почты:
- От любых отправителей
- С проверкой на вирусы
- С фильтрацией спама
- С пользовательскими правилами (Sieve)
Управление:
- Неограниченное количество доменов
- Неограниченное количество ящиков
- Псевдонимы (алиасы)
- Пересылки
- Автоответчики
- Квоты на размер (если нужно)
Безопасность:
- Шифрование при передаче (никто не прочитает по пути)
- Защита от подбора паролей
- Блокировка спамеров
- Проверка отправителей
Из чего это состоит: анатомия почтового сервера#
Почтовый сервер - это не одна программа. Это экосистема из нескольких компонентов, каждый из которых делает свою работу.
Postfix - почтальон#
Что делает: Принимает письма от отправителей и доставляет их получателям.
Как работает:
- Кто-то отправляет письмо на user@твой-домен.ru
- Postfix принимает письмо на порт 25
- Проверяет: “А должен ли я вообще принимать почту для этого домена?”
- Проверяет отправителя через кучу правил
- Если все ОК - передает письмо дальше (Dovecot или другому Postfix)
- Если что-то не так - отклоняет с кодом ошибки
Конфиг: /etc/postfix/main.cf - туда ты будешь лезть чаще всего.
Dovecot - хранитель ящиков#
Что делает: Дает доступ к почтовым ящикам по протоколам IMAP/POP3.
Как работает:
- Почтовый клиент подключается к Dovecot (порт 143/993)
- Вводит логин и пароль
- Dovecot проверяет учетные данные
- Открывает доступ к почтовому ящику
- Клиент качает письма
Дополнительно:
- Работает как LDA (Local Delivery Agent) - складывает письма в ящики
- Поддерживает Sieve - пользовательские фильтры
- Управляет квотами
Конфиг: /etc/dovecot/dovecot.conf и куча подфайлов в /etc/dovecot/conf.d/.
Amavis + ClamAV - санитары#
Что делает Amavis: Прослойка между Postfix и антивирусом/антиспамом.
Что делает ClamAV: Сканирует вложения на вирусы.
Как работает:
- Postfix получает письмо
- Отправляет его в Amavis (порт 10024)
- Amavis передает в ClamAV
- ClamAV сканирует
- Если вирус найден - письмо в карантин
- Если чисто - Amavis возвращает в Postfix (порт 10025)
- Postfix доставляет получателю
Конфиг: /etc/amavis/conf.d/50-user
SpamAssassin - фильтр#
Что делает: Определяет спам по куче признаков.
Как работает:
- Анализирует заголовки письма
- Проверяет тело письма
- Смотрит IP отправителя в черных списках (DNSBL)
- Применяет эвристические правила
- Использует Bayesian фильтр (обучаемый)
- Выставляет баллы
- Если баллов больше порога (обычно 5) - помечает как SPAM
Обучение:
- Показываешь примеры спама → он учится
- Показываешь примеры нормальной почты → он учится
- Со временем точность растет
Конфиг: /etc/spamassassin/local.cf
Postgrey - вышибала#
Что делает: Временно отклоняет письма от новых отправителей.
Как работает:
- Письмо приходит от нового сервера
- Postgrey: “Приходи через 5 минут”
- Легальный почтовый сервер вернется через 5 минут
- Спам-бот не вернется (ему некогда)
- При повторной попытке - пропускает
Эффективность: Отсекает ~70% спама вообще без анализа.
Конфиг: /etc/default/postgrey
Fail2ban - охрана#
Что делает: Блокирует IP-адреса, которые брутфорсят(взламывают методом перебора парольных комбинаций) пароли.
Как работает:
- Следит за логами
- Видит неудачные попытки входа
- Считает количество попыток
- Если больше 3-5 за короткое время - бан IP через iptables
- Через час-два-пять(как настроишь) разбанивает (если не повторится)
Защищает:
- SMTP AUTH (порт 25, 587)
- IMAP/POP3 (порт 143, 993, 110, 995)
- Веб-интерфейс RoundCube
Конфиг: /etc/fail2ban/jail.local
Let’s Encrypt - замок#
Что делает: Выдает бесплатные SSL-сертификаты.
Зачем: Шифрование соединений между клиентом и сервером.
Как работает:
- Запускаешь Certbot
- Он доказывает, что домен принадлежит тебе
- Let’s Encrypt выдает сертификат на 90 дней
- Certbot автоматически продлевает каждые 60 дней
Без этого: Все пароли и письма идут открытым текстом по сети.
Конфиг: Автоматический, сертификаты в /etc/letsencrypt/live/
OpenDKIM - печать#
Что делает: Подписывает исходящие письма цифровой подписью.
Зачем: Доказывает, что письмо действительно от твоего домена.
Как работает:
- Генеришь пару ключей (открытый + закрытый)
- Открытый публикуешь в DNS
- OpenDKIM подписывает каждое исходящее письмо закрытым ключом
- Получатель проверяет подпись открытым ключом из DNS
- Если подпись валидна - письмо не подделано
Без этого: Gmail/Outlook 100% отправят твои письма в спам.
Конфиг: /etc/opendkim.conf
RoundCube - веб-морда#
Что делает: Веб-интерфейс для работы с почтой.
Зачем: Читать/писать письма через браузер без настройки почтового клиента.
Возможности:
- Чтение/отправка писем
- Адресная книга
- Настройка фильтров (через плагин Sieve)
- Смена паролей
- Управление папками
- Поиск по почте
Конфиг: /etc/roundcube/config.inc.php
PostgreSQL - база данных#
Что делает: Хранит данные.
Что хранит:
- Базу RoundCube (сессии, адресная книга, кэш)
- Опционально: список пользователей и паролей
- Опционально: псевдонимы и пересылки
Почему PostgreSQL, а не MySQL:
- Строже к типам данных → меньше косяков
- Лучше работает с UTF-8
- Проще репликация
- В Debian 12 отличная интеграция
Конфиг: /etc/postgresql/15/main/postgresql.conf
Apache + PHP#
Что делает: Крутит RoundCube.
Apache: Веб-сервер, принимает HTTP-запросы.
PHP: Интерпретатор, выполняет код RoundCube.
Альтернатива: Nginx + PHP-FPM (быстрее, но сложнее, может в будущем рассмотрю и такой подход).
Почему Apache: Работает из коробки, тупо проще с той же эффективностью.
Конфиг: /etc/apache2/sites-available/
Pflogsumm#
Что делает: Анализирует логи Postfix и делает отчеты.
Показывает:
- Сколько писем отправлено/получено
- Сколько отклонено
- Топ отправителей/получателей
- Ошибки доставки
- Статистику по доменам
Использование:
pflogsumm /var/log/mail.logАвтоматизация: Настроишь cron - каждый день отчет на почту.
Netdata - приборная панель#
Что делает: Мониторинг в реальном времени.
Показывает:
- Загрузка CPU, RAM, Disk
- Очереди Postfix
- Соединения Dovecot
- Запросы к PostgreSQL
- Запросы к Apache
- Температура (если есть датчики)
Интерфейс: Веб на порту 19999.
Потребление: ~100MB RAM.
Как все это работает вместе#
Сценарий 1: Получение письма#
1. example.ru отправляет письмо на user@твой-домен.ru
↓
2. DNS: "MX-запись для твой-домен.ru → mail.твой-домен.ru"
↓
3. Письмо приходит на твой сервер (Postfix, порт 25)
↓
4. Postfix: "Проверю отправителя..."
- SPF проверка
- DNSBL проверка
- Greylisting (Postgrey)
↓
5. Postfix: "Отправлю на проверку в Amavis"
↓
6. Amavis → ClamAV: "Есть вирусы?"
ClamAV: "Чисто"
↓
7. Amavis → SpamAssassin: "Это спам?"
SpamAssassin: "3 балла из 5, норм"
↓
8. Amavis возвращает в Postfix: "Все ок, доставляй"
↓
9. Postfix → Dovecot (LMTP): "Положи в ящик user@твой-домен.ru"
↓
10. Dovecot кладет в /var/spool/mail/твой-домен.ru/user/
↓
11. Пользователь открывает RoundCube или Thunderbird
↓
12. Dovecot (IMAP) отдает письмо клиентуСценарий 2: Отправка письма#
1. Пользователь пишет письмо в RoundCube
↓
2. RoundCube → Postfix (порт 587, SMTP Submission)
↓
3. Postfix: "Проверю авторизацию..."
- SMTP AUTH через Dovecot
↓
4. Postfix: "Пользователь свой, подпишу письмо"
↓
5. OpenDKIM добавляет DKIM-подпись
↓
6. Postfix отправляет письмо на mail.example.ru
↓
7. example.ru получает и проверяет:
- SPF (в DNS твоего домена)
- DKIM (подпись валидна?)
- DMARC (политика домена)
↓
8. example.ru: "Все проверки пройдены" → InboxТерминология: что есть что#
MTA (Mail Transfer Agent)#
Что: Программа, которая передает почту между серверами. Пример: Postfix, Sendmail, Exim.
MDA (Mail Delivery Agent)#
Что: Программа, которая кладет письма в почтовые ящики. Пример: Dovecot (в режиме LDA/LMTP).
MUA (Mail User Agent)#
Что: Почтовый клиент. Пример: Thunderbird, Outlook, RoundCube, K-9 Mail.
SMTP (Simple Mail Transfer Protocol)#
Что: Протокол отправки почты. Порты: 25 (сервер-сервер), 587 (клиент-сервер с авторизацией).
IMAP (Internet Message Access Protocol)#
Что: Протокол доступа к почте (с синхронизацией). Порты: 143 (открытый), 993 (с TLS). Особенность: Письма хранятся на сервере.
POP3 (Post Office Protocol)#
Что: Протокол доступа к почте (скачивание). Порты: 110 (открытый), 995 (с TLS). Особенность: Письма скачиваются и удаляются с сервера. Статус: Устарел, не будем использовать.
TLS/SSL#
Что: Шифрование соединения. Зачем: Чтобы пароли и письма не перехватили. Пример: HTTPS для почты.
SPF (Sender Policy Framework)#
Что: DNS-запись, которая говорит “с этих IP можно слать почту от моего домена”.
Пример: v=spf1 ip4:1.2.3.4 ~all
Зачем: Защита от подделки отправителя.
DKIM (DomainKeys Identified Mail)#
Что: Цифровая подпись письма. Как: Закрытый ключ на сервере, открытый в DNS. Зачем: Доказать, что письмо не подделано.
DMARC (Domain-based Message Authentication)#
Что: Политика домена: что делать, если SPF или DKIM не прошли.
Варианты: none (ничего), quarantine (в спам), reject (не принимать).
Пример: v=DMARC1; p=quarantine; rua=mailto:dmarc@домен.ru
DNSBL (DNS-based Blackhole List)#
Что: Черные списки IP-адресов спамеров. Примеры: zen.spamhaus.org, bl.spamcop.net. Как работает: Postfix спрашивает DNSBL: “Этот IP спамер?” → DNSBL отвечает.
Greylisting#
Что: Временная задержка писем от новых отправителей. Логика: Спам-боты не повторяют попытки, легальные серверы - повторяют. Задержка: 5 минут (обычно).
Relay#
Что: Пересылка почты через промежуточный сервер. Пример: Твой сервер → SMTP провайдера → получатель. Зачем: Если твой IP в блэклистах или нет белого IP.
Open Relay#
Что: Сервер, который пересылает почту от кого угодно. Статус: ЗЛО. Мгновенно попадешь в блэклисты. Защита: SMTP AUTH + правильные restrictions.
Maildir vs Mbox#
Mbox: Все письма в одном файле. Maildir: Каждое письмо - отдельный файл. Используем: Maildir (надежнее, быстрее).
Sieve#
Что: Язык для создания почтовых фильтров. Пример: “Если тема содержит ‘счет’, переложить в папку ‘Финансы’”. Управление: Через плагин managesieve в RoundCube.
Quota#
Что: Ограничение на размер почтового ящика. Пример: 5GB на пользователя. Наш случай: Без ограничений (или устанавливаешь сам).
Системные требования#
Минимальная конфигурация (1-50 пользователей):#
CPU: 2 ядра (любой современный процессор)
RAM: 2 GB
Disk: 20 GB (система) + объем почты
SSD рекомендуется
Net: Стабильное подключение
Белый IP (желательно)
Открытые порты: 25, 587, 143, 993, 80, 443Рекомендуемая конфигурация (50-200 пользователей):#
CPU: 4 ядра
RAM: 4 GB
Disk: 50 GB (система) + объем почты
SSD обязательно
Net: 100 Мбит/с
Белый статический IPОптимальная конфигурация (200-500 пользователей):#
CPU: 8 ядер
RAM: 8 GB
Disk: 100 GB (система) + объем почты
NVMe SSD
Net: 1 Гбит/с
Резервный каналРасчет дискового пространства:#
Средний пользователь: 1-5 GB в год
Активный пользователь: 10-20 GB в год
Очень активный: 50+ GB в год
Пример на 100 пользователей:
100 × 5 GB = 500 GB
+ запас 20% = 600 GB
+ система 50 GB = 650 GB
Итого: диск на 1 TB с запасомЧто нужно ДО начала установки#
1. Домен#
Зарегистрированный домен с доступом к управлению DNS.
Пример: example.ru
2. Сервер#
VPS/Dedicated с Debian 12 и белым IP.
Требования:
- Root-доступ
- Чистая установка Debian 12
- Статический IP
- Обратная DNS (PTR) настроена на твое имя хоста
Проверка PTR:
host твой-IP
# Должно вернуть: mail.example.ru3. DNS-записи (настроишь в процессе)#
A-запись:
mail.example.ru. IN A твой-IPMX-запись:
example.ru. IN MX 10 mail.example.ru.SPF-запись:
example.ru. IN TXT "v=spf1 mx ~all"DKIM и DMARC - настроим позже.
4. Открытые порты#
Обязательно:
25 (SMTP)- прием почты от других серверов587 (Submission)- отправка от клиентов143 (IMAP)- доступ к ящикам993 (IMAPS)- IMAP с TLS80 (HTTP)- для Let’s Encrypt443 (HTTPS)- для RoundCube
Опционально:
22 (SSH)- для администрирования19999 (Netdata)- для мониторинга
5. Время#
Реально необходимое:
- Установка и базовая настройка: 4-6 часов
- Отладка доставки в Gmail/Outlook: 2-4 часа
- Настройка веб-интерфейса: 1-2 часа
- Тестирование и доработка: 2-4 часа
Итого: Закладывай полноценные выходные.
Проверка готовности#
Прежде чем начинать, убедись:
☐ Есть зарегистрированный домен
☐ Есть доступ к управлению DNS
☐ Есть VPS/Dedicated с Debian 12
☐ Есть root-доступ к серверу
☐ Настроен PTR для твоего IP
☐ Открыты необходимые порты
☐ Есть понимание, сколько времени займет
☐ Есть план резервного копирования
☐ Есть готовность разбираться в проблемах
☐ Прочитал эту статью до концаЕсли все пункты отмечены - можешь начинать.
Что дальше#
В следующей части разберем установку и базовую настройку Postfix + Dovecot - сердца почтового сервера.
Ты получишь работающую систему приема и отправки почты. Без защиты, без веб-интерфейса, без красивостей - но работающую.
А потом будем навешивать остальное: антивирус, антиспам, шифрование, подписи и все остальное, что превращает голый сервер в production-ready решение.
Поехали.








