> Mailu: Полнофункциональный почтовый сервер которым можно пользоваться

VARCKIN@BLOG:~$

Собственный почтовый сервер — это всегда круто, полный контроль над всем: над конфиденциальностью, доставкой писем, настройками безопасности и инфраструктурой. Среди многих решений, предлагаемых для хостинга электронной почты, Mailu выделяется своей простотой развертывания, модульной архитектурой и богатым набором функций, ориентированных как на личное использование, малые команды (8-25 человек), так и на продвинутых DevOps-инженеров.

Mailu — это лёгкий, модульный и современный почтовый сервер, полностью построенный на Docker-контейнерах и готовый к использованию практически «из коробки».

Основные особенности Mailu:

  • 📦 Полностью контейнеризирован (Docker)
  • 🔒 Поддержка TLS/SSL, DKIM, DMARC, SPF

  • 🛡️ Антиспам (Rspamd), антивирусная защита (ClamAV)

  • 📧 Веб-интерфейс (Roundcube, Rainloop)

  • 📁 Поддержка IMAP, SMTP, POP3

  • ⚙️ Совместимость с LDAP/Active Directory

  • 🔑 Двухфакторная аутентификация

  • 🗂 Поддержка Sieve-фильтров, Auto-responder, переадресации


Архитектура Mailu.

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


Процесс отправки и приема письма

Входящее письмо:

  1. SMTP-подключение от внешнего отправителя

  2. Nginx (SSL-терминация, прокси на postfix)

  3. Postfix принимает письмо → передаёт его в Rspamd

  4. Rspamd → ClamAV (проверка на вирусы) → оценка спама

  5. Если прошло проверку → передача в Dovecot (в папку пользователя)

  6. Сохраняется на файловой системе (Maildir)

Исходящее письмо:

  1. Пользователь аутентифицируется через SMTP (587 порт)

  2. Postfix получает письмо → применяет DKIM-подпись

  3. Проверка ограничений (rate limits)

  4. Отправка через интернет на 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)


Блок про Базы данных в Mailu

По умолчанию используется 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, но я думаю стоит выбрать другое решение. )


Установка и настройка Mailu

Требования:

  • 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, создаете кучу (или не кучу) пользователей и задаете пароль каждому.

Настройка DNS

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

Все что тут написано можно найти в админке.

Безопасность

Рекомендации по безопасности:

  1. Регулярно обновляйте образы Mailu

  2. Включите fail2ban или используйте встроенную защиту

  3. Включите DKIM/DMARC/SPF

  4. Ограничьте доступ к панелям через firewall/VPN

  5. Резервное копирование: volumes и env


Пора заканчивать

Mailu — идеально подходит для тех, кто хочет контролировать свою почтовую инфраструктуру, не углубляясь в сложную настройку Postfix/Dovecot с нуля. Он идеально подходит для DevOps-инженеров, стартапов, команд разработчиков и тех, кто заботится о безопасности и приватности переписки.

Собственная почта — это не только независимость от крупных провайдеров, но и просто круто. Mailu делает этот шаг гораздо доступнее.

AUTHOR: XYZ
CREATED: 2025-05-27
👁 VIEWS: 55
📁 CATEGORY: ПОЧТОВЫЙ СЕРВЕР
🏷 TAGS: #DOCKER #MAILU

Copyright © 2025 Markus Varckin. Все права защищены. Скачивание, копирование и редактирование запрещено!