Установка и настройка почтового сервера iRedMail

В один момент вы можете прийти к выводу, что вашей компании срочно понадобился почтовый сервер – пространство со сбором и управлением электронными письмами. Только вот незадача: заниматься полной установкой и настройкой нет возможности желания, что тогда? На помощь приходит готовая сборка iRedMail для организации почтового сервера. Главное преимущество – быстрый и простой процесс установки.

Почтовый сервер “из коробки” оптимально настроен для удобного управления и пользования электронной почтой. Все письма надежно будут храниться на сервере, и вам не стоит беспокоиться о приватности переписки, как в случае, если бы вы использовали подписные сервисы по типу Outlook или GSuite.

В данной статье мы рассмотрим как установить почтовый сервер iRedMail на VPS. Для установки потребуется сервер с чистой операционной системой и доступом по SSH с правами суперпользователя root. Поддерживается  CentOS, Debian, Ubuntu, FreeBSD, OpenBSD.

iredmail OS support

Установка iRedmail на CentOS 7

Системные требования

iRedMail предназначен для установки на чистый сервер, что означает, что на вашем сервере НЕ установлены никакие компоненты, связанные с почтой, например, MySQL, OpenLDAP, Postfix, Dovecot, Amavisd и т. д. Скрипт установки iRedMail автоматически установит и настроит их для вас. Если что-либо из указанных компонентов уже установлено, ваши конфигурационные файлы будут перезаписаны, а iRedMail в последствии может работать не так, как ожидалось.

Рекомендуется хотя бы 2ГБ оперативной памяти для мало нагруженных систем. В случае использования антиспама и антивируса будет использоваться большая часть ресурсов.

Подготовка к установке

Установите правильное имя вашего сервера

Имя сервера (hostname) должно быть полностью определенным доменным именем (FQDN), неважно, настраиваете вы рабочий или  тестовый сервер. Проверить имя сервера можно, выполнив команду:

$ hostname -f
mx.site.com

Если полученное в результате команды имя сервера не является FQDN, то его нужно изменить. Имя сервера для Centos 7 задается в файле /etc/hostname. Откройте файл вашим любимым текстовым редактором и укажите туда нужное имя сервера.

А также добавьте имя сервера в файле /etc/hosts, чтобы оно было в начале строки, сразу после IP-адреса, примерно так:

127.0.0.1 mx.site.com mx localhost localhost.localdomain

Проверьте имя сервера командой hostname -f снова. Если оно не поменялось на новое значение — перезагрузите сервер для применения настроек.

Выключение SELinux

iRedMail не работает с SELinux, поэтому отключите его, установив указанное ниже значение в своем конфигурационном файле /etc/selinux/config. После перезагрузки сервера SELinux будет полностью отключен.

SELINUX=disabled

Чтобы отключить SELinux для текущей сессии без перезагрузки запустите команду с правами суперпользователя:

# setenforce 0

Выключение сторонних репозиториев

Для CentOS включите официальные репозитории yum CentOS-Base и ОТКЛЮЧИТЕ все сторонние репозитории yum, чтобы избежать конфликта пакетов.

Загрузка последнего актуального релиза iRedmail

Перейдите на страницу загрузки последнего стабильного релиза iRedmail и скопируйте ссылку на установщик:

download iredmail

Полученную ссылку скачайте на ваш сервер при помощи wget. Может потребоваться установка пакета wget, если он не установлен:

# yum install wget -y

Скачиваем установщик:

$ wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.9.tar.bz2

Устанавливаем архиватор bzip2 для распаковки архива:

# yum install bzip2 -y

Распакуем архив:

# tar xjf iRedMail-0.9.9.tar.bz2

Предполагаем, вы загрузили архив в папку /root/ (вы попадаете в нее по умолчанию сразу после подключения к серверу по SSH от имени root). Тогда распакованный архив будет в папке /root/iRedMail-0.9.9/ (цифры номера версии могут отличаться, в зависимости от номера актуального релиза, замените их на свои при необходимости).

Процесс установки iRedMail

Для начала установки нужно перейти в папку с распакованным архивом и запустить скрипт iRedMail.sh

# cd /root/iRedMail-x.y.z/
# bash iRedMail.sh

Приветственный экран:

iredmail welcome install

Для перехода к следующему шагу нужно нажать клавишу Enter. На втором шаге нужно выбрать директорию для хранения почты. Можно оставить значение по умолчанию или указать нужную. Для перехода на следующий шаг нажмите Tab для переключения курсора на кнопку Next, а затем — Enter.

iredmail mail directory

Здесь можно выбрать способ хранения учетных данных пользователей. Мы рекомендуем MySQL (MariaDB). Для переключения используйте клавиши стрелок, для выбора варианта клавишу Пробел. Для перехода к следующему шагу — Tab и Enter.

iredmail choose backend

Укажите пароль администратора сервера баз данных. Это должен быть длинный набор символов из букв, цифр и знаков препинания. В дальнейшем вам, скорее всего не потребуется его использовать, потому его можно не запоминать. А также вся необходимая информация, в том числе и пароли, будет записана в одном документе, который будет доступен администратору.

iredmail setup mysql password

Укажите имя домена, с которого вы будете отправлять почту. После установки можно будет добавить другие домены при необходимости. Обратите внимание, нужно прописать имя домена, на котором в последствии будут создаваться email-адреса, а не hostname сервера.

iredmail configure main domain

Далее нужно установить пароль на учетную запись администратора почтового сервера, она же ваш email-адрес по умолчанию, куда после установки будет отправлена все информация по дальнейшей настройке сервера. Пароль должен быть длинным и сложным (от 12 символов) и содержать латинские буквы разного регистра и цифры. Для этого пароля нельзя использовать спец-символы и знаки препинания. Этот пароль вам нужно запомнить или сохранить в надежном месте, поскольку он будет постоянно использоваться для входа в веб-интерфейс iRedAdmin.

iredmail postmaster password setup

На следующем шаге нужно выбрать компоненты, которые будут установлены. Можно выбрать все, или исключить некоторые. Обязательно установите iRedAdmin — интерфейс управления учетными записями.

iredmail components choose

Это был последний шаг настроек. После этого нужно подтвердить установку компонентов (нажать клавишу Y и Enter) дождаться завершения установки всех необходимых пакетов. В конце на экране терминала будет такой вывод:

iredmail end of setup

На экран будут выведены все основные ссылки для перехода в веб-интерфейс и данные доступа  учетной записи администратора.

Получение бесплатного SSL-сертификата от Let’s Encrypt для iRedMail

Что нужно выяснить перед получением сертификата

Для каких доменных имен требуются сертификаты?

  1. Имя сервера (hostname) — это имя обычно используется при настройке соединения с почтовыми клиентами (Outlook, Thunderbird и др.) В нашем примере — iredmail.mytestsite.co.ua
  2. Имена, по которым будет осуществляться веб-доступ к панелям администрирования (https://iredmail.mytestsite.co.ua/iredadmin/, https://iredmail.mytestsite.co.ua/mail/)
  3. Для домена, на котором будут создаваться почтовые ящики (mytestsite.co.ua), сертификат не требуется, если он не используется для веб-интерфейсов.

Один сертификат для всех доменных имен или несколько сертификатов?

Nginx и Dovecot могут использовать разные сертификаты для разных доменных имен (SNI), но Postfix — нет.  Потому мы рекомендуем использовать один SSL-сертификат, который покрывает сразу все необходимые имена.

Проверьте DNS-записи для ваших  доменных имен

Убедитесь, что все используемые домены (субдомены) направлены А-записями на IP-адрес вашего сервера. Можно проверить это при помощи команды dig:

~$ dig +short iredmail.mytestsite.co.ua
194.28.87.18

Если в ответ на команду вы получите IP-адрес сервера — все настроено правильно.

Получение сертификата Let’s Encrypt SSL

Сначала установим пакет certbot, предназначенный для выпуска и автоматического обновления сертификатов от Let’s Encrypt:

~# yum install certbot

Далее запускаем получение SSL-сертификата:

~# certbot certonly --webroot -w /var/www/html -d iredmail.mytestsite.co.ua 
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): postmaster@mytestsite.co.ua
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-staging-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for iredmail.mytestsite.co.ua
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Resetting dropped connection: acme-staging-v02.api.letsencrypt.
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/iredmail.mytestsite.co.ua/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/iredmail.mytestsite.co.ua/privkey.pem
   Your cert will expire on 2019-05-08. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

