Почтовый сервер · 3 min read · Sep 09, 2025

Полное решение почтового сервера с виртуальными доменами и пользователями (Debian Etch, Postfix, MySQL, Dovecot, DSpam, ClamAV, Postgrey, RBL)

Полное решение почтового сервера с виртуальными доменами и пользователями (Debian Etch, Postfix, MySQL, Dovecot, DSpam, ClamAV, Postgrey, RBL)

Этот учебник является объектом авторского права (c) 2007 года Джастина Рефайса. Он основан на различных руководствах и оригинальном материале, перечисленных в конце документа. Вы можете использовать этот учебник в соответствии с лицензией Creative Commons 2.5 или любой более поздней версией.

I. Введение

Этот гид описывает, как настроить полное решение для электронной почты в Debian Linux (весь код взят из Debian Etch). Меня попросили разработать безопасное, масштабируемое, портативное решение для небольшой компании. Хотя в руководстве упоминается множество “серверов”, у компании было всего 4 физических машины, Xen использовался для виртуализации всего решения. Этот конкретный аспект системы не обсуждается в этом руководстве, хотя я постараюсь включить его в следующую редакцию.

Просто заметка о названиях серверов, используемых ниже: Если к нему не нужно получать доступ через интернет, не позволяйте этого делать. Доменные имена, заканчивающиеся на internal.example.com, являются внутренними NIC/IP адресами… к ним нельзя получить доступ напрямую из интернета, и не должно быть такой возможности. Любой сервер, который имеет только доменное имя internal.example.com, является чисто внутренним сервером и не может быть доступен напрямую из интернета. Все не внутренние серверы имеют два NIC (это могут быть два реальных NIC или виртуальные). Первый NIC имеет доступ к интернету и строго защищен файрволом. Второй NIC имеет доступ к внутренней сети и, следовательно, имеет немного меньше безопасности. Подробности о том, как настроить эти NIC, выходят за рамки этого документа, но я могу обновить его, чтобы включить их в будущем.

Общее расположение серверов:

Первичный MX:
NIC1 = Небезопасный/Интернет = mx-1.example.com
NIC2 = Безопасный/Интранет = mx-1.internal.example.com
MTA: Postfix
Фильтр серого списка: Postgrey

Вторичный MX:
NIC1 = Небезопасный/Интернет = mx-2.example.com
NIC2 = Безопасный/Интранет = mx-2.internal.example.com
MTA: Postfix
Фильтр серого списка: Postgrey

SMTP+TLS и IMAPS:
NIC1 = Небезопасный/Интернет = secure-mail.example.com
NIC2 = Безопасный/Интранет = secure-mail.internal.example.com
MTA: Postfix (+TLS/SSL)
IMAP: Dovecot (IMAPS)

Сервер доставки почты: postman.internal.example.com
MTA (lmtp): DSPAM
Антивирус: ClamAV
IMAP: Dovecot

Сервер базы данных: sql-1.internal.example.com
MySQL

Файловый сервер: files-1.internal.example.com
NFS

Временный сервер сборки: build.internal.example.com
<Различные инструменты>

Почта работает следующим образом:

Интернет-почта на ваши домены:

  1. Почта поступает на Первичный или Вторичный MX на порту 25
  2. MX запрашивает сервер MySQL, чтобы проверить, действительны ли получатель и назначение:
    a. Получатель не авторизован - Почта отклоняется (Ошибка 550)
    b. Получатель авторизован - Почта разрешается продолжить
  3. MX проверяет политику серого списка:
    a. Это первый раз, когда пробуют отправить электронную почту - Почта отклоняется (Повторная попытка)
    b. Это не первый раз, когда пробуют отправить электронную почту - Почта разрешается продолжить
  4. MX проверяет на нарушения квоты
    a. Квота пользователя заполнена - Почта возвращается
    b. У пользователя есть место - Почта доставляется
  5. MX отправляет почту на Внутренний сервер доставки (через LMTP)
  6. Внутренний сервер доставки проверяет на вирусы/СПАМ
    a. Это СПАМ - СПАМ помечается и передается LDA для доставки.
    b. Это вирус - Почта отклоняется
    c. Это НЕ СПАМ и НЕ ВИРУС - Почта передается LDA
  7. LDA доставляет почту
    a. Почта помечена как СПАМ - Доставляется в директорию “СПАМ” в Maildir
    b. Почта НЕ помечена как СПАМ - Доставляется в папку “Входящие”.

Интернет-почта от ваших доменов:

  1. Пользователь инициирует соединение с SMTP Relay на порту 25
  2. SMTP Relay предлагает TLS:
    a. Пользователь не использует TLS - Почта отклоняется
    b. Пользователь использует TLS - Сессия разрешается продолжить
  3. SMTP Relay предлагает AUTH (PLAIN):
    a. Пользователь не аутентифицируется/Неудачная аутентификация - Почта отклоняется
    b. Пользователь аутентифицируется - Сессия завершается как обычно

Удаленные пользователи получают доступ к почте через IMAPS (Безопасный IMAP)

Локальные пользователи получают доступ к почте через IMAP

Если пользователь обнаруживает ложное срабатывание обнаружения СПАМа, он пересылает электронное письмо на “ham-@.
Если пользователь обнаруживает ложное отрицательное обнаружение СПАМа, он пересылает электронное письмо на “spam-@.

II. Важные заметки

Все это может быть установлено как в Debian 4.0 Etch, так и в Ubuntu Feisty Fawn, поскольку обе системы довольно похожи. Однако обратите внимание, что могут возникнуть некоторые незначительные проблемы, если вы используете стандартную версию Dovecot и Postfix, но я постараюсь отметить их для вас, когда они возникнут.

Если вы пользователь Ubuntu, обратите внимание, что я не буду использовать “sudo” перед каждой командой. Вместо этого я запущу оболочку root с помощью команды “sudo -s”.

Установка программного обеспечения в Ubuntu и Debian очень проста, поэтому, когда это возможно, мы будем использовать встроенную утилиту apt-get. Чем меньше нам нужно собирать самостоятельно, тем проще будет поддерживать это позже.

Итак, давайте начнем!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.