Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Установка и настройка Postfix и Dovecot

6430
13 минут чтения
Средний рейтинг статьи: 2.6

Postfix чаще всего используется в качестве почтового сервера сайтов. Он готов к работе сразу после установки, но по умолчанию в нем нет системы авторизации. Это значит, что любой человек может использовать этот почтовый сервер для отправки и приема писем. Чтобы исключить такую ситуацию, используется связка Postfix – Dovecot. Dovecot — плагин, который позволяет настроить авторизацию.

postfix

Подготовка к установке

Вам понадобится:

  • Сервер с готовой конфигурацией. Например, можно заказать его на timeweb.cloud.
  • Учетная запись с правами sudo.

В этом руководстве мы построим Mail Server на основе Ubuntu 20.04. Для хранения данных подключим базу данных MySQL.

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

Запустите терминал Ubuntu и создайте нового пользователя:

    

Выдайте новому пользователю права sudo:

    

Создаем учетную запись, от которой будут выполняться задачи чтения и записи почтовых ящиков в каталоге на сервере. Мы создадим пользователя vmail с одноимённой группой и UID и GID 1024:

    

Мы будем хранить всю почту пользователей в каталоге /home/mail.

Настройка MySQL

MySQL нужен для решения двух задач. Первая — хранение данных пользователей, вторая — хранение конфигурации Roundcube.

Установите MySQL, PHP и Apache:

    

Запустите и добавьте в автозагрузку базу данных и веб-сервер:

    

Задайте пароль для учетной записи root, а также создайте БД для Postfix и Roundcube:

    

Настройка PostfixAdmin

PostfixAdmin — интерфейс администрирования, который нужен для управления почтовым сервером.

Загрузите PostfixAdmin и перенесите его исполняемые файлы в папку usr:

    

Измените владельца каталога на www-data, чтобы PostfixAdmin мог с ней работать:

    

Добавьте символическую ссылку из каталога веб-сервера:

    

Откройте файл конфигурации PostfixAdmin:

    

Отредактируйте его содержимое:

    

Откройте браузер и перейдите по адресу http://<адрес сервера>/postfixadmin/setup.php. Здесь вы сможете задать пароль. Введите его дважды и нажмите «Generate password hash». После обновления страницы будет отображен хэш пароля. Скопируйте его и пропишите в конфигурационном файле config.local.php, который мы рассматривали выше, в строке $CONF['setup_password'].

Теперь перезагрузите страницу, на которой получили хэш, и появится возможность создать администратора.

После вы сможете войти в интерфейс Postfixadmin по ссылке http://<адрес сервера>/postfixadmin с заданным логином и паролем.

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

Облачные серверы

Масштабируемые вычислительные ресурсы
по всему миру с почасовой оплатой.

Установка и настройка Postfix

Установите Postfix Ubuntu и postfix-mysql для соединения с базой данных:

    

После завершения установки в терминале отобразится графический интерфейс. Настройка:

  1. Выберите Internet Site.
  2. Укажите FQDN сервера, на котором запущен почтовый сервер Linux.

Если впоследствии появится необходимость изменить эти параметры, сделать это можно с помощью утилиты dpkg-reconfigure:

    

Переходите к настройке Postfix. Откройте главный файл конфигурации:

    

Закомментируйте несколько строк:

    

Добавьте следующие строки:

    

Затем откройте для редактирования файл master.cf:

    

Добавьте в него строки:

    

Создайте конфигурационные файлы, которые определят порядок обращений Postfix к БД MySQL.

Создайте папку MySQL:

    

Откройте файл relay_domains.cf:

    

Пропишите в нем:

    

Откройте файл virtual_alias_domain_maps.cf:

    

Пропишите в нем: 

    

Откройте файл virtual_alias_maps.cf:

    

Пропишите в нем:

    

Откройте файл virtual_mailbox_domains.cf:

    

Пропишите в нем:

    

Откройте файл virtual_mailbox_maps.cf:

    

Пропишите в нем:

    

Напоследок сгенерируйте самоподписной сертификат.

    

При генерировании сертификата появится несколько вопросов, ответы на них могут быть любыми.

После завершения настройки перезапустите Postfix:

    

Установка Dovecot

Dovecot — сервер, который мы будем использовать для авторизации пользователей по протоколу SMTP. 

Установите Dovecot вместе с плагином для работы с MySQL:

    

Затем настройте способ хранения писем. Для этого откройте файл конфигурации с помощью встроенного редактора nano

    

Добавьте в него строку:

    

Это строка указывает, что сообщения необходимо хранить в папке MailDir.

Затем настройте слушателя для аутентификации. Откройте другой файл конфигурации:

    

Добавьте в него следующие строки:

    

Здесь идут два слушателя: /var/spool/postfix/private/auth нужен, чтобы Постфикс мог проводить авторизацию через Dovecot, а auth-userdb — это сокет авторизации через dovecot-lda.

Затем добавьте в этот же файл конфигурации:

    

 Теперь переходите к настройке самой аутентификации. Откройте файл 10-auth.conf:

    

Пропишите в нем:

    

Затем откройте файл 10-ssl.conf:

    

Настройте в нем шифрование:

    

Настройте автоматическое создание каталогов в файле 15-lda.conf. Откройте его:

    

И укажите:

    

Настройте подключение к БД. Откройте файл конфигурации:

    

Добавьте в него:

    

Здесь нужно указать файлы, в которых описываются правила получения пользователей и паролей из базы данных. Их тоже нужно добавить самостоятельно. Откройте файл:

    

В конце добавьте:

    

Это полностью сконфигурированный запрос, который позволит получать данные из БД. Осталось задать интерфейс, который будет слушать Dovecot. Откройте файл:

    

Пропишите в нем:

    

Чтобы все заработало, разрешите запуск Dovecot:

    

И перезагрузите процесс:

    

Настройка почтового сервера практически завершена.

Настройка Postfix для работы с Dovecot

После настройки Dovecot измените конфигурацию Postfix. Откройте файл main.cf:

    

Внесите изменения:

    

Закомментируйте несколько параметров, которые теперь не нужны:

    

Вместо закомментированных параметров добавьте:

    

Измените файл master.cf. Откройте его:

    

Раскомментируйте строку:

    

После изменения конфигурации перезагрузите Postfix и Dovecot:

    

Теперь у вас есть свой почтовый сервер.

Тестирование почты и настройка брандмауэра

Сначала необходимо убедиться в том, что почта доходит до нового ящика. Сделать это можно с помощью тестового письма:

    

Сообщение должно появиться в папке /home/vmail/site.ru/admin/new/. Если письма нет, проверьте лог Postfix:

    

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

Начните с POP3 и POP3S:

    

Затем откройте IMAP и IMAPS:

    

И напоследок — доступ к Ubuntu SMTP Server:

    

Разверните свой почтовый сервер
в облаке Timeweb Cloud

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Заключение

Для управления почтовыми ящиками можно использовать другой графический интерфейс. Например, Roundcube-почта — клиент для получения и отправки электронных писем. Работает на связке Apache и MySQL, что отлично вписывается в нашу конфигурацию.

Конфигурацию почтового сервера тоже можно менять. Например, добавить Postfix DKIM — инструмент, который добавляет в заголовки писем электронную подпись. Кроме DKIM Postfix, есть SPF и DMARC. Первый инструмент помогает внешним сервисам однозначно определять серверы, которые могут отправлять почту от домена, а второй инструмент позволяет указать другим серверам, что делать с письмами, не получившими одобрение от DKIM и SPF.

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

6430
13 минут чтения
Средний рейтинг статьи: 2.6

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

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server