Как правило в организациях повседневно используется электронная почта для пересылки каких либо документов или для получения информации от партнеров. И хочется чтоб эти письма хранились не на хостинге, а локально внутри компании и конечно же со своим доменом. Для этого системные администраторы настраивают свой почтовый сервер. Один из них мы рассмотрим в данной статье. Это почтовый сервер iRedMail

Для установки почтового сервера iRedMail на ubuntu server необходимо для начала обновить все пакеты.

Для этого переводим пользователя в сессию под root-ом

user@mail:~$ sudo -i

И вводим команду

root@mail:~# apt update && apt upgrade -y

Добавим репозитории для PHP и NGINX “на момент написания статьи последняя версия php 8.3”

root@mail:~# add-apt-repository ppa:ondrej/php

Задаем имя сервера согласно Вашему домену: (Заменяем mail.example.com на своё имя сервера)

root@mail:~# hostnamectl set-hostname mail.example.com

Отредактируем файл

root@mail:~# nano /etc/hosts

Далее скачиваем актуальный дистрибутив. На момент написания статьи версия iRedMail была 1.6.8.

root@mail:~# wget -O iredmail.tar.gz https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.8.tar.gz

Распаковываем скаченный архив

root@mail:~# tar -zxf iredmail.tar.gz

Переходим в каталог с дистрибутивом

root@mail:~# cd iRedMail-*/

И запускаем скрипт для установки

root@mail:~# bash iRedMail.sh

Запустится мастер установки и нужно будет заполнить несколько пунктов:

Соглашаемся с установкой и нажимаем < Yes >

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

Выбираем web сервер nginx

Выбираем базу данных “Я использую MariaDB

Вводим пароль для Вашей базы данных

Вводим Ваше доменное имя без mail

Вводим пароль от учётной записи администратора

Выбираем web клиент для Вашего сервера “мне больше нравится Sogo”

Проверяем все ли правильно

Процесс установки займёт некоторое время, так что вооружитесь терпением )))

В процессе установки будет предложено активировать firewall соглашаемся Y

И в конце установки нужно будет перезагрузить Ваш сервер

Далее у своего регистратора домена вносим записи в DNS 

Переходим на WEB странице  https://mail.example.com/iredadmin 

Username postmaster@example.com

Password тот что задавали при установке

Ну и создадим первый почтовый ящик например info@example.com

Заполняем поля и нажимаем Add

Установка сертификата Let’s Encrypt

Вместе с iRedMail создается само подписанный сертификат, которому по умолчанию, не доверяют другие системы. Чтобы пользователи не видели предупреждений об использовании потенциально не безопасного сертификата, можно установить последний, выданный аккредитованным центром сертификации. Мы же выпустим бесплатный сертификат от Let’s Encrypt.

Для этого отредактируем файл 00-default-ssl.conf

root@mail:~# nano /etc/nginx/sites-enabled/00-default-ssl.conf

И добавим следующие строчки:

server {

        root /var/www/html;

        index index.php index.html;

        location ~ /.well-known {

               root /usr/share/nginx/html;

              allow all;

       }

       include …

}

Перезапустим сервер nginx и посмотрим его статус

root@mail:~# systemctl restart nginx.service

root@mail:~# systemctl status nginx.service

Устанавливаем утилиту certbot и выпускаем сертификат

root@mail:~# apt install certbot -y

Для удобства дальнейшей настройки создадим переменные

root@mail:~# HOST=$(hostname)

root@mail:~# DOMAIN=$example.com

root@mail:~# certbot certonly – -webroot – -agree-tos – -email postmaster@$DOMAIN – -webroot-path /usr/share/nginx/html/ -d $HOST

Если всё прошло успешно то Вы должны увидеть вот такую запись

Successfully received certificate.

Certificate is saved at:  /etc/letsencrypt/live/mail.example.com/fullchain.pem

Key is saved at:         /etc/letsencrypt/live/mail.example.com/privkey.pem

Далее удаляем само подписанные сертификаты

root@mail:~# rm -f /etc/ssl/private/iRedMail.key

root@mail:~# rm -f /etc/ssl/certs/iRedMail.crt