В процессе вводим email-адрес для регистрации в сервисе и подтверждаем согласие с условиями использования.

Сертификат был получен и его файлы сохранены в папке /etc/letsencrypt/live/iredmail.mytestsite.co.ua/Если вы хотите получить сертификаты для нескольких доменов одновременно, то нужно перечислить их в команде выпуска сертификата через опцию -d:

~# certbot certonly --webroot -w /var/www/html -d site1.com -d site2.com ...

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

~# chmod 0644 /etc/letsencrypt/{live,archive}

Для автоматического обновления сертификатов настраиваем cron-задачу:

~# crontab -e

и добавляем в открывшемся редакторе текст:

1 3 * * 0 certbot renew --post-hook 'service postfix restart; service nginx restart; service dovecot restart'

По этой задаче еженедельно в 03:01 будет запускаться скрипт обновления сертификатов, который обновит все сертификаты, срок действия которых истекает менее, чем через 30 дней.

Подключение сертификатов Let’s Encrypt

Во время установки iRedMail были созданы самоподписанные сертификаты, которые были подключены ко всем сервисам (dovecot, postfix, nginx). Для подключения сертификатов Let’s Encrypt вместо них проще всего будет создать символьные ссылки с папки сертификатов Let’s Encrypt в папку сертификатов iRedMail. При этом не потребуется редактировать какие-либо конфигурационные файлы служб.

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

~# mv /etc/pki/tls/certs/iRedMail.crt{,.bak} # Backup. Rename iRedMail.crt to iRedMail.crt.bak
~# mv /etc/pki/tls/private/iRedMail.key{,.bak} # Backup. Rename iRedMail.key to iRedMail.key.bak
~# ln -s /etc/letsencrypt/live/iredmail.mytestsite.co.ua/fullchain.pem /etc/pki/tls/certs/iRedMail.crt
~# ln -s /etc/letsencrypt/live/iredmail.mytestsite.co.ua/privkey.pem /etc/pki/tls/private/iRedMail.key

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

~# service postfix restart
~# service dovecot restart
~# service nginx restart
~# service mariadb restart

Начальная настройка iRedMail

Откройте в браузере ссылку вида https://mail.site.com/mail/ (адрес, по которому вы задали расположение веб-интерфейса почты), авторизуйтесь с вашей учетной записью администратора — postmaster@site.com. Вы увидите в папке входящих писем несколько писем с информацией о расположении важных файлов конфигурации в системе, ключе DKIM, который нужно добавить в DNS-зону, ссылки на все веб-интерфейсы, рекомендации по настройке почтовых клиентов и другую важную информацию. Также вся эта информация располагается на сервере в файле /root/iRedMail-0.9.9/iRedMail.tips.

configuration mail iredmail

Для создания и настройки почтовых ящиков нужно перейти в панель iRedAdmin, расположенную по ссылке вида https://mail.site.com/iredadmin. Для входа используем email администратора (postmaster@site.com) и его пароль.

iredadmin login page

Для создания почтового аккаунта нужно нажать Добавить — Пользователь

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

Просмотреть список доменов и почтовых ящиков можно в разделе Домены

iredadmin list users and domains

Вот и все, на этом основные настройки завершены. Если возникнут какие-либо вопросы по настройке iRedMail и не только — смело обращайтесь в нашу техподдержку.