Найти в Дзене
Тюнинг Админа

Почтовый сервер на Ubuntu 24.04LTS + Poste.io

Poste.io - это аналог IredMail, для быстрого развертывания полнофункционального почтового сервера за пару минут в контейнере docker. Продукт разработан с оптимальными настройками по умолчанию, чтобы быстро начать работу, не зная внутренностей и не принимая решений, которые могут сломать систему электронной почты. Для установки почтового сервера необходим любой 64-битный дистрибутив Linux, работающий на виртуальной машине или выделенном сервере. Минимальные системные требования: Потребление ресурсов в режиме простоя: Прежде всего пишем письмо интернет провайдеру, в котором попросите прописать PTR запись у себя в DNS. Проверить можно командой: nslookup -type=PTR ip_адрес --- или --- dig -x ip_адрес Если у вас нет домена, нужно приобрести советую nethouse.ru - работаю с ним не один год, всё DNS записи очень быстро обновляются. Итак создаём записи: Останется только после установки и настройки почтового сервера прописать DKIM запись На локальных DNS серверах рекомендую создать зону: tuning
Оглавление

Poste.io - это аналог IredMail, для быстрого развертывания полнофункционального почтового сервера за пару минут в контейнере docker. Продукт разработан с оптимальными настройками по умолчанию, чтобы быстро начать работу, не зная внутренностей и не принимая решений, которые могут сломать систему электронной почты.

Содержание статьи

  • Версии продукта и подписки
  • Возможности решения
  • Преимущество решения
  • Системные требования
  • Настройка DNS у провайдера
  • Настройка локальных DNS
  • Проброс портов на маршрутизаторе
  • Подготовка сервера
  • Установка Docker
  • Установка Poste.io
  • Настройка почтового сервера
  • Создание почтовых ящиков
  • Web интерфейс пользователя
  • Тестирование работоспособности
  • Заключение

Версии продукта и подписки

-2

Возможности решения

  • нативная реализация 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ГБ

Потребление ресурсов в режиме простоя:

-3

Настройка DNS у провайдера

Прежде всего пишем письмо интернет провайдеру, в котором попросите прописать PTR запись у себя в DNS.

Проверить можно командой:

nslookup -type=PTR ip_адрес --- или --- dig -x ip_адрес

Если у вас нет домена, нужно приобрести советую nethouse.ru - работаю с ним не один год, всё DNS записи очень быстро обновляются.

Итак создаём записи:

-4

Останется только после установки и настройки почтового сервера прописать DKIM запись

Настройка локальных DNS

На локальных DNS серверах рекомендую создать зону:

tuning-admina.ru

В которой вы сможете прописывать записи ресурсов для локальных пользователей:

  • Запись типа А --> mail --> IP_Address
  • Запись типа MX --> mail.tuning-admina.ru --> 10
-5

Проброс портов на маршрутизаторе

На маршрутизаторе нужно создать правила типа 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

-6

Перезагружаем систему:

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

-7

Установка 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

-8

Настройка почтового сервера

Открываем браузер и переходим по адресу:

https://mail.tuning-admina.ru

Указываем учетную запись администратор и пароль и нажимаем Submit:

-9

Мы с вами попадаем на страницу создание почтовых аккаунтов и видим, что почтовый аккаунт администратора уже создан:

-10

DashBoard выглядит следующим образом:

-11

Переходим в раздел Виртуальные домены и щелкаем по названию домена:

-12

Открывается окно статистики по нашему домену, где в строке DKIM key нажмите на Create a new key:

-13

У вас появится сгенерированная запись, которую необходимо скопировать и прописать в параметрах DNS вашего хостинг провайдера:

-14

Выглядит это примерно так:

-15
-16

Переходим на раздел System settings:

-17

Здесь нас интересует вкладка SSL Certificate, где нажимаем на кнопку выдайте бесплатный сертификат Letsencrypt.org:

-18

Ставим птичку включить, проверяем чтобы было указано доменное имя а не FQDN хоста и нажимаем Сохранить изменения:

-19

Мы с вами только что получили сертификаты от letsencrypt:

-20

Переходим в раздел System status, здесь нас интересует кнопка Connection diagnostics:

-21

-22

Создание почтовых ящиков

Переходим в раздел Email accounts и нажимаем на кнопку Create a new Email:

-23

Указываем имя нового аккаунта, пароль и нажимаем Submit:

-24

Получаем информацию о созданном аккаунте, а также возможность внизу выбирая параметры настроить пересылку, фильтрацию, квоту и многое другое:

-25

Web интерфейс пользователя

открываем браузер и переходим по адресу:

https://mail.tuning-admina.ru/webmail

-26

Так выглядит интерфейс пользователя:

-27

Я предпочитаю темный режим:

-28

Тестирование работоспособности

Для тестирования работоспособности сервера и DNS записей я использую ресурс:

https://www.mail-tester.com/

Копируем адрес тестового почтового адреса, пишем письмо и отправляем, после чего возвращаемся на страницу и нажимаем Затем проверим оценку:

-29

Как видим тест прошел успешно:

-30

Вывод

Надеюсь статья вам понравилась, советую попробовать решение, хотя бы в тестовых целях, а уже там решить достойно ли оно применения или нет, по мне так вполне работоспособное решение и подходит для небольших инсталляций до 50 пользователей.