Перейти к основному контенту

Установка и настройка iRedMail


Введение

iRedMail - это полностью открытое решение для развёртывания почтового сервера на Linux/BSD с минимальной настройкой. Он устанавливает и настраивает почтовый сервер с веб-интерфейсом, почтовыми протоколами (SMTP, IMAP, POP3), антивирусной проверкой, фильтрацией спама и поддержкой нескольких доменов. В комплекте идут Amavis, ClamAV, SpamAssassin и веб-админка iRedAdmin для управления пользователями и доменами.

Поддерживаемые ОС
  • Debian
  • Ubuntu
  • CentOS / Rocky Linux / AlmaLinux
  • FreeBSD

Рекомендации по ресурсам сервера
  • CPU: не менее 4 ядер.
  • RAM: не менее 4 Гб.
  • Диск: 30–50 Гб.

Причина: пакет включает ClamAV и другие компоненты, которые потребляют ресурсы. На слабых машинах возможны проблемы с производительностью.

Мы рекомендуем использовать виртуальную машину с такими характеристиками - у нас на сайте есть готовые конфигурации серверов, которые подойдут для почтового хостинга.

Подготовка сервера

В примерах в инструкции будет использоваться домен mail.tex-lab.ru и IP сервера 62.173.138.27. Обязательно замените их на свои реальные домен и IP при настройке.

1. Измените имя хоста на ваш почтовый домен:

hostnamectl set-hostname mail.tex-lab.ru

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

2. Добавьте домен в файл hosts:

nano /etc/hosts

Добавьте строку:

127.0.1.1 mail.tex-lab.ru mail

Сохраните Ctrl+O → Enter, затем закройте файл Ctrl+X.

install-iredmail-planetahost-017.jpg

Это необходимо для правильного разрешения имени хоста на сервере.

3. Скачайте пакет iRedMail с официального сайта. Перейдите на сайт iRedMail и скопируйте ссылку на актуальную версию.
Пример для версии 1.7.4:

wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.7.4.tar.gz

Внимание! Указывайте актуальную версию на момент установки.

4. Распакуйте архив и подготовьте установку:

tar xvf 1.7.4.tar.gz
cd iRedMail-1.7.4
chmod +x iRedMail.sh

Установка

Запустите скрипт установки:

bash iRedMail.sh

Основные шаги установки

1. Приветственное окно - нажмите Enter для начала установки.

install-iredmail-planetahost-001.jpg

2. Путь хранения почты - по умолчанию /var/vmail. Нажмите Enter, если хотите использовать каталог по умолчанию.

install-iredmail-planetahost-002.jpg

Здесь будут храниться все письма пользователей.

3. Выбор веб-сервера — выберите Nginx и нажмите Enter.

install-iredmail-planetahost-003.jpg

Nginx работает быстрее и проще в настройке по сравнению с Apache.

4. Выбор бэкенда для почтовых аккаунтов - используйте стрелку вниз, затем Пробел, выберите MariaDB.

install-iredmail-planetahost-004.jpg

MariaDB хранит все учетные записи и домены.

5. Пароль администратора MySQL. Придумайте надежный пароль для root.

install-iredmail-planetahost-005.jpg

6. Первый домен - введите ваш почтовый домен (например, tex-lab.ru).

install-iredmail-planetahost-006.jpg

На этом домене будет работать основная почта сервера.

7. Пароль администратора почты - задайте пароль для учетной записи postmaster.

install-iredmail-planetahost-007.jpg

Это основной почтовый администратор, который сможет создавать пользователей и управлять почтой.

8. Дополнительные компоненты. Выберите нужные (например, Amavis, SpamAssassin, ClamAV) и нажмите Enter.

install-iredmail-planetahost-008.jpg

  • Roundcube - веб-почтовый клиент. Позволяет пользователям заходить в свою почту через браузер, читать письма, отправлять новые, работать с контактами и папками.
  • SOGo - групповой календарь, контакты и веб-почта. Нужен если требуется синхронизация почты, календарей и адресных книг с телефонами и компьютерами (ActiveSync, CalDAV, CardDAV).
  • Netdata - система мониторинга. Показывает в реальном времени загрузку CPU, RAM, дисков, работу сетевых служб и помогает быстро находить проблемы с производительностью сервера.
  • iRedAdmin - веб-панель администратора почтового сервера. Через неё можно добавлять домены, создавать почтовые ящики, управлять квотами, паролями и другими параметрами без консоли.
  • Fail2ban - система защиты от взлома. Блокирует IP-адреса, которые пытаются подобрать пароли к почте, SSH или другим сервисам, тем самым защищает сервер от брутфорса.

9. После всех настроек скрипт покажет все внесенные ваши параметры и задаст вопрос:

< Question > Continue? [y|N]

Вам нужно написать Y и нажать Enter.

10. Во время завершения установки скрипт задаст вопрос:

< Question > File: /etc/nftables.conf, with SSHD ports: 22. [Y|n]

Тут Вам надо также написать Y и нажать Enter.

Для вопроса:

< Question > Restart firewall now (with ssh ports: 22)? [y|N]

написать Y и нажать Enter.

11. После успешной установки Вы увидите вывод с данными вашего почтового сервера.

install-iredmail-planetahost-009.jpg

Настройка DNS

Для корректной работы почты важно настроить правильные DNS-записи.

Примеры ниже для домена tex-lab.ru и IP 62.173.138.27. Замените на свои значения.

MX-запись
  • Тип: MX
  • Имя: @
  • Приоритет: 10
  • Значение: mail.tex-lab.ru

install-iredmail-planetahost-011.jpg

MX-запись указывает другим почтовым серверам, куда доставлять письма для вашего домена.

SPF-запись
  • Тип: TXT
  • Имя: @
  • Значение: "v=spf1 a mx ip4:62.173.138.27 -all"

install-iredmail-planetahost-025.jpg

SPF помогает защититься от подделки отправителя (спуфинга). Замените IP на ваш сервер.

DMARC-запись
  • Тип: TXT
  • Имя: _dmarc
  • Значение: "v=DMARC1; p=reject; rua=mailto:dmarc@tex-lab.ru; pct=100"

install-iredmail-planetahost-013.jpg

DMARC сообщает другим серверам, что делать с письмами, которые не проходят SPF или DKIM.

DKIM-запись
  • Тип: TXT
  • Имя: dkim._domainkey
  • Значение: сгенерируйте командой на сервере:
amavisd showkeys tex-lab.ru \
  | grep '"' \
  | sed 's/[") ]//g' \
  | tr -d '\n' \
  | sed 's/v=DKIM1;p=/v=DKIM1; p=/' \
; echo

install-iredmail-planetahost-012.jpg

Проверьте ключ командой:

amavisd testkeys

Мы должны получить результат:

TESTING#1 tex-lab.ru: dkim._domainkey.tex-lab.ru => pass

DKIM помогает получателю убедиться, что письмо действительно от вашего домена.

A-запись
  • Тип: A
  • Имя: mail
  • Значение: 62.173.138.27

install-iredmail-planetahost-010.jpg

PTR-запись

Данный порядок действий подходит только для нашей панели. У вашего провайдера изменение PTR записи может происходить иначе.

Выберите услугу виртуального или выделенного сервера и сверху нажмите кнопку IP-адреса. Далее выберите нужный IP и отредактируйте поле Домен.

install-iredmail-planetahost-019.jpg

Важно для прохождения проверки почты как надежной.

Теперь проверим через наш сервис проверки записей (вы можете использовать любой сервис или команду dig), что все записи добавлены от разошлись по серверам:

install-iredmail-planetahost-022.jpg

install-iredmail-planetahost-020.jpg

install-iredmail-planetahost-024.jpg

install-iredmail-planetahost-023.jpg

install-iredmail-planetahost-021.jpg

Выпуск сертификатов Let's Encrypt

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

1. Создайте файл ssl_gen.sh на сервере, вставьте туда скрипт из спойлера ниже:

Код скрипта
#!/bin/bash
# ============================================================
#   Скрипт автоматической установки Let's Encrypt для iRedMail
#   Команда ТехЛаб — 2025
#   Домен в примере: mail.tex-lab.ru
# ============================================================

set -euo pipefail

echo
echo -e "\e[36m==============================================================\e[0m"
echo -e "\e[36m  Приветствует автоматический скрипт установки SSL от ТехЛаб \e[0m"
echo -e "\e[36m  Скрипт выпустит Let's Encrypt и пропишет сертификаты для iRedMail \e[0m"
echo -e "\e[36m==============================================================\e[0m"
echo

# ---------------- Параметры ----------------
read -rp "Введите ваш FQDN (пример: mail.tex-lab.ru): " DOMAIN
[ -n "$DOMAIN" ] || { echo "Домен не может быть пустым"; exit 1; }

read -rp "Введите ваш email для Let's Encrypt (пример: admin@tex-lab.ru): " EMAIL
[ -n "$EMAIL" ] || { echo "Email обязателен"; exit 1; }

# ---------------- Установка certbot ----------------
echo "[INFO] Установка certbot..."
apt update
apt install -y certbot

# ---------------- Подготовка каталога для http challenge ----------------
WWW_PATH="/opt/www/well_known"
if [ ! -d "$WWW_PATH/.well-known/acme-challenge" ]; then
  echo "[INFO] Создаю каталог для challenge: $WWW_PATH"
  mkdir -p "$WWW_PATH/.well-known/acme-challenge"
  chown -R www-data:www-data "$WWW_PATH"
fi

# ---------------- Проверочный запуск — dry-run ----------------
echo "[INFO] Проверка certbot --dry-run"
certbot certonly --webroot -w "$WWW_PATH" --dry-run -d "$DOMAIN" -m "$EMAIL" --agree-tos --no-eff-email

