Собственный почтовый сервер — это всегда круто, полный контроль над всем: над конфиденциальностью, доставкой писем, настройками безопасности и инфраструктурой. Среди многих решений, предлагаемых для хостинга электронной почты, Mailu выделяется своей простотой развертывания, модульной архитектурой и богатым набором функций, ориентированных как на личное использование, малые команды (8-25 человек), так и на продвинутых DevOps-инженеров.
Mailu — это лёгкий, модульный и современный почтовый сервер, полностью построенный на Docker-контейнерах и готовый к использованию практически «из коробки».
Основные особенности Mailu:
🔒 Поддержка TLS/SSL, DKIM, DMARC, SPF
🛡️ Антиспам (Rspamd), антивирусная защита (ClamAV)
📧 Веб-интерфейс (Roundcube, Rainloop)
📁 Поддержка IMAP, SMTP, POP3
⚙️ Совместимость с LDAP/Active Directory
🔑 Двухфакторная аутентификация
🗂 Поддержка Sieve-фильтров, Auto-responder, переадресации
Mailu построен по микросервисной архитектуре, полностью базируется на Docker-контейнерах и управляется через Docker Compose. Каждый компонент (SMTP-сервер, IMAP-сервер, спам-фильтр, панель управления и т.д.) реализован как отдельный изолированный контейнер. Это повышает:
надёжность (изоляция процессов),
гибкость (легко заменять или обновлять отдельные сервисы),
безопасность (минимальные привилегии),
простоту масштабирования.
1. Reverse Proxy / Frontend (mailu/nginx)
Назначение:
SSL-терминация
Роутинг на другие контейнеры
Обработка веб-запросов (вебмейл, админка)
Прокси для SMTP, IMAP, POP3
Особенности:
Поддержка Let’s Encrypt
HSTS, TLS v1.2+, минимальный набор шифров
Ограничение подключения к админке по IP
Конфигурация через переменные окружения .env
2. Admin Interface (mailu/admin)
Назначение:
Веб-интерфейс для управления доменами, пользователями, алиасами, политиками
API-интерфейс (RESTful)
Бэкенд:
Flask (Python)
SQLAlchemy для доступа к базе
SQLite, PostgreSQL или MySQL как хранилище
Функции:
Управление DKIM
Генерация паролей
Управление квотами
Управление антиспам-политиками
3. IMAP/POP3-сервер (mailu/dovecot)
Назначение:
Чтение почты
Поддержка IMAP IDLE (push уведомления)
Квоты, sieve-скрипты
Особенности:
Использует Dovecot, проверенный временем IMAP-сервер
TLS на уровне подключения
Интеграция с Rspamd для фильтрации входящих писем
Поддержка sieve-фильтров (автоответчики, сортировка)
4. SMTP-сервер (mailu/postfix)
Назначение:
Прием/отправка писем
Роутинг писем по доменам
DKIM/DMARC/SPF валидация
Особенности:
Входящие сообщения фильтруются через Rspamd
Использует Postfix в роли MTA
Поддержка TLS, SASL, STARTTLS
Использует PostgreSQL/MySQL/SQLite как бэкенд для маппинга доменов и пользователей
5. Antispam/Antivirus (mailu/rspamd + mailu/clamav)
Rspamd:
Модульная архитектура
Обучаемый антиспам (Bayesian, greylisting, SPF, DKIM, URL blacklist)
Управляется через redis
Поддержка ARC (Authenticated Received Chain)
ClamAV:
Проверка вложений на вирусы
Интеграция через Rspamd
Поток обработки:
SMTP -> Rspamd (анализ) -> ClamAV (вложения) -> Dovecot (доставка) или Reject
6. Webmail (Roundcube или Rainloop)
Назначение:
Веб-интерфейс почты
Аутентификация по IMAP
Поддержка HTML-писем, фильтров, контактов, календарей
Особенности:
Легко настраивается
TLS по умолчанию
Хостится через Nginx (фронтенд)
7. Redis
Назначение:
Кэширование сессий
Хранилище для Rspamd
Очереди и ограничение частоты соединений
8. Resolver (Unbound)
Назначение:
Встроенный DNS-резолвер
Используется Postfix и Rspamd для валидации SPF, DKIM, DNSBL
Входящее письмо:
SMTP-подключение от внешнего отправителя
Nginx (SSL-терминация, прокси на postfix)
Postfix принимает письмо → передаёт его в Rspamd
Rspamd → ClamAV (проверка на вирусы) → оценка спама
Если прошло проверку → передача в Dovecot (в папку пользователя)
Сохраняется на файловой системе (Maildir)
Исходящее письмо:
Пользователь аутентифицируется через SMTP (587 порт)
Postfix получает письмо → применяет DKIM-подпись
Проверка ограничений (rate limits)
Отправка через интернет на MX получателя
Полная поддержка TLS (включая сертификаты Let's Encrypt)
SMTP AUTH с использованием SASL
Шифрование хранения паролей (PBKDF2/SHA256)
Полная интеграция SPF, DKIM, DMARC
Rspamd с greylisting, rate limiting, DKIM-валидацией
Fail2ban (встроенная защита от брутфорса)
IP-ограничения на доступ к панели администратора
Mailu рассчитан на личное пользование, небольшие и средние команды (организации), но масштабируем следующим образом:
Горизонтальное масштабирование SMTP-сервера (Postfix) и IMAP-сервера (Dovecot) возможно при внешнем общем хранилище (например, NFS или Ceph)
Можно использовать внешнюю базу данных (PostgreSQL, MariaDB)
Поддержка внешнего Redis (для кластерных конфигураций)
Возможна интеграция с load balancer'ами (HAProxy, Traefik)
По умолчанию используется SQLite (однофайловая бд). но также поддерживает PostgreSQL и MySQL/MariaDB в качестве внешней базы данных. Выбор конкретного движка задается в .env
конфигурации во время установки.
База данных в Mailu обслуживает панель администратора (Admin UI) и отвечает за:
Учетные записи пользователей (email, хеш пароля, квоты и т.п.)
Списки доменов и алиасов
DKIM-ключи и их привязку к доменам
Настройки автоматических ответчиков (auto-responder)
Списки переадресации, alias-правила
Черные/белые списки на уровне доменов и пользователей
Параметры доступа (разрешенные IP, политики)
SMTP, IMAP, антивирусные и антиспам-компоненты читают эти данные через API или прямые SQL-запросы к БД.
Все соединения происходят в пределах Docker-сети (или через VPN)
БД не должна быть доступна извне напрямую
Можно использовать TLS-соединения с PostgreSQL/MySQL (при поддержке)
Рекомендуется задавать нестандартные пароли и периодически менять их
Количество пользователей/Ситуация | СУБД |
Тестирование/личное пользование/небольшие команды (8-25 чел.) | SQLite |
Малая/средняя компания / средние команды (25-10000) | PostgreSQL |
Если уже есть MySQL сервер | MariaDB/MySQL |
Для крупной компании можно развернуть Mailu с PostgreSQL, но я думаю стоит выбрать другое решение. )
Требования:
VPS
Docker и Docker Compose
DNS-запись типа A (например, mail.example.com
)
PTR-запись для IP-адреса (Необязательно, но рекомендуется если надо повысить доверие других почтовых серверов к вашей почте)
Порты: 25, 80, 443, 110, 143, 465, 587, 993, 995
1. Установка Docker и Docker Compose:
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
2. Генерация конфига Mailu
С помощью официального конфигуратора выбираете:
домен
почтовый домен
веб-интерфейс
TLS (Let’s Encrypt)
authentication backend (simple/LDAP)
После чего скачиваете docker-compose.yml
и .env
.
3. Запуск
docker compose up -d
Сервер будет доступен по адресу https://mail.example.com
.
4. Создание почтовых ящиков
Открываете https://mail.example.com/admin
, входите в админку как admin@domain.com
, создаете кучу (или не кучу) пользователей и задаете пароль каждому.
Mailu требует корректных DNS-записей:
MX
→ mail.example.com
A
→ mail.example.com → [ваш IP]
TXT
SPF → v=spf1 mx ~all
TXT
DKIM → генерируется Mailu
TXT
DMARC → v=DMARC1; p=none; rua=mailto:dmarc@example.com
Все что тут написано можно найти в админке.
Рекомендации по безопасности:
Регулярно обновляйте образы Mailu
Включите fail2ban или используйте встроенную защиту
Включите DKIM/DMARC/SPF
Ограничьте доступ к панелям через firewall/VPN
Резервное копирование: volumes
и env
Mailu — идеально подходит для тех, кто хочет контролировать свою почтовую инфраструктуру, не углубляясь в сложную настройку Postfix/Dovecot с нуля. Он идеально подходит для DevOps-инженеров, стартапов, команд разработчиков и тех, кто заботится о безопасности и приватности переписки.
Собственная почта — это не только независимость от крупных провайдеров, но и просто круто. Mailu делает этот шаг гораздо доступнее.
Copyright © 2025 Markus Varckin. Все права защищены. Скачивание, копирование и редактирование запрещено!