Настройка почтового сервера на связке Postfix+Dovecot+MySQL+PostixAdmin+Roundcube на Centos 8. Часть 1

Автор: | 10 января, 2020

Очередная статья, как настроить почтовый сервер.

Задача: есть домен и свободная виртуалка, почему бы не настроить почтовый сервер. Настраивать будем на домене samara-it.ru и в качестве ОС будем использовать CentOS 8. Знаю, что есть Zimbra\iRedMail, которые «ставятся и работают», но хочется пройти процесс установки с самого начала, чтоб «прочувствовать».

Что должно получится: Почтовый сервер, с удобной web-почтой (Roundcube), и управлением через PostfixAdmin.

Текущая схема сети.

В качестве router-а используется CentOS 8. На нем настроен dnsmasq, iptables, настройка роутера не описывается, только приведу изменения, необходимые для работы.

На сервере mail (буду так указывать, для простоты) используется CentOS 8 и установлены: wget, mc, htop, atop, nano и т.д. Не думаю, что для вас это будет проблемой.

1. Настраиваем\проверяем настройки DNS у хостера. Обязательно должна быть запись MX, без этого работать не будет! Т.к. почта должна ходить на домен samara-it.ru, значит должна быть такая MX запись:

Так же, мы должны добавить PTR запись, для этого обращаемся к хостеру и просим его добавить эту запись. У меня получилось так:

2. Настраиваем имя хоста

Проверяем на mail, если не так, меняем

Если не так, меняем:

ВАЖНО: 192.168.33.91 mail.samara-it.ru <- эта запись должна быть первой!!!

Проверяем:

Теперь вносим изменения на router

3. Установка и настройка Nginx

ВАЖНО: Все дальнейшие настройки и установку делаем на mail. 

Подключим репозиторий nginx, стабильной версии. Для этого создадим файл

и добавим в него следующие

Устанавливаем:

Настроем основной конфиг nginx.

Сохраним оригинальный конфиг.

Приведем его /etc/nginx/nginx.conf  к такому виду:

Создадим конфиг с ssl. Сертификаты ssl я использую от Let’s Encrypt, получение сертификата расписывать не буду. У меня wildcard сертификат. Создадим каталог и файл с настройками.

и добавим в файл это:

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

4. Установка и настройка PHP-FPM для Nginx.

Устанавливать будет PHP 7.4, для этого добавим репозиторий Remi и включим его

Ставим php-fpm

Проверяем

Настраиваем

Проверяем и если все ОК, запускаем и добавляем в автозагрузку

5. Установка и настройка MySQL

Установка MySQL 8

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

6. Установка PostfixAdmin

Создаем базу, она будет нужна для работы Postfix, Dovecot, PostfixAdmin

Сделаем копию файла настроек PostfixAdmin  и внесем изменения:

ВНИМАНИЕ! в виду того, что мы используем шифрование «dovecot:CRAM-MD5», нам необходимо установить сам dovecot, настраивать его мы будем позже.

Настраиваем виртуальный хост на Nginx, создаем файл

И добавляем в него содержимое:

Обратите внимание на строки: allow XX.XX.XX.XX; — я разрешил доступ к серверу только с определенного ip. Если это не надо, уберите строки allow XX.XX.XX.XX; и deny all; Так же, можно настроить доступ через авторизацию.

Далее, необходимо создать директорию templates_c

Добавляем запись А в DNS: postfixadmin.samara-it.ru -> 37.xx.xx.xx.

Открываем доступ по порту 80 и 443 через iptables, на сервере mail.

Делаем проброс портов на router

запускаем nginx

Открываем браузер и заходим на сайт: https://postfixadmin.samara-it.ru/setup.php

 

Вводим пароль в строке: Setup password, получаем хеш пароля, добавляем его в конфиг:

В строке Administrator – вводим учетную запись администратора admin@samara-it.ru

Вводим пароль от админсткой учетки.

После чего переименовываем установочный файл

Заходим на сайт: https://postfixadmin.samara-it.ru и добавляем новый домен:

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

Продолжаем в Часть 2.