Создаем симлинки на полученные сертификаты от Let’s Encrypt:

root@mail:~# ln -s /etc/letsencrypt/live/$HOST/fullchain.pem /etc/ssl/certs/iRedMail.crt

root@mail:~# ln -s /etc/letsencrypt/live/$HOST/privkey.pem /etc/ssl/private/iRedMail.key

Перезапускаем службы:

root@mail:~# systemctl reload nginx postfix dovecot

Так как сертификат от Let’s Encrypt выдается всего на 90 дней то создадим задачу в cron для автоматического перевыпуска сертификата.

root@mail:~# crontab -e

Добавим строчку в конце файла

0 0 * * 1,4 /usr/bin/certbot renew –noninteractive

И создадим правило для автоматического перезапуска служб nginx postfix dovecot.  Для этого создадим файл cli.ini и внесем в него запись:

root@mail:~# nano /etc/letsencrypt/cli.ini

deploy-hook = systemctl reload nginx postfix dovecot

Почтовые сервера очень не доверчивы с серверам без записей таких как

DKIM DMARC SPF ну и конечно нужно попросить у своего провайдера внести PTR запись для Вашего IP адреса

Записи DKIM DMARC SPF создаются у Вашего регистратора домена в формате TXT

SPF

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

TXT      @.example.com      v=spf1 a mx  -all

Так-же Вы можете сгенерировать запись SPF на сайте SPF Record Generator

DMARC

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

TXT _dmarc.example.com v=DMARC1;p=reject

Так-же Вы можете сгенерировать запись DMARC на сайте DMARC Record Generator

DKIM

Ключ DKIM был сформирован во время установки почтового сервера и чтоб его получить нужно ввести команду

root@mail:~# amavisd-new showkeys

В ответ получим ключ

dkim._domainkey.example.com. 3600 TXT ( “v=DKIM1; p=” “MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAptFFx8D3V2lJnOoXq/Rt” “j4fL61GoPV9eSeft1p2gr7bds5uNahs6G1pbMSPjvnZl/0yLg+v/dj7dqky3Hc1N” “jJWGBTQxUKvZH62r5CDjhj+g6IhcE45X6+qYWZsBooh9b4GuFuMwCOJw3ygPZfEA” “//oM3FPmFzPlqt0AOrh/h9cWaPdwD12YYxmztXM/rI+YrX4ikdG16gYbrI3I1fsn” “5lFIONoLEOumM77X5Is7HvoEjTkH8jrW28TQ5i46z8bJ7dcXmncof4WPvzbi1Ckn” “idkM+h59IPObFveh3aEyNbywou0fU9zox2l4m44bvMtNMtfFNcb8tBeBBOQqyVUD” “wwIDAQAB”)

Удалим кавычки ( “” ) в ключе DKIM и занесем её так же в DNS

TXT         dkim._domainkey.example.com      v=DKIM1; p= MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAptFFx8D3V2lJnOoXq/Rt j4fL61GoPV9eSeft1p2gr7bds5uNahs6G1pbMSPjvnZl/0yLg+v/dj7dqky3Hc1N jJWGBTQxUKvZH62r5CDjhj+g6IhcE45X6+qYWZsBooh9b4GuFuMwCOJw3ygPZfEA //oM3FPmFzPlqt0AOrh/h9cWaPdwD12YYxmztXM/rI+YrX4ikdG16gYbrI3I1fsn 5lFIONoLEOumM77X5Is7HvoEjTkH8jrW28TQ5i46z8bJ7dcXmncof4WPvzbi1Ckn idkM+h59IPObFveh3aEyNbywou0fU9zox2l4m44bvMtNMtfFNcb8tBeBBOQqyVUDwwIDAQAB

После того как записи DNS распространятся по глобальной сети Internet можно будет пользоваться Вашим почтовым сервером.

WEB client Sogo

https://mail.example.com/sogo

Можно протестировать и проверить Ваш почтовый сервер на сайте mail-tester.com

Если все сделали правильно то ответ должен быть примерно таким:

Почтовый сервер iRedMail базово настроен.

Массово поменять пароли на всех почтовых ящиках инструкция