Почтовый сервер · 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
<Различные инструменты>
Почта работает следующим образом:
Интернет-почта на ваши домены:
- Почта поступает на Первичный или Вторичный MX на порту 25
- MX запрашивает сервер MySQL, чтобы проверить, действительны ли получатель и назначение:
a. Получатель не авторизован - Почта отклоняется (Ошибка 550)
b. Получатель авторизован - Почта разрешается продолжить - MX проверяет политику серого списка:
a. Это первый раз, когда пробуют отправить электронную почту - Почта отклоняется (Повторная попытка)
b. Это не первый раз, когда пробуют отправить электронную почту - Почта разрешается продолжить - MX проверяет на нарушения квоты
a. Квота пользователя заполнена - Почта возвращается
b. У пользователя есть место - Почта доставляется - MX отправляет почту на Внутренний сервер доставки (через LMTP)
- Внутренний сервер доставки проверяет на вирусы/СПАМ
a. Это СПАМ - СПАМ помечается и передается LDA для доставки.
b. Это вирус - Почта отклоняется
c. Это НЕ СПАМ и НЕ ВИРУС - Почта передается LDA - LDA доставляет почту
a. Почта помечена как СПАМ - Доставляется в директорию “СПАМ” в Maildir
b. Почта НЕ помечена как СПАМ - Доставляется в папку “Входящие”.
Интернет-почта от ваших доменов:
- Пользователь инициирует соединение с SMTP Relay на порту 25
- SMTP Relay предлагает TLS:
a. Пользователь не использует TLS - Почта отклоняется
b. Пользователь использует TLS - Сессия разрешается продолжить - 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. Чем меньше нам нужно собирать самостоятельно, тем проще будет поддерживать это позже.
Итак, давайте начнем!
Get new posts in your inbox
No spam. Unsubscribe anytime.