Iredmail установка и настройка debian

Обновлено: 03.07.2024

iRedMail — бесплатное open source решение для создания почтовых серверов, включающее в себя скрипт для автоматической установки необходимых компонентов: Dovecot, Postfix, SpamAssasin, ClaimAV, Apache/nginx, Roundcube, SOGo, а так же бесплатную версию web-интерфейса для администрирования — iRedMailamdin. В отличие от ручной конфигурации и сборки из необходимых пакетов, требующей достаточно глубоких знаний linux-дистрибутивов, iRedMail позволяет сэкономить время при создании почтовых серверов.

Процесс будет расписан для двух дистрибутивов — Debian и FreeBSD, но инструкция для Debian во многом подойдет и для Ubuntu.

Проверено на дистрибутивах:

Конфигурация сети для примера следующая:

  • eth0 — внутренний (LAN): 192.168.1.1/24;
  • eth1 — внешний (internet): IP — 10.1.0.31/24, шлюз по умолчанию — 10.1.0.1, DNS-сервер —10.1.0.1.

eth1 напрямую подключен к провайдеру, а eth0 — в локальную сеть.

Debian.

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

Для того, чтобы внесенные настройки обновились:

Обновляем имя хоста с помощью скрипта и проверяем:

Если имя хоста по прежнему не изменилось, то перезагружаем систему командой “reboot”.

Теперь когда произведены настройки сети необходимо обновить систему и установленные пакеты. Убедимся, что добавлены необходимые репозитории — для Debian Jessie конфиг будет выглядеть следующим образом:

И производим обновления:

Вероятно, в вашей системе могут быть не установлены требуемые пакеты, которые потребуются для установки iRedMail:

FreeBSD.

При той же топологии конфигурация сети и имени хоста для FreeBSD будет выглядеть следующим образом:

IP-адрес сервера имен тот же, что и в настройках для Debian, но для FreeBSD конфиг располагается в другом файле:

Чтобы обновить сетевые настройки необходимо перезапустить службы:

Для обновлении имени хоста:

или перезагрузить систему по команде reboot. Проверяем:

Если вы еще не производили обновление системы, то необходимо произвести следующие действия. Для начала обновим “дерево портов”:

Или, если по каким-то причинам дерево “портов” не было установлено, то предварительно ставим:

Теперь, если в дальнейшем вы предпочтете ставить пакеты с помощью package manager’а (для FreeBSD 10.x), а не из “портов”, то:

Для установки iRedMail аналогично потребуются пакет wget. Можно собрать из “портов”:

и в открывающихся диалоговых окнах оставляем все параметры по умолчанию. Или ставим с помощью package manager’а (для FreeBSD 10.x):

Для FreeBSD 9 используйте команду:

Так же для установки потребуется пакет bash-static. Собрать из “портов” можно:

Все параметры оставляем по умолчанию. Или:

Обновляем данные об установленных пакетах командой:

Заходим на официальный сайт, копируем ссылку для скачивания пакета (на текущий момент актуальной является версия 0.9.5–1), скачиваем и распаковываем его в папку /home/src и запускаем установщик.

Для Debian:

Для FreeBSD:

Дальнейшая установка идентична, как для Debian, так и для FreeBSD (разве что для для FreeBSD времени для установку требуется на порядок больше ввиду того, что пакеты собираются из “портов”). Весь процесс настройки iRedMail производится по принципу “Next>Next>Next”:

Оставляем все значения по умолчанию (выбрано все, кроме SOGo). После чего сверяем заданные параметры, подтверждаем их и ждем окончания установки. Отвечаем “Y”, чтобы добавить предоставленные iRedMail’ом правила фаервола (iptables) и аналогично подтверждаем его перезапуск с разрешенным для SSH портом 22.

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

Для Debian:

Eсли вы устанавливали apache:

Если установлен nginx:

Для FreeBSD:

По завершении установки в папке с iRedMail будет создан файл с подсказками: логином и паролем администратора, путями к созданным сертификатам и конфигурациям установленных пакетов:

