iRedMail — установка на CenOS 7

Приветствую Вас, уважаемые читатели. Сегодня тема статьи: "iRedMail - установка на CenOS 7". Эта первая статья из серии статей о почтовом сервере iRedMail. Подробно рассмотрим процесс установки iRedMail в операционной системе CenOS 7.
iRedMail – комплект программного обеспечения, для развёртывания полноценного почтового сервера.
Официальный сайт проекта: https://www.iredmail.org
После установки iRedMail, вы по умолчанию получаете:
- Postfix - SMTP сервер
- Dovecot - IMAP сервер для доступа к почтовым ящикам
- Веб-сервер - Nginx + MariaDB + PHP
- Roundcube - веб-панель для доступа к почте
- SOGo - веб-панель для доступа к почте
- Netdata - веб-панель мониторинга
- logwatch - приложение для контроля за логами
- Amavisd - модуль связки с дополнительными системами обработки почты
- ClamAV - бесплатный антивирус
- SpamAssassin - средство для фильтрации спама
Кроме всего вышеперечисленного, установщиком буду произведены дополнительные действия:
- Настройка правил для Firewall
- Установка и настройка под все компоненты утилиты Fail2Ban
- Создание DKIM ключа
- Настройка Cron для обслуживания и бэкапа сервера
- Создание 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 имя_Вашего_поддомена.

Последние подготовительные действия
- Если все предыдущие шаги реализованы, то можно идти дальше. Производим обновление системы, подключаем репозиторий 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>.

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

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

- В четвёртом окне, нам предлагают выбрать метод хранения почтовых аккаунтов.
- Выбираем MariaDB, и жмём на <Next>.

- В пятом окне, нам предлагают создать пароль пользователя root, для сервера баз данных.
- Создаём пароль, и жмём на <Next>.

- В шестом окне, нам нужно указать первое имя нашего домена, в моём случае это будет game-int.ru.
- Обратите внимание, не mail.game-int.ru, а game-int.ru, чтобы в итоге почтовые аккаунты были вида: пользователь@game-int.ru.
- Указываем домен, и жмём на <Next>.

- В седьмом окне, нужно создать пароль администратора почтового сервера (аккаунт postmaster@game-int.ru), с помощью которого, мы будем получать доступа к веб-панелям.
- Придумываем пароль, и жмём на <Next>.

- В восьмом окне, перед нами выбор дополнительных компонентов, которые могут быть установлены.
- В списке - две панели для доступа к почтовым аккаунтам, панель администратора, панель мониторинга, и утилита file2ban.
- Выбираем всё (отключить всё ненужное, можно в любое время), и жмём на <Next>.

- В итоге появляется сводка, с перечислением выбранных нами опций.
- Если всё верно, то соглашаемся.

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

- На следующем шаге, нам предлагают перезапустить Firewall, чтобы новые правила вступили в силу.
- Так же соглашаемся, и жмём «Enter».

- После перезапуска брандмауэра, нам предлагают настроить сервер баз данных.
- Как и на предыдущих шагах, соглашаемся, и жмём «Enter».

- Больше нашего участия не требуется, через некоторое время, установка будет завершена.
- По завершении установки, в консоли появляется информационное сообщение с ссылками на веб-панели, паролем и логином к панелям, путём к файлу со всеми данными и конфигурациями, и сообщается об отправке этих данных, на почтовый аккаунт администратора почтового домена.

Ссылки на веб-панели, в моём случае выглядят таким образом:
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
- В команде указываем Ваш адрес электронной почты, путь до корневой папки веб-сервера, и доменное имя, для которого Вы хотите получить сертификат.
- Соглашаемся с сообщением, появившимся в консоли.

- В итоге, появляется сообщение с поздравлением, путями к созданным файлам, и сроком действия полученного сертификата.

- Удаляем ключ и сертификат, созданные при установке 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":

WMZ-кошелёк = Z667041230317
«Email»
Олег
Спасибо, по вашей инструкции собираюсь делать почтовый сервер, только думаю на дебиане 9,9, что скажите? Слышал что Центос без поддержки
Андрей Бондаренко
Пожалуйста.
На Debian, возможно есть некоторые нюансы, но в целом всё аналогично.
Олег
Здравствуйте, я тот же Олег что писал ранее. Я с благодарностью Вам за Ваш труд, отличный сайт хорошие мануалы для начинающих таких как я ))
Благодаря Вашему сайту я настроил почтовый сервер и два веб сервера. Всего хорошего Вам.
Андрей Бондаренко
Здравствуйте.
Пожалуйста. И Вам спасибо на добром слове!