Poste.io - это аналог IredMail, для быстрого развертывания полнофункционального почтового сервера за пару минут в контейнере docker. Продукт разработан с оптимальными настройками по умолчанию, чтобы быстро начать работу, не зная внутренностей и не принимая решений, которые могут сломать систему электронной почты.
Содержание статьи
- Версии продукта и подписки
- Возможности решения
- Преимущество решения
- Системные требования
- Настройка DNS у провайдера
- Настройка локальных DNS
- Проброс портов на маршрутизаторе
- Подготовка сервера
- Установка Docker
- Установка Poste.io
- Настройка почтового сервера
- Создание почтовых ящиков
- Web интерфейс пользователя
- Тестирование работоспособности
- Заключение
Версии продукта и подписки
Возможности решения
- нативная реализация SPF, DKIM, DMARC, SRS с помощью простого мастера
- Антивирусное ядро для обнаружения троянов, вирусов, вредоносных программ (ClamAV)
- Встроенный спам-фильтр (RSPAMD)
- Почтовый клиент на HTTPS (Roundcube)
- Переадресация электронной почты, автоответчик и другие фильтрации по скриптам Sieve (управляется владельцем электронной почты, каждое действие может быть заскриптовано)
- Квота для ограничения места в почтовом ящике или количества электронных писем
- Веб-администрирование с разными правами для системного администратора, администратора домена, владельца электронной почты.
- Встроенное автоматическое обнаружение для продуктов Microsoft, Thunderbird...
- Диагностика для правильной настройки домена и почтового сервера
- SMTP - порт 25, 465 (TLS), 587
- POP3 - порт 110, 995 (TLS)
- IMAP - порт 143, 993 (TLS)
- TLS везде! Никакие личные данные, электронные письма, логины не проходят через интернет в незашифрованном виде.
- Все пароли по умолчанию хранятся в виде соленого хеша SHA512 (5000 раундов). Злоумышленникам будет трудно взломать ваши пароли.
- Весь контейнер почтового сервера изолирован Docker от других приложений.
Преимущество решения
- Быстрое развертывание - Вы можете установить полнофункциональный почтовый сервер за несколько минут, в основном ожидая, пока скрипты выполнят свою работу. Весь пакет разработан с разумными настройками по умолчанию, чтобы вы могли быстро приступить к работе, не зная внутренних компонентов и не принимая решений, которые могли бы нарушить работу системы электронной почты.
- Данные имеют свой собственный объем - Пользовательские данные и конфигурация строго отделены от двоичных. База данных пользователей хранится в базе данных SQLite - в файле. Это делает Poste.io полностью совместимым с внешним хранилищем. Таким образом, миграция, резервное копирование или обновление очень просты и в основном состоят из манипуляций с файлами.
- Безопасность - Poste.io был построен с нуля с учетом безопасности. История Интернета изобилует болезненными инцидентами безопасности, поэтому мы обменяли старую совместимость почтовых клиентов и небезопасные методы аутентификации на функции, которые соответствуют сегодняшним требованиям, на функции, отвечающие современным требованиям безопасности.
Системные требования
Для установки почтового сервера необходим любой 64-битный дистрибутив Linux, работающий на виртуальной машине или выделенном сервере.
Минимальные системные требования:
- Процессор: 2-х ядерный от 1Ггц
- Оперативная память: от 1ГБ
- Жёсткий диск: от 10ГБ
Потребление ресурсов в режиме простоя:
Настройка DNS у провайдера
Прежде всего пишем письмо интернет провайдеру, в котором попросите прописать PTR запись у себя в DNS.
Проверить можно командой:
nslookup -type=PTR ip_адрес --- или --- dig -x ip_адрес
Если у вас нет домена, нужно приобрести советую nethouse.ru - работаю с ним не один год, всё DNS записи очень быстро обновляются.
Итак создаём записи:
Останется только после установки и настройки почтового сервера прописать DKIM запись
Настройка локальных DNS
На локальных DNS серверах рекомендую создать зону:
tuning-admina.ru
В которой вы сможете прописывать записи ресурсов для локальных пользователей:
- Запись типа А --> mail --> IP_Address
- Запись типа MX --> mail.tuning-admina.ru --> 10
Проброс портов на маршрутизаторе
На маршрутизаторе нужно создать правила типа DNAT для следующих портов:
SMTP_PORT=25
SMTPS_PORT=465
SUBMISSION_PORT=587
IMAP_PORT=143
IMAPS_PORT=993
POP_PORT=110
POPS_PORT=995
SIEVE_PORT=419
Эти порты для хождения почты
443 - для доступа к web интерфейсу.
Получатель ip адрес почтового сервера.
Подготовка сервера
Все действия в системе я произвожу под root:
sudo -s
Настраиваем сеть:
Удаляем дефолтные конфиги:
rm /etc/netplan/*.*
Создаем конфигурационный файл:
nano /etc/netplan/config.yaml
network:
ethernets:
ens18:
dhcp4: false
addresses: [192.168.1.200/24]
gateway4: 192.168.1.254
nameservers:
addresses: [192.168.1.201,192.168.1.202]
Сохраняем файл, выходим из редактора:
CTRL+O, CTRL+X
Применяем настройки:
netplan apply
Обновляем систему:
apt update -y && apt upgrade -y
Устанавливаем имя нашему серверу:
hostnamectl set-hostname mail.tuning-admina.ru
Устанавливаем временную зону:
timedatectl set-timezone Europe/Moscow
Устанавливаем дополнительные пакеты:
apt install mc net-tools -y
Устанавливаем пакет для синхронизации времени:
apt install chrony -y
Проверяем статус службы:
systemctl status chrony
Перезагружаем систему:
reboot
Установка Docker
Добавим GPG key от репозитория Docker:
Устанавливаем права на директорию:
install -m 0755 -d /etc/apt/keyrings
Скачиваем ключ репозитория:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
Меняем права на файл ключа репозитория:
chmod a+r /etc/apt/keyrings/docker.asc
Добавим репозиторий Docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
Обновим сведения о пакетах в репозиториях:
apt update
Устанавливаем Docker:
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Проверяем статус службы Docker:
systemctl status docker
Установка Poste.io
Есть две версии продукта: PRO и БЕСПЛАТНЫЙ образ, обе версии имеют одинаковую структуру каталогов данных - единственное отличие при запуске версии PRO заключается в том, что вы будете использовать закрытый репозиторий. В статье я рассматриваю только версию Free.
Создаем папку под наш проект:
mkdir /Mail
Переходим в каталог Mail:
cd /Mail
Скачиваем образ:
docker pull analogic/poste.io
Запускаем контейнер:
docker run -d \
--net=host \
-e TZ=Europe/Moscow \
-v /Mail:/data \
--restart always \
--name "mailserver" \
-h "mail.tuning-admina.ru" \
-t analogic/poste.io
где,
--net=host - почтовый сервер использует сетевой стек хоста
-e TZ=Europe/Moscow - временная зона Москва
-v /Mail:/data - сопоставление папок хоста и контейнера, подключаем каталог данных из хост-системы. База данных пользователей, электронная почта, журналы — все в конечном итоге окажется в этом каталоге для удобного резервного копирования.
--name "mailserver" - присваиваем имя контейнеру
-h "mail.tuning-admina.ru" - имя сервера
-t analogic/poste.io - имя контейнера, который запускаем
Проверяем статус контейнеров:
docker container ps
Настройка почтового сервера
Открываем браузер и переходим по адресу:
https://mail.tuning-admina.ru
Указываем учетную запись администратор и пароль и нажимаем Submit:
Мы с вами попадаем на страницу создание почтовых аккаунтов и видим, что почтовый аккаунт администратора уже создан:
DashBoard выглядит следующим образом:
Переходим в раздел Виртуальные домены и щелкаем по названию домена:
Открывается окно статистики по нашему домену, где в строке DKIM key нажмите на Create a new key:
У вас появится сгенерированная запись, которую необходимо скопировать и прописать в параметрах DNS вашего хостинг провайдера:
Выглядит это примерно так:
Переходим на раздел System settings:
Здесь нас интересует вкладка SSL Certificate, где нажимаем на кнопку выдайте бесплатный сертификат Letsencrypt.org:
Ставим птичку включить, проверяем чтобы было указано доменное имя а не FQDN хоста и нажимаем Сохранить изменения:
Мы с вами только что получили сертификаты от letsencrypt:
Переходим в раздел System status, здесь нас интересует кнопка Connection diagnostics:
Создание почтовых ящиков
Переходим в раздел Email accounts и нажимаем на кнопку Create a new Email:
Указываем имя нового аккаунта, пароль и нажимаем Submit:
Получаем информацию о созданном аккаунте, а также возможность внизу выбирая параметры настроить пересылку, фильтрацию, квоту и многое другое:
Web интерфейс пользователя
открываем браузер и переходим по адресу:
https://mail.tuning-admina.ru/webmail
Так выглядит интерфейс пользователя:
Я предпочитаю темный режим:
Тестирование работоспособности
Для тестирования работоспособности сервера и DNS записей я использую ресурс:
Копируем адрес тестового почтового адреса, пишем письмо и отправляем, после чего возвращаемся на страницу и нажимаем Затем проверим оценку:
Как видим тест прошел успешно:
Вывод
Надеюсь статья вам понравилась, советую попробовать решение, хотя бы в тестовых целях, а уже там решить достойно ли оно применения или нет, по мне так вполне работоспособное решение и подходит для небольших инсталляций до 50 пользователей.