На этом настройка почтового сервера (его серверной части) для Debian завершена. Eсли вы устанавливали iRedMail на FreeBSD по необходимости нужно отдельно установить и настроить fail2ban, а так же включить и сконфигурировать фаервол ip: скрипт iRedMail не содержит конфигураций для связки fail2ban + ip под FreeBSD. Сам по себе процесс довольно емкий и это тема для отдельной статьи.


iRedMail - это готовое решение по организации почтового сервера на базе Linux. В сборку входят такие пакеты как Postfix+Dovecot+LDAP, MySQL или PostreSQL back-end на выбор)+SpamAssassin+ClamAV+AmaViS+RoundCube . Более подробно о компонентах и их функциях:

Вкратце почтовую систему на базе postfix можно описать следующей иллюстрацией:

ispmail1

И еще одна картинка для улучшения понимания:

Linux postmail 2

Преимущества использования перед другими системами:

  • Бесплатный и в то же время полнофункциональный почтовый сервер, использующий свободные open source решения, которые выпускаются под лицензией GPLv2
  • Поддержка таких известных виртуальных машин, как VMware, Xen, KVM, OpenVZ, VirtualBox.
  • Поддержка архитектуры i386 и x86_64/amd64 и таких операционных систем как Red Hat, CentOS, Scientific Linux, Debian, Ubuntu, Gentoo, openSUSE, FreeBSD, OpenBSD.
  • Простота и скорость установки, по сравнению с ручным методом, где можно допустить много ошибок и потом очень долго гуглить.
  • Наличие большого комюнити, где можно получить тех поддержку в случае возникновения каких либо проблем.

1) Настройка системы

Как то исторически сложилось, что под почтовую систему я использую debian, поэтому в данной заметке буду описывать процесс установки сервера iRedmail на debian последней версии. Для этого скачиваем версию netinst, которая с минимальным набором ПО. Установку описывать не имеет смысла - там все предельно просто, но для совсем новичков рекомендую ознакомится со следующей статьей. Затем настроим сеть, для этого редактируем файл:

После выполнения несложных шагов по установке, убедимся что установлен ssh server. Если нет, то исправляем, установкой соответствующих пакетов:

Непосредственно перед установкой на хосте должно быть установлено полностью определенное доменное имя (FQDN). Проверить это можно, используя следующую команду:

Для распаковки пакета, нам потребуется bzip. Если, его нет то выполняем команду:

2. Установка iredMail

Теперь перейдем непосредственно к установке самого сервера. Качаем последний стабильный релиз Iredmail отсюда. Если при помощи wget, то не забудем указать параметр --no-check-certificate - не проверять сертификат сервера.

Извлекаем пакет командой:

Переходим в директорию и запускаем установочный скрипт:

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

iRedmail Install- First Step

iRedmail Install- Second Step

На следующем экране выберем back-end - тип баз данных для хранения почтовых аккаунтов. На выбор OpenLDAP, MySQL, PostgreSQL. Выбираем MySQL, нажимаем Далее.

iRedmail Install- Back-end?

iRedmail Install- MySQL-Back-end

Затем указываем доменное имя, которое хотим иметь после @. Полное доменное имя мы прописали еще ранее.

iRedmail Install- MySQL-Back-end

На следующем экране, зададим пароль административной учетной записи postmaster, при помощи которой мы будем создавать другие учетные записи и управлять нашим сервером.

iRedmail Install- MySQL-Back-end

Следующий экран, выбор опциональных компонентов. Оставляем по умолчанию и нажимаем Next.

iRedmail Install - MySQL - Выбор опциональных компонентов

Нажимаем Yes, соглашаемся с установкой пакетов и затем с изменением правил файрвола. Дожидаемся конца установки. Не рекомендуется прерывать процесс установки, а потом снова запускать установочный скрипт, иначе потом можно обнаружить что, что-то не работает должным образом, не пускает в iredadmin например, как это было у меня. Перезагружаем сервер.

Теперь перейдем в roundcube, набрав в адресной строке доменное имя нашего сервера или его ip-адрес.

