iRedMail - корпоративная почта
Инструкция по развертыванию корпоративной почты с использованием iRedMail
Вместо предисловия
Когда речь заходит о корпоративной почте, чаще всего на ум приходят какие-то коммерческие On-line сервисы почтовых сообщений, например от Google, Yandex или Mail.ru. Или же коммерческие Standalone решения от Micorosoft или Kerio.
Не всегда использование сторонних сервисов оправдано технически, и уж тем более не всегда оправдано экономически.
В данной статье мы рассмотрим установку и настройку корпоративного почтового сервера на базе свободного open source ПО iRedMail
Требования к почтовой системе:
Конфиденциальность - все данные хранятся на собственном/арендном VPS или выделенном сервере. Доступ к ним есть только у вас.
Открытый код - тут все понятно. Есть возможность изучить код, чтобы понять как работает ПО.
Бесплатное ПО - тут все понятно. За использование программным обеспечением платить не нужно.
Безопасность - использование почтовых служб через безопасные соединение (POP3 / IMAP / SMTP через TLS, веб-почта с HTTPS). Электронные письма, если это возможно, при передаче шифруются с использованием TLS. Пароли хранятся в SSHA512 или BCRYPT (BSD).
Web-интерфейс - управление почтой, папками, фильтрами и прочим через удобный UI.
АнтиСПАМ и АнтиВИРУС - SpamAssassin, ClamAV, SPF, DKIM, серые списки, белые списки, черные списки. Помещение обнаруженного спама на карантин в базу данных SQL для дальнейшего изучения.
Web-интерфейс администратора - управление почтовой системой через WEB интерфейс.
Требования к серверу
Как таковых требований к аппаратной составляющей не предъявляется, единственное что указано на сайте iRedMail - минимум 2Gb оперативной памяти для небольшого почтового сервера.
В тоже время, если вы планируете использовать средства групповой работы, такие как общие календари, общие контакты и ActiveSync - рекомендуется выделять для почтовой системы 16Gb оперативной памяти.
В нашем примере, чтобы выбрать "золотую середину", мы будем использовать VPS сервер по тарифу [2021] Standard у которого 4 x 2,8GHz vCPU \ 8Gb vRAM \ 80Gb NVMe. В качестве ОС мы будем использовать CentOS 7. Вы же можете использовать для своих задач любой тариф и любую ОС, которые по вашему мнению подойдут именно вам. Конкретных рекомендаций нет - сервер должен быть подходящим под вашу задачу.
Подготовительная часть
В данной статье мы будем использовать домен mail.virtualdc.ru как пример для почтового сервера, который в свою очередь будет обслуживать домен virtualdc.ru. Вы же должны поменять домен почтового сервера и обслуживаемый домен на свои собственные.
Первоначальные настройки DNS
Для начала мы должны настроить DNS таким образом, чтобы прямая и обратная зона для нашего домена mail.virtualdc.ru возвращали корректные значения.
NSLOOKUP для прямой зоны
nslookup mail.virtualdc.ru
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: mail.virtualdc.ru
Address: 212.22.64.88
NSLOOKUP для обратной зоны
nslookup 212.22.64.88
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
88.64.22.212.in-addr.arpa name = mail.virtualdc.ru.
Обратите внимание на то, что обратная зона возвращает корректное имя домена. В нашем случае это mail.virtualdc.ru. Если запись обратной зоны не корректна (не соответствует прямой зоне), то почта работать не будет.
Далее мы должны настроить так называемую MX (Mail Exchange ) запись которая будет указывать всем остальным почтовым серверам местонахождение нашего сервера.
У MX записи есть следующие значения:
Имя домена - в нашем случае virtualdc.ru. или @ (в зависимости от DNS сервера)
Приоритет - в нашем случае 10 (да, почтовых серверов может быть несколько, и у каждого может быть свой приоритет на обработку писем)
Тип записи - MX
Значение записи - mail.virtualdc.ru. (точка в конце имени домена обязательна)
После внесения записей в DNS, проверяем их корректность
nslookup -type=MX virtualdc.ru
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
virtualdc.ru mail exchanger = 10 mail.virtualdc.ru.
После нужно настроить SPF записи, которые указывают всем остальным почтовым серверам на соответствие домена отправителя почтовому серверу. Более подробно об SPF можно прочитать в Wikipedia, ну а мы продолжим настройку.
SPF запись это простая TXT запись в DNS, которая имеет следующие значения:
Имя записи - в нашем случае virtualdc.ru. или @ (в зависимости от DNS сервера)
TTL (опционально) - в нашем случае это 3600
Тип - TXT
Значение - "v=spf1 mx -all" (наличие кавычек зависит от типа DNS сервера)
Значение записи SFP очень важно для корректной доставки почты в Входящие (Inbox) а не в СПАМ (Junk). Существует очень много вариантов реализации этой записи, мы же с вами остановились на универсальном.
После внесения записей в DNS, проверяем их корректность
nslookup -type=TXT virtualdc.ru
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
virtualdc.ru text = "v=spf1 mx -all"
Установка iRedMail
Подключаемся к серверу по SSH и вводим следующие команды:
cd /tmp
wget https://github.com/iredmail/iRedMail/archive/1.3.2.tar.gz
tar -xzvf 1.3.2.tar.gz
cd iRedMail-1.3.2/
sh iRedMail.sh
После начинается установка почтового сервера и открывается следующий диалог, в котором нажимаем Yes

Место для хранения почтовых ящиков можете не менять, или указать собственное расположение на сервере. Мы не меняем.

Выбираем web сервер. Вариантов не много, или с WEB интерфейсом живем, или без него. Выбираем NGINX.

Выбираем базу данных. Рекомендуем использовать MySQL.

Указываем пароль для пользователя root базы данных (не пароль от сервера)

Добавляем первый почтовый домен, в нашем случае virtualdc.ru

Задаем пароль для администратора почтового сервера

Выбираем устанавливаемые компоненты

По окончанию конфигурации получаем следующий вывод:
*************************************************************************
***************************** WARNING ***********************************
*************************************************************************
* *
* Below file contains sensitive infomation (username/password), please *
* do remember to *MOVE* it to a safe place after installation. *
* *
* * /tmp/iRedMail-1.3.2/config
* *
*************************************************************************
********************** Review your settings *****************************
*************************************************************************
* Storage base directory: /var/vmail
* Mailboxes:
* Daily backup of SQL/LDAP databases:
* Store mail accounts in: MariaDB
* Web server: Nginx
* First mail domain name: virtualdc.ru
* Mail domain admin: [email protected]
* Additional components: Roundcubemail SOGo netdata iRedAdmin Fail2ban
< Question > Continue? [y|N]
Нажимаем Y и начинается установка.
В процессе установки появится подобный диалог, везде нажимаем Y
*************************************************************************
* iRedMail-1.3.2 installation and configuration complete.
*************************************************************************
[ INFO ] Disable SELinux in /etc/selinux/config.
< Question > Would you like to use firewall rules provided by iRedMail?
< Question > File: /etc/firewalld/zones/iredmail.xml, with SSHD ports: 22. [Y|n]
По завершению установки вы получите следующее сообщение
********************************************************************
* URLs of installed web applications:
*
* - Roundcube webmail: https://mail.virtualdc.ru/mail/
* - SOGo groupware: https://mail.virtualdc.ru/SOGo/
* - netdata (monitor): https://mail.virtualdc.ru/netdata/
*
* - Web admin panel (iRedAdmin): https://mail.virtualdc.ru/iredadmin/
*
* You can login to above links with below credential:
*
* - Username: [email protected]
* - Password: Pa$$w0rD
*
*
********************************************************************
* Congratulations, mail server setup completed successfully. Please
* read below file for more information:
*
* - /tmp/iRedMail-1.3.2/iRedMail.tips
*
* And it's sent to your mail account [email protected].
*
********************* WARNING **************************************
*
* Please reboot your system to enable all mail services.
*
********************************************************************
Перезагрузка сервера СТРОГО обязательна!!!
reboot
После презагрузки пробуем зайти по всем установленным компонентам
Вход в web-интерфейс почты https://mail.virtualdc.ru/mail/


Вход в панель администратор https://mail.virtualdc.ru/iredadmin/


Вход в SOGo https://mail.virtualdc.ru/SOGo/


Вход в netdata https://mail.virtualdc.ru/netdata/


На этом первоначальная настройка почтового сервера завершена. Но сервер еще НЕ готов к работе.
SSL сертификат
Следующим логичным пунктом настройки будет установка SSL сертификата. И тут мы встаем на распутье - какой SSL использовать? Есть как минимум два варианта, коммерческий SSL или SSL бесплатный.
Какой вариант выбрать, решать только вам, мы же в данной статье будем использовать коммерческий SSL сертификат Sectigo PositiveSSL. Тем же, кто решил пойти по пути бесплатного SSL, рекомендуем ознакомиться с официальной документацией по установке SSL сертификата Let`s Encrypt.
Итак, используя коммерческий SSL сертификат мы опустим процедуру его получения, примем как факт то, что у нас есть сам сертификат с цепочкой ca-bundle и секретный ключ.
Перемещаем их на наш почтовый сервер, для примера сертификат и ключ кладем в директорию /tmp. После делаем резервную копию текущих сертификата и ключа:
mv /etc/ssl/certs/iRedMail.crt{,.bak}
mv /etc/pki/tls/private/iRedMail.key{,.bak}
После этого перемещаем наш сертификат и ключ на место старых сертификатов:
mv /tmp/domain.crt /etc/ssl/certs/iRedMail.crt
mv /tmp/domain.key /etc/pki/tls/private/iRedMail.key
Перезапускаем сервисы:
service postfix restart
service dovecot restart
service nginx restart
service mariadb restart
Переходим в web-интерфейс и проверяем что SSL сертификат работает:


Не лишним будет пройти проверку в SSL Labs:

Last updated
Was this helpful?