Почтовый сервер Postfix для одного домена, без использования базы данных

Окружение: Хостинг VPS/VDS на Ubuntu 12.04.3 LTS, Postfix 2.9.6

Задача. Настроить почтовый сервер для одного домена с виртуальными пользователями, используя связку Postfix, Настройка сервера Dovecot и Postfix, плоские файлы вместо баз данных для управления пользователями почтового сервера.

Настройка Раздел DNS: Что такое DNS для правильной работы почтового сервера. Должны быть настроены записи: A, PTR, МХ, SPF.

  • Установка Postfix.
    # aptitude install postfix
  • Установщик спросит о типе настраиваемого сервера, в нашем случае нужно выбрать "Интернет-сайт: Почта отправляется и принимается напрямую с использованием SMTP." На следующем шаге нужно ввести системное почтовое имя, обычно оно соответствует FQDN- имени вашего сервера (см. DNS: PTR обратный просмотр DNS).
  • newaliases - перенаправление сообщений для root в другой почтовый ящик
На этом этапе у нас получился рабочий SMTP — простой протокол передачи почты сервер. По большому счету в такой настройки только два неудобства: первое каждый почтовый пользователь должен быть создан в операционной системе, например при помощи утилиты Быстрое cоздание пользователей в Linux (useradd, usermod, chsh) и пересылка настраивается при помощи newaliases; второе email можно прочитать/получить/отправить только через консоль при помощи, например утилиты Пример использования mailx.
  • Postfix и Submission (RFC 4409, RFC 2476). Включить дополнительно к SMTP (порт 25) Submission (порт 587), который предназначен согласно RFC 2476 для приёма новых писем от клиентов (например Mozilla Thunderbird почта), чтобы не перегружать данной работой основной, 25-й порт, служащий для пересылки сообщений между серверами.
    # nano /etc/postfix/master.cf
    submission inet n       -       -       -       -       smtpd
  • Настройка виртуального домена(-ов) и виртуальных пользователей (т.е. без заведения в ОС).
    ## GID UID = user postfix
    virtual_uid_maps = static:107
    virtual_gid_maps = static:115
    virtual_minimum_uid = 107
    virtual_transport = virtual
    
    virtual_mailbox_base = /home/vmail
    virtual_mailbox_domains = example.com
    virtual_mailbox_maps = hash:/etc/postfix/virtual_maildir_recipients.cf
    virtual_alias_maps = hash:/etc/postfix/virtual_maildir_aliases.cf

    Файл virtual_maildir_recipients.cf:

    sales@example.com   example.com/sales/
    chief@example.com   example.com/chief/

    Файл virtual_maildir_aliases.cf (через запятую можно указать несколько адресов для пересылки):

    abuse@example.com           chief@example.com
    postmaster@example.com      chief@example.com
    webmaster@example.com       chief@example.com
    billing@example.com         sales@example.com
    sales@example.com           sales@example.com,chief@example.com
На этом этапе у нас получился рабочий SMTP сервер не требующий заведения пользователя в ОС. Достаточно указать его в файле virtual_maildir_recipients.cf и переиндексировать утилитой postmap.

SMTP аутентификация (SMTP AUTH) позволяет авторизованным почтовым клиентам с динамическими IP адресами пересылать сообщения через ваш сервер, не превращая его в открытый ретранслятор.

Чтобы узнать какие библиотеки SASL поддерживает Postfix используйте ключ -а

# postconf -a
cyrus
dovecot
  1. Включим поддержку SMTP AUTH в Postfix, для этого в main.cf добавим строки
    # SMTP AUTH Dovecot
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    # Block old clients
    broken_sasl_auth_clients = no
  2. Настроим SMTP AUTH в Postfix при помощи Настройка сервера Dovecot и Postfix SASL.
  3. Telnet и тестирование SMTP AUTH. Альтернативой telnet для тестирования SMTP служит утилита swaks:
    aptitude install swaks
На этом этапе у нас получился рабочий SMTP сервер с поддержкой SMTP AUTH. SSL/TLS не настроено, поэтому имена пользователей и пароли передаются в не зашифрованном виде, что допустимо только в качестве тестовых целей. В настоящее время настройка SSL/TLS обязательна.

📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!