Postfix чаще всего используется в качестве почтового сервера сайтов. Он готов к работе сразу после установки, но по умолчанию в нем нет системы авторизации. Это значит, что любой человек может использовать этот почтовый сервер для отправки и приема писем. Чтобы исключить такую ситуацию, используется связка Postfix – Dovecot. Dovecot — плагин, который позволяет настроить авторизацию.
Подготовка к установке
Вам понадобится:
- Сервер с готовой конфигурацией. Например, можно заказать его на 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 для соединения с базой данных:
После завершения установки в терминале отобразится графический интерфейс. Настройка:
- Выберите Internet Site.
- Укажите 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
477 ₽/мес
657 ₽/мес
Заключение
Для управления почтовыми ящиками можно использовать другой графический интерфейс. Например, Roundcube-почта — клиент для получения и отправки электронных писем. Работает на связке Apache и MySQL, что отлично вписывается в нашу конфигурацию.
Конфигурацию почтового сервера тоже можно менять. Например, добавить Postfix DKIM — инструмент, который добавляет в заголовки писем электронную подпись. Кроме DKIM Postfix, есть SPF и DMARC. Первый инструмент помогает внешним сервисам однозначно определять серверы, которые могут отправлять почту от домена, а второй инструмент позволяет указать другим серверам, что делать с письмами, не получившими одобрение от DKIM и SPF.
Чтобы конфигурацию было удобно переносить на другой сервер, можно также создать со всеми установленными зависимостями.