Для обращения по имени, адрес сервера должен быть сопоставлен на dns-сервере или, если установка происходит в тестовой среде, нужный адрес с доменным именем можно прописать в файле C:\WINDOWS\system32\drivers\etc\hosts если используется Windows и /etc/resolv.conf для Linux.

Roundcube - Main Screen

3. Создание нового ssl-сертификата.
В Debian, сертификаты хранятся в /etc/ssl/certs и /etc/ssl/private.

Перемещаем текущие сертификаты куда-нибудь в другой каталог.

Редактируем скрипт, находящийся в каталоге дистрибутива iRedMail.
nano tools/generate_ssl_keys.sh
Меняем, TLS-параметры применительно к своей области.

iRedMail - Меняем параметры TLS

Для того что бы сертификаты оказались в нужных директориях, копируем скрипт в каталог /etc/ssl/

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

4. Редактирование зон DNS. Записи ptr, spf, DKIM.

Для корректной отправки почты с нашего сервера - добавим обратную ptr-запись указывающую на доменное имя нашего почтового сервера. Прописывается в обратной зоне провайдера, владеющего этим IP. Поэтому звоним провайдеру и говорим чтобы он прописал требующуюся PTR запись.

Рекомендуется так же, прописать специальную spf-запись (Sender Policy Framework) которая позволяет проверить не подделан ли домен отправителя. SPF-запись позволяет снизить вероятность попадания в спам писем, отправленных с вашего домена. В SPF-записи домена указывается список адресов серверов, с которых имеет право отправляться почта с ящиков на вашем домене. Настройка SPF-записи не является обязательной для работы почты, тем не менее, она поможет избежать потери отправленных писем.

Переходим в админ-панель своего доменного регистратора и в днс настройках вашего домена создадим txt-запись со следующим содержимым:

где, V=spf1 - используемая версия spf,

ip4 - принимать письма, отправленные с IP-адреса public_ip - ваш адрес почтового сервера.

Более подробно о возможных параметрах можно почитать вот здесь, а настроить DNS на работу второго провайдера поможет следующая заметка.

И наконец добавим DKIM-запись (DomainKeys Identified Mail), которая служит дополнительным средством борьбы со спамом и фишингом. DKIM - это технология удостоверения подлинности отправителя при помощи цифровой подписи, связанной с именем домена. Наличие DKIM подписи подтверждает, что письмо действительно было отправлено с указанного адреса.

Вывод команды будет следующим:

Для удобства копи-паста, содержимое команды перенаправим в файл.

Что бы исключить ошибки, проверим нашу запись при помощи онлайн сервиса DKIM Core.

Ждем пока информация о наших изменениях доберется до корневых DNS серверов (от 30 минут до 2-3 суток) после чего, набираем в консоли:

Если в ответ получим:

И так же видим что, проверки пройдены успешно. Если видим "neutral" или "failed", то значит что-то прописано неправильно, и гугл не доверяет серверу, с которого было отправлено письмо.

5. Резервное копирование (Backup) почты на windows-шару.

Создадим скрипт автобэкапа, например файл будет называться backup_mailboxes.sh со следующим содержимым:

  • mount -t cifs //192.168.0.2/BackupMail$ - путь к виндовой шаре;
  • username="BackupUser",password="12345678",domain="test.spb" - виндовый пользователь BackupUser, его пароль и домен в который он входит;
  • cd /mnt/net - Переход в директорию куда смонтирована windows-шара;
  • sudo zip -r mail_backup-$(date +%Y-%m-%d_%H-%M-%S).zip /var/mail/vmail1 - архивация директории /var/mail/vmail1, на выходе получаем zip-архив;
  • fuser -m -k TERM /mnt/net - безопасное извлечение устройства иначе получим ошибку "device is busy";
  • umount /mnt/net - размонтирование;

