Postfix: Почтовый сервер для нескольких доменов.

Окружение: Хостинг VPS/VDS на Ubuntu 14.04.1 LTS, Настройка почтового сервера Postfix 2.11

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

  • Установка Postfix.
    # aptitude install postfix postfix-doc postfix-mysql postfix-pcre
  • Установщик спросит о типе настраиваемого сервера, в нашем случае нужно выбрать "Интернет-сайт: Почта отправляется и принимается напрямую с использованием 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
      -o syslog_name=postfix/submission
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
      -o milter_macro_daemon_name=ORIGINATING
  • Создадим нового пользователя vmail, от имени которого будут производится операции с файлами в директории /var/vmail, в которой будут храниться письма:
    # mkdir /var/vmail
    # groupadd  -g 1001 vmail
    # useradd -d /var/vmail/ -g 1001 -u 1001 vmail
    # chown vmail:vmail /var/vmail

    В main.cf добавляем строки

    virtual_mailbox_base = /var/vmail
    virtual_minimum_uid = 1001
    virtual_uid_maps = static:1001
    virtual_gid_maps = static:1001
    virtual_transport = virtual
  • Генерация сертификата Quick Postfix SMTP SSL/TSL сертификат и включение, если необходимо, специального порта 465/SMTPS.
На этом этапе у нас получился рабочий SMTP сервер не требующий заведения пользователя в ОС.
  • 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 SASL.
    # aptitude install dovecot-core dovecot-imapd dovecot-mysql
    # service postfix restart
    # service dovecot restart
На этом этапе у нас получился рабочий SMTP сервер с поддержкой SMTP AUTH и SSL/TLS.

Как эти части работают вместе:

  1. Почтовое сообщение принимается Postfix.
  2. Это сообщение проходит через некоторые внешние фильтры, в том числе opendkim и postfix-policyd-spf-python.
  3. Затем сообщение обрабатывается Amavisd-new.
  4. ClamAV используется для проверки сообщения. Если сообщение содержит вирус, Postfix сбросит сообщение.
  5. Чистые сообщения затем будут проверены Spamassassin на принадлежность к спаму. Spamassassin затем добавит строки X-Header, позволяющие в дальнейшем Amavisd-new управлять сообщением.
PQ VPS сервера в 28+ странах.