# ---------------- Запрос настоящего сертификата ----------------
echo "[INFO] Запрашиваю настоящий сертификат Let's Encrypt"
certbot certonly --webroot -w "$WWW_PATH" -d "$DOMAIN" -m "$EMAIL" --agree-tos --no-eff-email

LEPATH="/etc/letsencrypt/live/$DOMAIN"
if [ ! -f "$LEPATH/fullchain.pem" ] || [ ! -f "$LEPATH/privkey.pem" ]; then
  echo "[ERROR] Сертификаты не найдены после выпуска!"
  exit 1
fi
echo "[INFO] Сертификаты созданы: $LEPATH"

# ---------------- Создание символьных ссылок ----------------
echo "[INFO] Создаю симлинки для iRedMail"
mv /etc/ssl/certs/iRedMail.crt{,.bak} 2>/dev/null || true
mv /etc/ssl/private/iRedMail.key{,.bak} 2>/dev/null || true
ln -sf "$LEPATH/fullchain.pem" /etc/ssl/certs/iRedMail.crt
ln -sf "$LEPATH/privkey.pem" /etc/ssl/private/iRedMail.key

# ---------------- Перезапуск сервисов ----------------
echo "[INFO] Перезапускаю Postfix, Dovecot и веб-сервер"
systemctl restart postfix dovecot

if systemctl is-active --quiet nginx; then
  systemctl restart nginx
elif systemctl is-active --quiet apache2; then
  systemctl restart apache2
else
  echo "[WARN] Не удалось обнаружить активный веб-сервер для перезагрузки"
fi

# ---------------- Настройка автообновления ----------------
echo "[INFO] Настройка cron для автоматического обновления certbot"
CRON_CMD="certbot renew --post-hook \"ln -sf $LEPATH/privkey.pem /etc/ssl/private/iRedMail.key; ln -sf $LEPATH/fullchain.pem /etc/ssl/certs/iRedMail.crt; systemctl restart postfix dovecot; systemctl restart nginx || systemctl restart apache2\""
( crontab -l 2>/dev/null | grep -v "certbot renew" ; echo "1 3 * * * $CRON_CMD" ) | crontab -

echo
echo -e "\e[32m==============================================================\e[0m"
echo -e "\e[32m  Готово! SSL для iRedMail установлен и настроен. \e[0m"
echo -e "\e[32m  Domain: $DOMAIN \e[0m"
echo -e "\e[32m  Симлинк CRT: /etc/ssl/certs/iRedMail.crt \e[0m"
echo -e "\e[32m  Симлинк KEY: /etc/ssl/private/iRedMail.key \e[0m"
echo -e "\e[32m==============================================================\e[0m"
echo


2. Сделайте его исполняемым:

chmod +x ssl_gen.sh

3. Запустите:

bash ssl_gen.sh

Следуйте инструкциям скрипта.

Решение проблем с ClamAV

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

1.  Откройте файл конфигурации:

nano /etc/clamav/freshclam.conf

2. Закомментируйте официальные серверы обновлений и добавьте доступные зеркала:

PrivateMirror https://clamav-mirror.ru/
PrivateMirror https://mirror.truenetwork.ru/clamav/
PrivateMirror http://mirror.truenetwork.ru/clamav/
ScriptedUpdates no

install-iredmail-planetahost-016.jpg

В примере мы использовали зеркала проекта https://clamav-mirror.ru/, но Вы можете использовать любые доступные.

3. Удалите старую базу:

rm /var/lib/clamav/freshclam.dat

4. Запустите обновление базы:

freshclam -vvv

5. Перезагрузите сервер.

Проверка работы

1. Войдите в почтовый клиент по адресу: https://mail.tex-lab.ru/mail/ и авторизуйтесь под postmaster.


2. После этого зайдите на полезный сервис для проверки почты - https://www.mail-tester.com,

install-iredmail-planetahost-014.jpg

3. Cкопируйте там уникальный почтовый ящик и отправьте на него письмо от почтового сервера с произвольным содержанием.

install-iredmail-planetahost-015.jpg

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

Добавление доменов и почтовых ящиков

1. Войдите в iRedAdmin: https://mail.tex-lab.ru/iredadmin


install-iredmail-planetahost-027.jpg

2. Для добавления нового домена нажмите "Add Domain"Добавить...".


install-iredmail-planetahost-026.jpg

3. Для создания почтового ящика выберите домен → "Add Mail Account"Пользователь".


4. Укажите имя, пароль и квоту почтового ящика.

install-iredmail-planetahost-028.jpg

На этом установка и базовая настройка iRedMail завершена. Теперь ваш сервер готов к приёму и отправке почты, а также защищён от большинства распространённых угроз. Рекомендуем регулярно проверять работу антиспам-систем, обновлять сервер и следить за состоянием DNS-записей.