Установка и настройка 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.
Это необходимо для правильного разрешения имени хоста на сервере.
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 для начала установки.
2. Путь хранения почты - по умолчанию /var/vmail. Нажмите Enter, если хотите использовать каталог по умолчанию.
Здесь будут храниться все письма пользователей.
3. Выбор веб-сервера — выберите Nginx и нажмите Enter.
Nginx работает быстрее и проще в настройке по сравнению с Apache.
4. Выбор бэкенда для почтовых аккаунтов - используйте стрелку вниз, затем Пробел, выберите MariaDB.
MariaDB хранит все учетные записи и домены.
5. Пароль администратора MySQL. Придумайте надежный пароль для root.
6. Первый домен - введите ваш почтовый домен (например, tex-lab.ru).
На этом домене будет работать основная почта сервера.
7. Пароль администратора почты - задайте пароль для учетной записи postmaster.
Это основной почтовый администратор, который сможет создавать пользователей и управлять почтой.
8. Дополнительные компоненты. Выберите нужные (например, Amavis, SpamAssassin, ClamAV) и нажмите Enter.
- 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. После успешной установки Вы увидите вывод с данными вашего почтового сервера.
Настройка DNS
Для корректной работы почты важно настроить правильные DNS-записи.
Примеры ниже для домена tex-lab.ru и IP 62.173.138.27. Замените на свои значения.
MX-запись
- Тип: MX
- Имя: @
- Приоритет: 10
- Значение: mail.tex-lab.ru
MX-запись указывает другим почтовым серверам, куда доставлять письма для вашего домена.
SPF-запись
- Тип: TXT
- Имя: @
- Значение: "v=spf1 a mx ip4:62.173.138.27 -all"
SPF помогает защититься от подделки отправителя (спуфинга). Замените IP на ваш сервер.
DMARC-запись
- Тип: TXT
- Имя: _dmarc
- Значение: "v=DMARC1; p=reject; rua=mailto:dmarc@tex-lab.ru; pct=100"
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
Проверьте ключ командой:
amavisd testkeys
Мы должны получить результат:
TESTING#1 tex-lab.ru: dkim._domainkey.tex-lab.ru => pass
DKIM помогает получателю убедиться, что письмо действительно от вашего домена.
A-запись
- Тип: A
- Имя: mail
- Значение: 62.173.138.27
PTR-запись
Данный порядок действий подходит только для нашей панели. У вашего провайдера изменение PTR записи может происходить иначе.
Выберите услугу виртуального или выделенного сервера и сверху нажмите кнопку IP-адреса. Далее выберите нужный IP и отредактируйте поле Домен.
Важно для прохождения проверки почты как надежной.
Теперь проверим через наш сервис проверки записей (вы можете использовать любой сервис или команду dig), что все записи добавлены от разошлись по серверам:
Выпуск сертификатов 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
В примере мы использовали зеркала проекта 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,
3. Cкопируйте там уникальный почтовый ящик и отправьте на него письмо от почтового сервера с произвольным содержанием.
Вы должны получить результат близкий к максимальному баллу - 10. Если Вы что-то не сделали или ошиблись, то сервис об этом расскажет.
Добавление доменов и почтовых ящиков
1. Войдите в iRedAdmin: https://mail.tex-lab.ru/iredadmin
2. Для добавления нового домена нажмите "Add Domain".
3. Для создания почтового ящика выберите домен → "Add Mail Account".
4. Укажите имя, пароль и квоту почтового ящика.






















