Полноценный почтовый сервер с iRedMail на Ubuntu

Обновлено Обновлено: Опубликовано Опубликовано:

Тематические термины: iRedMail, Ubuntu, Postfix, Dovecot, RoundcubePOP3IMAPPTR, SPF, DKIM

После установки iRedMail мы получим почтовый сервер со следующими возможностями:

  • Управление почтовыми ящиками с помощью веб-интерфейса.
  • Поддержка виртуальных доменов и почтовых ящиков.
  • Подключение к ящикам по POP3 и IMAP.
  • Хранение данных в СУБД.
  • Возможность работать с почтой удаленно с помощью браузера.
  • Шифрование при передаче сообщений.
  • Защита от СПАМа и вирусов.
  • Защита сообщений от попадания в СПАМ.

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

Задаем правильное имя сервера:

vi /etc/hostname

mail.dmosk.ru

Устанавливаем bzip2, так как он нужен для распаковки архива iRedMail:

apt-get install bzip2

Останавливаем веб-сервер apache (в данном примере будет использоваться nginx):

systemctl stop apache2

systemctl disable apache2

* если не остановить apache и попытаться установить nginx, мы получим ошибку Errors were encountered while processing: nginx-full.

Установка iRedMail

Заходим на страницу iredmail.org/download.html и копируем ссылку на скачивание последней версии почтового сервера:

Ссылка для скачивания iRedMail

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

wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.6.tar.bz2

И распаковываем скачанный архив:

tar xjf iRedMail-*.tar.bz2

Переходим в каталог с распакованным установщиком:

cd iRedMail-*

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

bash iRedMail.sh

Запустится мастер настроек. В первом окне с приветствием ответьте Yes.

В окне Default mail storage path оставляем /var/vmail и задаем свой путь для хранения сообщений:

Вводим путь хранения сообщений

В следующем окне Preferred web server желательно оставить Nginx:

Выбираем веб-сервер

В окне Choose preferred backend used to store mail accounts выбираем Mariadb:

Выбираем СУБД для хранения информации о почтовых ящиках

И задаем пароль для пользователя СУБД:

Вводим пароль для пользователя sql

На следующем шаге вводим наш первый почтовый домен:

Вводим пароль для пользователя sql

Теперь вводим пароль для управления почтовыми ящиками:

Пароль для управления почтовыми ящиками

В окне Optional components выбираем все доступные компоненты:

Выбираем все доступные компоненты iRedMail

В самом конце вводим Y, чтобы подтвердить введенные настройки.

Начнется установка почтового сервера. В зависимости от производительности, процесс может занять от 10 до 20 минут. В конце система предложит активировать брандмауэр — соглашаемся вводом Y.

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

shutdown -r now

Настройка iRedMail

Создание пользователя

Открываем браузер и в адресной строке вводим https://IP-адрес_сервера/iredadmin/

Откроется страница входа в панель управления. Вводим логин postmaster@dmosk.ru и пароль (пароль и домен dmosk.ru — данные, которые мы вводили при установке iRedMail).

Создадим первого пользователя. Для этого переходим по Add - User:

Создание нового пользователя

Заполняем поля и создаем пользователя:

Заполняем поля для нового пользователя

Проверяем работу сервера

Открываем браузер и в адресной строке вводим https://IP-адрес_сервера/mail/

Откроется панель для работы с почтой — вводим логин и пароль от созданного пользователя (логин должен быть с доменом, в нашем примере, test1@dmosk.ru)

Нажимаем Написать сообщение и отправляем тестовое сообщение на один из своих адресов:

Написать сообщение в roundcube

Защищаем сообщения от попадания в СПАМ

Чтобы другие почтовые системы не принимали наши письма за СПАМ, выполняем следующие рекомендации:

А-запись в DNS

Для FQDN-имени почтового сервера должна быть создана А-запись в DNS. Пример записи:

mail.dmosk.ru   A   90.156.242.197

Создаем PTR-запись для внешнего IP-адреса

Она должна вести на имя сервера (в данном примере, mail.dmosk.ru). Чтобы создать такую запись, нужно написать обращение Интернет-провайдеру или хостеру виртуальной машины. Пример записи:

171.23.222.83.in-addr.arpa      name = mail.dmosk.ru

Добавляем SPF-запись для домена

Эта запись создается в DNS для домена, от которого идет отправка сообщений. Пример:

dmosk.ru     text = "v=spf1 +mx -all"

Прописываем DKIM в DNS

Для начала, смотрим ключ, который был сформирован во время установки iRedMail:

amavisd-new showkeys

Пример ответа:

dkim._domainkey.dmosk.ru.     3600 TXT (
  "v=DKIM1; p="
  "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHNu0ZlYkq8pKsp131jnoZ+Ief"
  "zcSP1WxGzGQXssg3yiRGBlqsRGBnnKgitrsPYTZbzqqL+/rW0ptGNhAqfTWHvMia"
  "+f4RSMLJPMREFtakVEZvTIK5iZvxuCZpVhvM6ldadTLAxbcupX38yMfJV73EwCHK"
  "d2mdqfW+emSW/paUwQIDAQAB")

Копируем DKIM и создаем в DNS запись TXT. Пример:

dmosk.ru     text = "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHNu0ZlYkq8pKsp131jnoZ+IefzcSP1WxGzGQXssg3yiRGBlqsRGBnnKgitrsPYTZbzqqL+/rW0ptGNhAqfTWHvMia+f4RSMLJPMREFtakVEZvTIK5iZvxuCZpVhvM6ldadTLAxbcupX38yMfJV73EwCHKd2mdqfW+emSW/paUwQIDAQAB"

Создать другую подпись DKIM

Генерируем новый ключ:

amavisd-new genrsa /var/lib/dkim/dmosk2.ru.pem 1024

* где dmosk2.ru — новый домен, для которого мы сгенерируем подпись dkim.
* некоторые системы не работают с ключами более чем 1024 бит.

Задаем права на созданный файл:

chown amavis:amavis /var/lib/dkim/dmosk2.ru.pem

chmod 0400 /var/lib/dkim/dmosk2.ru.pem

Открываем конфигурационный файл amavisd

vi /etc/amavisd.conf

Находим строчку:

dkim_key('dmosk.ru', "dkim", "/var/lib/dkim/dmosk.ru.pem");

И добавляем радом с ней новую. Получится так:

dkim_key('dmosk.ru', "dkim", "/var/lib/dkim/dmosk.ru.pem");
dkim_key('dmosk2.ru', "dkim", "/var/lib/dkim/dmosk2.ru.pem");

Теперь находим строчку:

@dkim_signature_options_bysender_maps = ( {
   ...
   "dmosk.ru" => { d => "dmosk.ru", a => 'rsa-sha256', ttl => 10*24*3600 },

И также после нее добавляем новую. Должно получиться:

@dkim_signature_options_bysender_maps = ( {
   ...
   "dmosk.ru" => { d => "dmosk.ru", a => 'rsa-sha256', ttl => 10*24*3600 },
   "dmosk2.ru" => { d => "dmosk2.ru", a => 'rsa-sha256', ttl => 10*24*3600 },

Перезапускаем amavisd:

amavisd-new restart

Ящик abuse

По аналогии с тем, как мы создавали тестовую учетную запись, необходимо создать ящик abuse@... На данный ящик могут приходить жалобы на СПАМ. Стоит время от времени просматривать его (или настроить переадресацию), и реагировать на жалобы.

Установка сертификата

Вместе с iRedMail создается самоподписный сертификат, которому по умолчанию, не доверяют другие системы. Если мы хотим, чтобы пользователи не видели предупреждений об использовании потенциально не безопасного сертификата, можно установить последний, выданный акредитованным центром сертификации. Такой сетификат можно либо купить, либо сделать запрос в Let's Encrypt.

Оставляем копию старых ключей:

cp /etc/ssl/private/iRedMail.key /etc/ssl/private/old.iRedMail.key

cp /etc/ssl/certs/iRedMail.crt /etc/ssl/certs/old.iRedMail.crt

Копируем на сервер ключи и заменяем открытый (публичный) на /etc/ssl/certs/iRedMail.crt, а закрытый (приватный) — /etc/ssl/private/iRedMail.key

Перезапускаем следующие службы:

systemctl restart iredapd

systemctl restart nginx

Отключение Graylisting

Graylisting — мощное оружие против СПАМа, но с существенным минусом — все входящие сообщения, отправленные с определенного домена в первый раз будут приходить с задержкой. На момент тестирования это создает массу неудобств.

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

chmod u+w /opt/iredapd/settings.py

После открываем его:

vi /opt/iredapd/settings.py

Находим перечисление плагинов:

plugins = ["reject_null_sender", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

И вырезаем greylisting.

Возвращаем права:

chmod u-w /opt/iredapd/settings.py

Перезагружаем iredapd:

systemctl restart iredapd

Аналоги iRedMail

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

Из платных готовых почтовых систем можно отметить:

  1. Microsoft Exchange Server (на Windows).
  2. Zimbra (на Linux).
# Серверы # Почта # UNIX # Ubuntu # Linux
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет