Приветствую Вас, уважаемые читатели. Сегодня тема статьи: "iRedMail - установка на CenOS 7". Эта первая статья из серии статей о почтовом сервере iRedMail. Подробно рассмотрим процесс установки iRedMail в операционной системе CenOS 7.

iRedMail – комплект программного обеспечения, для развёртывания полноценного почтового сервера.

Официальный сайт проекта: https://www.iredmail.org

После установки iRedMail, вы по умолчанию получаете:

  1.  Postfix - SMTP сервер
  2. Dovecot - IMAP сервер для доступа к почтовым ящикам
  3. Веб-сервер - Nginx + MariaDB + PHP
  4. Roundcube - веб-панель для доступа к почте
  5. SOGo - веб-панель для доступа к почте
  6. Netdata - веб-панель мониторинга
  7. logwatch - приложение для контроля за логами
  8. Amavisd - модуль связки с дополнительными системами обработки почты
  9. ClamAV - бесплатный антивирус
  10. SpamAssassin - средство для фильтрации спама

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

  1. Настройка правил для Firewall
  2. Установка и настройка под все компоненты утилиты Fail2Ban
  3. Создание DKIM ключа
  4. Настройка Cron для обслуживания и бэкапа сервера
  5. Создание SSL сертификатов

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

Записи в доменной зоне перед установкой iRedMail

  • В процессе установки и настройки почтового сервера, требуется производить изменения записей в своей доменной зоне. Чтобы изменения производились быстрее, нужно у хостера Вашего доменного имени, в настройках доменной зоны, уменьшить время кэширования запросов (TTL). Обычно это время указанно в 24 часа, нужно изменить на 1 час. Если значение указывается в секундах, то 3600.
  • У того же хостера доменного имени, в Вашей доменной зоне, нужно добавить две записи. Я в статье буду использовать доменное имя game-int.ru.
mail       A            IP-адрес_сервера
@          MX     10    mail.game-int.ru 
  • Первой записью, мы создаём поддомен mail, вместо mail, можете указать какое угодно имя, это не существенно.
  • Второй записью, мы указываем, что созданный поддомен mail, является почтовым сервером в нашей доменной зоне. Приоритетность в нашем случае не важна, так как у нас только один почтовый сервер (например 10). @ - указывает на основной домен, вместо него может указываться доменное имя.
game-int.ru       MX    10     mail.game-int.ru 

С настройками DNS, пока закончили. Но после установки почтового сервера, нам нужно будет вернутся к ним снова.

По умолчанию для SSH используется порт 22, поэтому вредоносные нападки направленны в первую очередь на этот порт. После установки почтового сервера, Вы получите установленную и настроенную на контроль 22 порта утилиту file2ban, но это не отменит попыток несанкционированного доступа. А сама утилита file2ban, в процессе работы, в зависимости от количества попыток доступа, может значительно расходовать ресурсы сервера. Поэтому я предлагаю изменить порт для подключения по SSH-протоколу. О том, как это сделать, я уже писал статью на сайте.

Разработчики iRedMail, для нормальной работы почтового сервера, советуют иметь в наличии минимум 2ГБ ОЗУ, а лучше 4ГБ. Если в Вашем случае ОЗУ меньше, то можно добавить виртуальной памяти, за счёт раздела, или файла swap. Как добавить swap файл, можно узнать прочитав статью на сайте.

Изменение имени хоста почтового сервера

  • Для правильной работы почтового сервера, чтобы письма не уходили в спам, нужно произвести несколько манипуляций. На данном этапе, произведём две из них.
  • Сначала изменим имя хоста нашего сервера, на имя поддомена, который мы создали для этих целей. Изменяем имя, и перезапускаем службу.
  • В моём случае это будет так:
# hostnamectl set-hostname mail.game-int.ru
# systemctl restart systemd-hostnamed

Находим файл /etc/hosts, и приводим его к такому виду:

127.0.0.1       localhost
Ip-адрес_сервера    mail.game-int.ru mail

Добавление PTR-записи для почтового сервера

  • Следующим шагом, нужно настроить PTR-запись для Вашего почтового сервера.

PTR-запись – это обратная запись для Вашего доменного имени. При прямой записи, настраивается соответствие ip-адреса доменному имени, а при обратной записи, настраивается соответствие доменного имени ip-адресу.