Не рекомендую использовать tar.gz или его аналоги в качестве архиватора, если вы собираетесь работать с резервной копией архива под Windows. На практике пришлось столкнуться с невозможностью восстановить такой архив на NTFS-диске, если ранее он был удален. Перепробовав множества утилит по восстановлению, искомый архив прекрасно нашелся и даже открылся архиватором, вернее его первая tar-часть, а вот сам gz-архив оказался битым.

Добавим задачу в планировщик.

6. Фильтрация спама и блокировка вложений средствами Postfix.

Следующие директивы в /etc/postfix/main.cf приведем к следующему виду. Обратим внимание на формат записи с новой строки, где после основной директивы, последующие параметры цепочки, должны начинаться с пробела.

В helo_access.pcre кроме прочего добавил следующие строки, меняем на свои значения:

address_verify_sender=double_bounce_sender - проверка существования адреса отправителя.

Активируем изменения командой:

Для фильтрации вложений по расширению файла, средствами postfix открываем на редактирование /etc/postfix/main.cf и добавляем туда следующую строку:

mime_header_checks = regexp:/etc/postfix/mime_header_checks

Открываем файл /etc/postfix/mime_header_checks на редактирование и добавляем туда следующее содержимое:

Активируем изменения командой:

Примеры реализации разных фильтров для postfix можно посмотреть здесь.

7. Блокировка вложений и фильтрация спама средствами Amavis, Policid.

Для блокирования вложений удобно так же использовать Amavis, поскольку внутри уже есть готовые шаблоны масок в файле 20-debian_defaults и другие полезные опции по фильтрации содержимого.

D_PASS - почта проходит к получателям, даже если был обнаружен вирус или спам.
D_DISCARD - почта не проходит к получателям, отправитель не получает уведомление.
D_REJECT - почта не проходит к получателям, отправитель должен получить reject (SMTP permanent reject response). Не рекомендуется использовать с postfix.

Лично у меня в конфиге, прописан примерно следующий код:

После внесения изменений перезапустим amavis.

Полезно будет добавить так же следующий кусок кода:

По мимо белых списков грейлистинга, здесь можно так же задавать белые и черные списки по HELO/EHLO отправителя, проверять SPF, создавать квоты и прочее. Логика работы "немного" не удобная, особенно когда добавляешь хост в черный список, он автоматически получает статус выключен (Disabled) что в интерфейсе отображается как Yes и нужно еще раз подсветить это адрес и выбрать No, что означает что политика включена. Дебилизм конечно, но возможно это лучше чем тыркаться в mysql.

Подробнее о механизме работы, можно почитать в следующей статье. Для отключения, редактируем файл /etc/cluebringer/cluebringer.conf. 1 - включено, 0 - выключено.
И перезапустим демон командой:

Более не актуально, т.к. с версии сервера 0.9.3 фильтрацией спама занимается iRedAPD. Пропускайте!

Но лучше не отключать и разобраться в его работе, так как вещь полезная и позволяет существенно снизить объем получаемого спама.

8. Перенос почтового хранилища на другой более ёмкий диск.

Если почтовое хранилище исчерпало себя то можно подключить еще один диск и подмониторовать туда директорию с почтой, которая хранится в /var/vmail.

После подключения диска, набираем в консоли:

Система сообщит нам что у нашего диска отсутствуют разделы. Исправляем.

Нажимаем, new -->primary-->1-->write.

После форматируем диск:

При форматировании в ext3 и ext4, для пользователя root резервируется 5% места. Чтобы убрать 5 процентное резервирование нужно дать команду:

Так же имеет место быть принудительная проверка диска после некоторого количества загрузок.

Если вам это не нужно, процедуру можно отменить командой:

Либо сделать так, чтобы проверка происходила реже, например, 1 раз в 100 загрузок:

Теперь необходимо настроить монтирование раздела в директорию /var/vmail.

Для быстрого монтирования набираем:

Для постоянного монтирования добавляем строчку в /etc/fstab.

где, UUID нужного диска можно узнать при помощи команды blkid.

9. Перенаправленные почты с одного адреса на другой, автоответчик.

Самый простой способ сделать перенаправление средствами Roundcube.

iRedMail - фильтр перенаправления почты

