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

Тематические термины: iRedMailCentOSPostfixDovecotRoundcubePOP3IMAPPTRSPFDKIM

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

Задаем имя сервера:

hostnamectl set-hostname relay.dmosk.ru

Устанавливаем wget и bzip2 (нужны для скачивания и распаковки архива iRedMail):

yum install wget bzip2

Если планируется использовать веб-сервер NGINX, останавливаем apache и отключаем его автозапуск:

systemctl stop httpd

systemctl disable httpd

Установка iRedMail

На странице загрузки iRedMail смотрим ссылку на последнюю версию сборки:

Копируем ссылку на iRedMail

Скачиваем сборку:

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

* где https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.7.tar.bz2 — ссылка на скачивание версии, актуальной на момент написания инструкции.

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

tar xjf iRedMail-*.tar.bz2

Переходим в распакованную папку:

cd iRedMail-*

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

bash iRedMail.sh

В открывшемся приветствии отвечаем Yes:

Приветствие iRedMail

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

Задаем путь хранения почты

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

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

Выбираем средство хранения данных:

Выбираем базу данных

Задаем пароль администратора базы данных:

Придумываем пароль для базы данных

Вводим наш почтовый домен:

Вводим почтовый домен

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

Задаем пароль для администратора почты

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

Отмечаем все дополнения для установки

Подтверждаем введенные настройки (y) и нажимаем Enter. На все последующие вопросы тоже отвечаем y.

Ждем окончания процесса.

Отключение 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

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

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

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

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

Создаем пользователя в iRedMail

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

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

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

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

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

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

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

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

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

А-запись в DNS

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

mail.dmosk.ru   A   90.156.242.197

* где mail.dmosk.ru — имя нашего сервера.

Создаем 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 -c /etc/amavisd/amavisd.conf showkeys

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

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

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

dkim._domainkey.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 бит.
* если получим ошибку amavisd-new: command not found, вводим команду 
amavisd genrsa /var/lib/dkim/dmosk2.ru.pem 1024.

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

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

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

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

vi /etc/amavisd/amavisd.conf

* если файла нет или он окажется пустым, vi /etc/amavisd.conf.

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

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

* напомню, что dmosk.ru — домен, который мы вводили при установке iRedMail. В каждом случае он будет другим.

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

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 || amavisd restart

Если получаем ошибку Config file "/etc/amavisd.conf" does not exist, создаем следующий симлинк:

ln -s /etc/amavisd/amavisd.conf /etc/amavisd.conf

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

amavisd-new restart || amavisd restart

Посмотреть DKIM последовательность для нового домена можно командой:

amavisd showkeys

Ящик abuse

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

Управление белыми и черными списками

Переходим в каталог с утилитами iredmail:

cd /opt/iredapd/tools/

Просмотреть содержимое белого и черного списков:

python wblist_admin.py --list --whitelist

python wblist_admin.py --list --blacklist

Добавить в списки:

python wblist_admin.py --add --whitelist 111.112.113.114 master@dmosk.ru @dmosk.ru @.dmosk.ru

python wblist_admin.py --add --blacklist 111.112.113.114 master@dmosk.ru @dmosk.ru @.dmosk.ru

* в данном примере добавили соответственно IP-адрес, адрес электронной почты, домен, поддомены.

Дополнительная настройка

Лимит на объем отправляемого сообщения

Задается командой:

postconf -e "message_size_limit = 31457280"

* в данном примере выставлен лимит в 30 мб.

После перезапускаем сервис Postfix:

systemctl restart postfix

# Серверы # Почта # Linux # CentOS
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет