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 возвращали корректные значения.
Прямая зона настраивается на ваших DNS серверах, которые предоставляются хостингом или регистратором.
Обратная зона настраивается на DNS серверах хостинга, который предоставляет вам услугу VPS или выделенного сервера.
NSLOOKUP для прямой зоны
NSLOOKUP для обратной зоны
Обратите внимание на то, что обратная зона возвращает корректное имя домена. В нашем случае это mail.virtualdc.ru. Если запись обратной зоны не корректна (не соответствует прямой зоне), то почта работать не будет.
Далее мы должны настроить так называемую MX (Mail Exchange ) запись которая будет указывать всем остальным почтовым серверам местонахождение нашего сервера.
У MX записи есть следующие значения:
Имя домена - в нашем случае virtualdc.ru. или @ (в зависимости от DNS сервера)
Приоритет - в нашем случае 10 (да, почтовых серверов может быть несколько, и у каждого может быть свой приоритет на обработку писем)
Тип записи - MX
Значение записи - mail.virtualdc.ru. (точка в конце имени домена обязательна)
После внесения записей в DNS, проверяем их корректность
После нужно настроить SPF записи, которые указывают всем остальным почтовым серверам на соответствие домена отправителя почтовому серверу. Более подробно об SPF можно прочитать в Wikipedia, ну а мы продолжим настройку.
SPF запись это простая TXT запись в DNS, которая имеет следующие значения:
Имя записи - в нашем случае virtualdc.ru. или @ (в зависимости от DNS сервера)
TTL (опционально) - в нашем случае это 3600
Тип - TXT
Значение - "v=spf1 mx -all" (наличие кавычек зависит от типа DNS сервера)
Значение записи SFP очень важно для корректной доставки почты в Входящие (Inbox) а не в СПАМ (Junk). Существует очень много вариантов реализации этой записи, мы же с вами остановились на универсальном.
После внесения записей в DNS, проверяем их корректность
Установка iRedMail
Подключаемся к серверу по SSH и вводим следующие команды:
После начинается установка почтового сервера и открывается следующий диалог, в котором нажимаем Yes
Место для хранения почтовых ящиков можете не менять, или указать собственное расположение на сервере. Мы не меняем.
Выбираем web сервер. Вариантов не много, или с WEB интерфейсом живем, или без него. Выбираем NGINX.
Выбираем базу данных. Рекомендуем использовать MySQL.
Указываем пароль для пользователя root базы данных (не пароль от сервера)
Добавляем первый почтовый домен, в нашем случае virtualdc.ru
Задаем пароль для администратора почтового сервера
Выбираем устанавливаемые компоненты
По окончанию конфигурации получаем следующий вывод:
Нажимаем Y и начинается установка.
В процессе установки появится подобный диалог, везде нажимаем Y
По завершению установки вы получите следующее сообщение
Перезагрузка сервера СТРОГО обязательна!!!
После презагрузки пробуем зайти по всем установленным компонентам
Вход в 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. После делаем резервную копию текущих сертификата и ключа:
После этого перемещаем наш сертификат и ключ на место старых сертификатов:
Перезапускаем сервисы:
Переходим в web-интерфейс и проверяем что SSL сертификат работает:
Не лишним будет пройти проверку в SSL Labs:
Last updated