Если по каким то причинам Roundcube в вашей сети не доступен, то можно сделать перенаправление средствами mysql.

iRedMail-phpmyadmin - перенаправление почты

Для автоответчика в Roundcube уже есть настроенный фильтр Vocation. Для создания автоответчика средствами postfix, читаем эту статью.

10. Ошибки возникающие в процессе работы почтового сервера iRedMail и их устранение.

Сюда буду выкладывать ошибки с которыми приходится сталкиваться во время работы:

Ошибка доставки, в ответ приходит следующая месага:

Такая ошибка возникает в следующих случаях:

  • Такого адреса не существует или допущена опечатка.
  • Спам фильтры не принимают письма с вашего адреса.

Если ни одно из этих условий неверно, перешлите ошибку администратору почтового сервера на котором размещен адрес получателя или владельцу адреса. Или такой вариант:

В моем случае ситуация возникла, после обновления iRedMail сервера до версии 0.91, где в конфиге компонента iRedAPD, который в свою очередь обновился до версии 1.6.0 был активирован плагин reject_null_sender запрещающий пустое поле отправителя. Плагин по мнению авторов сборки iRedMail, рекомендуемый к использованию и служит дополнительным средством борьбы со спамом, хотя строго говоря нарушает существующие правила RFC по работе smtp-протокола, а именно RFC 2505, где указано что "Недопустим отказ от приема почты с адресом "MAIL From: <>". Поэтому в данном случае мы либо соблюдаем RFC и не используем данный плагин в своей работе, или доверяем опыту сборщиков iRedMail, включаем плагин, то тогда в случае возникновения подобной блокировки придется связываться с админом почтового сервера и попросить внести наш сервер в белый список.

Проблема с запуском clamd - ClamAV-clamd av-scanner FAILED: В логах следующая запись:

Создаем отсутствующий sock файл и перезапускаем clamav:

Если ругается что файлы баз не обнаружены, то запускаем:

Убедимся что amavis так же запущен:

Ошибка сокета - /tmp/socket:

Ошибка сокета может банально возникать из-за нехватки системных ресурсов. В логах можно получить следующие ошибки:

И смотрим сколько памяти выделено для всего сервера, а сколько отжирают другие процессы. В моем случае было мало оперативки 512 мб, выделил серверу 2048, после объем вырос до 900 метров. Очевидно, что при таком объеме сервер задыхался.

Нехватка свободного места на диске "No space left on device"

В логах видим следующее:

Дословно, "не могу записать файл очереди. Нет свободного места на устройстве." Соответственно, почта перестает ходить, apache перестает принимать запросы на доступ через web, короче ситуация крайне неприятная. В моем случае вероятно, место закончилось из-за большого количества ранее загруженных deb-пакетов, которые хранятся в /var/cache/apt/archives

Посмотреть сколько занимают места на диске эти пакеты:

Почистить можно командой:

Посмотреть свободное место на дисках/устройствах в мб и гб:

При случае основной диск можно расширить при помощи Gparted, загрузившись с Live-образа.

- Неправильная информация о свободном месте почтового ящика ограниченного квотой.

roundcube-quota

Во всех ящиках на почтовом сервере:

11. Обновление сервера iRedMail

В данном разделе будут выкладываться ссылки на актуальные статьи по обновлению почтовой системы iRedMail и ее компонентов.


Установка IRedMail на linux (CentOS, Debian, Fedora, Ubuntu)

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

Установка IRedMail на linux (CentOS, Debian, Fedora, Ubuntu) не составит особых усилий, я вам это докажу и покажу на готовом примере.

iRedMail состоит из:

Независимо от того, ваш сервер является сервером для тестирования или рабочий сервер, рекомендуется установить полное доменное имя (FQDN) имя хоста:

Для RHEL/CentOS/Scientific Linux 6, hostname можно изменить:

Для RHEL/CentOS/Scientific Linux 7, hostname можно изменить:

Для Debian/Ubuntu можно отредактировать:

iRedMail не работает с SELinux, поэтому, пожалуйста, отключите его.