Настроить PTR-запись, можно в панели управления у хостера Вашего сервера. Вам нужно указать доменное имя, которое мы создали для этих целей (в моём случае это mail.game-int.ru), Вашей виртуальной машине. Если такой возможности нет, то нужно обратиться с просьбой в техподдержку.

  • Для проверки правильности PTR-записи, можно воспользоваться командой host. Если команда не работает, то требуется установить дополнительные пакеты.
# yum install bind-utils
  • После установки, выполняем команду.
# host Ip-адрес_сервера

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

Ip-адрес_сервера_наоборот.in-addr.arpa domain name pointer имя_Вашего_поддомена. 
вывод PTR-записи в консоли

Последние подготовительные действия

  • Если все предыдущие шаги реализованы, то можно идти дальше. Производим обновление системы, подключаем репозиторий EPEL, и устанавливаем wget.
# yum update
# yum install epel-release
# yum install htop wget

Кроме того, я бы посоветовал установить утилиту HTOP для мониторинга расхода ресурсов. Об установке и использовании программы, я писал в одной из статей на сайте.

Начало установки почтового сервера iRedMail на CentOS 7

  • Заходим на сайт разработчиков, в раздел загрузок, и копируем ссылку на последнюю версию iRedMail. На момент написания статьи, последняя версия 1.3.2.
  • Переходим в директорию /root/, и скачиваем архив с iRedMail.
# cd /root/
# wget https://github.com/iredmail/iRedMail/archive/1.3.2.tar.gz
  • Разархивируем скачанный архив, заходим в папку с iRedMail, и запускаем скрипт установки.
# tar zxf 1.3.2.tar.gz
# cd /root/iRedMail-1.3.2
# bash iRedMail.sh

Мастер установки почтового сервера iRedMail

  • Через какое-то время, открывается мастер установки iRedMail.
  • В первом окне, нас спрашивают, хотим ли мы продолжить, или отменить установку.
  • Выбираем <Yes>.
запуск мастера установки iRedMail
  • Во втором окне, нам предлагают выбрать директорию для виртуальных ящиков, по умолчанию она /var/vmail.
  • Оставляем как есть, и жмём на <Next>.
выбор директории для виртуальных ящиков мастера установки iRedMail
  • В третьем окне, нам предлагают выбрать устанавливать ли веб-сервер, или произвести установку без веб-сервера, и в итоге без дополнительных веб-панелей.

Если Вы планируете, управлять почтовым сервером при помощи консоли Linux, а Ваши пользователи будут использовать исключительно приложения почтовые клиенты, то выбирайте установку без веб-сервера. Я в данной серии статей, буду рассматривать установку iRedMail с веб-сервером, и сопутствующими веб-панелями.

  • Выбираем установку с веб-сервером NGINX, и жмём на <Next>.
выбор веб-сервера мастера установки iRedMail
  • В четвёртом окне, нам предлагают выбрать метод хранения почтовых аккаунтов.
  • Выбираем MariaDB, и жмём на <Next>.
выбор метода хранения аккаунтов мастера установки iRedMail
  • В пятом окне, нам предлагают создать пароль пользователя root, для сервера баз данных.
  • Создаём пароль, и жмём на <Next>.
создание пароля админа сервера баз данных мастера установки iRedMail
  • В шестом окне, нам нужно указать первое имя нашего домена, в моём случае это будет game-int.ru.
  • Обратите внимание, не mail.game-int.ru, а game-int.ru, чтобы в итоге почтовые аккаунты были вида: пользователь@game-int.ru.
  • Указываем домен, и жмём на <Next>.
выбор первого имени домена мастера установки iRedMail
  • В седьмом окне, нужно создать пароль администратора почтового сервера (аккаунт postmaster@game-int.ru), с помощью которого, мы будем получать доступа к веб-панелям.
  • Придумываем пароль, и жмём на <Next>.
создание пароля для аккаунта postmaster мастера установки iRedMail
  • В восьмом окне, перед нами выбор дополнительных компонентов, которые могут быть установлены.
  • В списке - две панели для доступа к почтовым аккаунтам, панель администратора, панель мониторинга, и утилита file2ban.
  • Выбираем всё (отключить всё ненужное, можно в любое время), и жмём на <Next>.
выбор компонентов для установки мастера установки iRedMail
  • В итоге появляется сводка, с перечислением выбранных нами опций.
  • Если всё верно, то соглашаемся.