Установка в Debian или Ubuntu:

Установка в Fedora, CentOS, RHEL:

Запустим NTP демон и после чего скачаем tar пакет с iRedMail, выполним make с установочным скриптом и запустить его, для этого выполним ряд команд:

Приведу подробную инструкцию по установке в скриншотах.

установка iredmail 0.9.0

установка iredmail (выбор папки хранения писем)

установка iredmail (выбор папки хранения писем)

установка iredmail (выбор веб-сервера)

установка iredmail (выбор веб-сервера)

установка iredmail (выбор авторизации)

установка iredmail (выбор авторизации)

Мне нужно было сделать авторизацию именно с использованием MYSQL, по этому, я выбрал данный пункт.

установка iredmail (установка пароля в mysql для root)

установка iredmail (установка пароля в mysql для root)

Прописываем свой пароль для пользователя root и нажимаем NEXT. Я для тестирования введу пароль root.

установка iredmail (ввод домена для отправки почты)

установка iredmail (ввод домена для отправки почты)

Ввожу для теста произвольный домен, например:

установка iredmail (прописываем пароль для админа)

установка iredmail (прописываем пароль для админа)

На следующем шаге нужно выбрать компоненты для установки:

установка iredmail (выбор компонентов для установки)

установка iredmail (выбор компонентов для установки)

В процессе установке отвечаем на несколько вопросов и ждем завершения установки.

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

Можно посмотреть какие соединения открыты в данный момент:

Установка IRedMail на linux (CentOS, Debian, Fedora, Ubuntu) завершена. Рассказал не много, но программа реально очень простая в установке и настройке.

Наша задача получить полноценный почтовый сервер с сервисами SMTP(S), IMAP(S), POP3(S), с обработкой почты на антиспам и антивирус. Также будет настроен web-доступ к почтовой системе (почта/контакты/календарь) для почтовых пользователей и администратора системы. В качестве системы будет выбран пакет iRedMail и будет развернута на Linux Debian.

Что из себя представляет сборка iRedMail и какие пакеты отвечают за какой функционал хорошо видно на этом рисунке:


Содержание:

Подготовка системы

Установим систему Debian и обновим систему и пакеты:


и перезапустим сеть с новыми настройками:

Настроим имя хоста:


Перегрузим сервер для принятия настроек локализации.

Сервер готов, скачиваем актуальную версию пакета iRedMail.

Установка iRedMail

Распакуем архив и запустим скрипт установки:


Указываем место хранения почты на диске. Оставляем по умолчанию /var/vmail.


В качестве web-сервера предлагается Nginx, соглашаемся.


В качестве хранилища данных и конфигураций предлагается 3 варианта:

  • OpenLDAP – протокол для соединения с LDAP сервером по 389 порту, скажем так с Active Directory;
  • MariaDB – это когда то MySQL;
  • PostgreSQL – еще один и, на мой взгляд, один из лучших СУБД.

Для небольшой системы, до 1000 почтовых ящиков, подойдет MariaDB, что и выбираем.


Вводим пароль для Администратора MySQL (MariaDB).


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


Далее пароль Postmaster для домена.


Здесь предлагается выбрать функционал системы. Я выбрал все, функционал каждого описан (на английском).


Здесь предлагают согласиться с выбранной конфигурацией, отвечаем Yes.


Далее идет установка необходимых пакетов.

После отработки скрипта будут внесены изменения в файрвол. Соглашаемся – Yes.


По сути наш сервер уже готов и можно обратиться к нему по протоколам SMTP/IMAP/POP или же через web.



Расширяем функционал iRedAdmin

SMTPS

Как мы видим в стандартной версии SMTP with SSL был убран, считается SMTP with SSL legacy (устаревший). Попробуем его включить, так как некоторые почтовые клиенты могут не поддерживают отправку SMTP через STARTTLS, порт 587.

В /etc/postfix/master.cf добавим:

Перезапустим службу Postfix, чтобы включить SMTPS. Убедимся, что Amavisd прослушивает порт 10026 (и 10024, 9998).

Откроем порт 465 в брандмауэре:

ROUNDCUBE

Для красоты и удобства можно сменить темы для web-почты

Скачиваем и копируем папку skin в папку с RoundCube (у меня находится по /opt/www/roundcubemail-1.3.8/skins)

Установка phpMyAdmin

Некоторый ограниченный функционал можно реализовать напрямую через редактирование базы данных. Для удобства уставим phpMyAdmin:


Веб-сервера Nginx (его мы ставили в пакете iRedMail) нет, поэтому оставляем невыбранным тип сервера.


Соглашаемся настроить базы. Да.


Вводим пароль для phpMyAdmin и подтверждаем пароль.

Создаем ссылку на сервер:


Однако залогиневшись видим, что у пользователя phpmyadmin неполные права на базы, а под пользователем root невозможно залогиниться.

Создадим пользователя для phpmyadmin с полными правами:

Проверим, создался ли наш пользователь:

Дадим нашему пользователю полные права:

и применим изменения:


Теперь получили полные права.

POSTFIXADMIN

Основой нашей почтовой системы является POSTFIX. PostfixAdmin – это веб интерфейс настройки POSTFIX. Установим и настроим и его для нашей системы.



Задаем пароль для PostfixAdmin.

Создадим ссылку на веб доступ для PostfixAdmin:

Если все проверки пройдены, будет предложено сгенерировать пароль:


После генерации пароля получим setup_password и эту строчку добавим в config.inc.php.


Создадим Администратора PostfixAdmin: вводим ранее созданный Setup Password, логин-email Администратора и пароль.


Теперь можно заходить на PostfixAdmin.


Как уже говорилось, есть определенный функционал, который заблокирован в бесплатной версии iRedMail, скажем создание Псевдонимов (Alias). В PostfixAdmin данный функционал будет доступен.

Настройки системы iRedMail

Включение и отключение модулей почты

iRedMail обладает достаточно широким функционалом, но может потребоваться отключить некоторые функции или модули. У iRedMail есть модуль iRedAPD, написан на Python, который управляет основными возможностями почтового сервера. Файл конфигурации iRedAPD settings.py находится /opt/iredapd.


Удаляем ненужные модули и перезапускаем службу:

Чтобы отключить Антивирус и Антиспам, не знаю по каким причинам, но такая возможность есть, необходимо отредактировать файл настроек /etc/amavisd/amavisd.conf.

SpamAssassin и ClamaV завязаны на модуль Amavisd. Amavisd — это скрипт, который взаимодействует с транспортным агентом почты (MTA) и сканерами антивирусов и антиспам.

И перезапускаем Amavisd:

Для изменения значения максимального размера письма необходимо отредактировать значение message_size_limit в /etc/postfix/main.cf

По умолчанию message_size_limit = 15728640 (15Мб), можно изменить на нужное значение в байтах и перезапустить Postfix:

Иногда есть требования по сбору и мониторингу всей входящей и/или исходящей почты через почтовый сервер. Данный функционал можно реализовать с помощью штатной возможности Postfix.

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

Настройка автоответчика

Настраивается автоответ через web-интерфейс почтового ящика:



Еще для администратора почтовой системы Postfix

Просмотр настроек Postfix:

Просмотр очереди Postfix:

Для удаления из очереди Postfix писем от пользователя user можно воспользоваться скриптом:

Немедленная доставка писем из очереди Postfix:

или конкретного письма:

Безопасность

Закрываем доступ из Интернета к phpMyAdmin