вывод сводки выбранных опций мастера установки iRedMail

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

  • Начинается установка почтового сервера iRedMail. В процессе установки, задаётся несколько вопросов.
  • Сначала нам предлагают настроить правила Firewall, под работу iRedMail, и 22 портом для доступа по ssh.
  • Если Вы предварительно изменили порт, то будет предложен порт, который Вы назначили.
  • Соглашаемся, и жмём «Enter».
запрос на настройку брадмауэра мастера установки iRedMail
  • На следующем шаге, нам предлагают перезапустить Firewall, чтобы новые правила вступили в силу.
  • Так же соглашаемся, и жмём «Enter».
запрос на перезапуск брандмауэра мастера установки iRedMail
  • После перезапуска брандмауэра, нам предлагают настроить сервер баз данных.
  • Как и на предыдущих шагах, соглашаемся, и жмём «Enter».
запрос на настройку сервера баз данных мастера установки iRedMail
  • Больше нашего участия не требуется, через некоторое время, установка будет завершена.
  • По завершении установки, в консоли появляется информационное сообщение с ссылками на веб-панели, паролем и логином к панелям, путём к файлу со всеми данными и конфигурациями, и сообщается об отправке этих данных, на почтовый аккаунт администратора почтового домена.
сообщение о завершении установки мастера установки iRedMail

Ссылки на веб-панели, в моём случае выглядят таким образом:

Roundcube webmail: https://mail.game-int.ru/mail/
SOGo Groupware: https:///mail.game-int.ru/SOGo
Web admin panel (iRedAdmin): https:///mail.game-int.ru/iredadmin/
Netdata (monitor): https://mail.game-int.ru/netdata/
  • Файл с данными, находится по адресу: /root/iRedMail-1.3.2/iRedMail.tips

Уже сейчас наш почтовый сервер полностью функционален. Правда есть некоторые нюансы, о которых мы поговорим дальше в этой статье, и в нескольких следующих статьях.

Настройка сертификата Let's Encrypt для доступа к веб-панелям iRedMail

  • Если Вы захотите попасть в любую из установленных веб-панелей, то увидите сообщение о проблеме с сертификатом безопасности.
сообщение о проблеме сертификата безопасности
  • Это следствие того, что установлен самоподписной сертификат безопасности. Давайте исправим это, добавив на сервер сертификат от Let's Encrypt.
  • Устанавливаем утилиту certbot.
# yum install certbot
  • Отправляем в консоль команду для создания сертификата. В моём случае команда будет такой:
# certbot certonly --webroot --agree-tos --email postmaster@game-int.ru --webroot-path /var/www/html -d mail.game-int.ru
  • В команде указываем Ваш адрес электронной почты, путь до корневой папки веб-сервера, и доменное имя, для которого Вы хотите получить сертификат.
  • Соглашаемся с сообщением, появившимся в консоли.
параметры создания сертификата Let's Encrypt
  • В итоге, появляется сообщение с поздравлением, путями к созданным файлам, и сроком действия полученного сертификата.
сертификат Let's Encrypt создан
  • Удаляем ключ и сертификат, созданные при установке iRedMail, и создаём символьные ссылки на файлы, полученные от Let's Encrypt.
# rm -f /etc/pki/tls/private/iRedMail.key
# rm -f /etc/pki/tls/certs/iRedMail.crt
# ln -s /etc/letsencrypt/live/mail.game-int.ru/privkey.pem /etc/pki/tls/private/iRedMail.key
# ln -s /etc/letsencrypt/live/mail.game-int.ru/fullchain.pem /etc/pki/tls/certs/iRedMail.crt
  • Остаётся только настроить автообновление нашего сертификата. Добавляем задание в системный планировщик заданий /etc/crontab, на запуск обновления сертификата, ежедневно в 01:30.
30 1 * * * root  /usr/bin/certbot renew && systemctl restart nginx && systemctl restart iredapd
  • Производим перезапуск служб.
# systemctl restart iredapd
# systemctl restart nginx
  • Теперь если мы зайдем на любую из веб-панелей, сообщений о проблеме с сертификатом не будет.

На этом данная статья закончена. Продолжение рассказа о почтовом сервере iRedMail, читайте в следующих статьях.

Сегодня мы рассмотрели тему: "iRedMail - установка на CenOS 7". Подробно изучили процесс установки почтового сервера iRedMail на CenOS 7. Смотрите так же видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

С уважением, Андрей Бондаренко.


Видео на тему "iRedMail - установка на CenOS 7":