В настройки Nginx (/etc/nginx/sites-available/*-default-ssl.conf) добавим:

Проверим конфигурацию на ошибки:

и перегрузим Nginx:

Закрываем доступ из Интернета к PostfixAdmin

Аналогично закроем доступ для postfixadmin. В /etc/nginx/sites-available/*-default-ssl.conf добавим:

Проверим и перегрузим Nginx.

Обновление iRedMail

Как и при установке, скачиваем пакет iRedAdmin:

Распаковываем архив и переходим в каталог:

Запускаем скрипт обновления:

Резервное копирование почты (Backup)

По умолчанию, при установке iRedMail в планировщик Cron добавляются задания по созданию резервных копий баз данных MySQL, SOGo, ldap (зависит от выбора во время установки). В нашем случае это базы MySQL и SOGo.

В планировщике заданий (Cron) по умолчанию существуют 2 задания на резервное копирование баз:

Архивы помещаются в каталог /var/vmail/backup.

Перенесем место резервных копий на наш диск /mnt/backup и создадим папку vmail и внутри 2 папки db и mail:

Отредактируем файл /var/vmail/backup/backup_mysql.sh и /var/vmail/backup/backup_sogo.sh заменив значение пути:

Запустим создание архивов вручную и проверим корректность выполнения:

Копируем почту. По умолчанию, каталог для хранения переписки — /var/vmail/vmail1. Чтобы создать копию, достаточно скопировать его содержимое.

Создадим архив наших писем в /mnt/backup/vmail/mail с датой:

Напишем простой скрипт для Bash /var/vmail/backup/backup_mail.sh:

Скрипт выполнит следующее:

Скрипт поместим в планировщик:

выберем редактор nano и добавим строчи:

Сохраняем изменения и выходим.

Планировщик настроен на 4:30 по вторникам и пятницам. Опять-таки политику резервного копирования нужно определять исходя из потребностей и требований компании.

Проверим задания в Cron:

Восстановление из резервных копий

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

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

Конфигурации хранятся в следующих базах MySQL:

В случае переноса почтовой системы на новый сервер, базу mysql восстанавливать не нужно.

Восстановление баз данных

Базы можно восстановить через phpMyAdmin или через консоль:

Разархивируем нужную базу на нужную дату:

Аналогично восстанавливаются все необходимые базы.

Настройки DNS

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

Внесем изменения в зону DNS:

где:
3600 – TTL время жизни записи;
10 – приоритет.

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

Этих настроек достаточно, чтобы наш почтовый сервер начал функционировать для сети Интернет. Однако в борьбе со спамом и проверкой валидности отправителя, нужно сделать еще несколько записей в DNS: DKIM, DMARC и SPF.

DKIM (Domain Keys Identified Mail) — это цифровая подпись, которая подтверждает подлинность отправителя и гарантирует целостность доставленного письма.

Наш iRedMail при установке уже сгенерировал c помощью Amavisd ключ DKIM. Для просмотра дадим команду:

Скопируем результат и внесем запись TXT в наш DNS сервер:

SPF (Sender Policy Framework) — это подпись, содержащая информацию о серверах, которые могут отправлять почту с вашего домена. Наличие SPF снижает вероятность попадания письма в спам.

Добавим в DNS значение SPF:

— «мягкое» отклонение (письмо будет принято, но будет помечено как спам);
mx — включает в себя все адреса серверов, указанные в MX записях домена;
a — IP-адрес в A-записи;
all — все остальные сервера, не перечисленные в SPF-записи.

Autodiscover для почтовых клиентов

В Microsoft Exchange есть прекрасная служба Autodiscover для автоматического обнаружения серверов почтовой службы, которая работает через веб сервер и по сути передает клиенту, Outlook, xml файл с описанием настроек. Попробуем сделать что-то похожее с помощью DNS сервера, тем более, что данный метод описан стандартом RFC и заключается в создании SRV-записей в DNS.

SRV запись имеет данную структуру:

SSL Сертификат для Web-сервера

Заключение

Конечно данная сборка не претендует на решение для больших корпораций и компаний. При выборе почтовой системы нужно учитывать много факторов. Здесь не представлены решения по отказоустойчивости и балансировке нагрузки. Да и не думаю, что для компаний, которые ставят задачи по нагрузке, отказоустойчивости, непрерывности услуги подойдут подобные решения на открытых кодах, т.е. по сути без поддержки со стороны вендора.

При этом решение бесплатное, в плане лицензионных затрат, не особо требовательно к оборудованию и ресурсам системы.

Читайте также: