Различия

Показаны различия между двумя версиями страницы.


postfix._pochtovyj_server_dlja_neskolkix_domenov [2025/07/06 12:39] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Postfix: Почтовый сервер для нескольких доменов. ======
 +
 +~~Title: Сервер Postfix для нескольких доменов ~~
 +{{htmlmetatags>
 +metatag-description=(Пример настройки почтового сервера postfix для нескольких доменов (postfix multiple domains), а так же dkim, dmark и spf.)
 +}}
 +
 +{{ ::postfix-mail-server-01.png?nolink&400 |}}
 +
 +**Окружение**: [[Ubuntu]] 14.04.1 LTS, [[Postfix]] 2.11
 +
 +**Задача.** Настроить почтовый сервер для нескольких доменов с виртуальными пользователями, используя связку Postfix, [[Dovecot]], [[MySQL]] для управления пользователями почтового сервера.
 +
 +===== Подготовка окружения =====
 +
 +  * Нам могут потребоваться различные утилиты. Установим их: **aptitude install** dnsutils bind9utils [[etckeeper]] bsdutils
 +
 +  * Настройка DNS для правильной работы почтового сервера. Должны быть настроены записи: A, PTR, МХ, SPF.
 +       * DNS: запись PTR [[hostname, reverse DNS]]
 +       * DNS: запись [[SPF]]
 +       * [[Dnsmasq]] - простой в настройке кеширующий DNS транслятор и DHCP сервер.
 +  * [[NTP]] настройка системного времени.
 +  * [[ustanovka_mysql_server#ubuntu|MySQL]]
 +  * [[apache#ubuntu|Apache]] + PHP + [[ssl#quick_apache2_ssl_sertifikat|SSL сертификат]] + [[mod_rewrite]](чтобы все [[HTTP]] перенаправлялись на 443 порт)
 +  * [[phpMyAdmin]]
 +  * [[PostfixAdmin]] - Веб-интерфейс для администрирования доменов, ящиков, алиасов и т.д.
 +
 +===== Установка Postfix =====
 +  * **Установка Postfix.**<file>
 +# aptitude install postfix postfix-doc postfix-mysql postfix-pcre
 +</file>
 +  * Установщик спросит о типе настраиваемого сервера, в нашем случае нужно выбрать "Интернет-сайт: Почта отправляется и принимается напрямую с использованием SMTP." На следующем шаге нужно ввести системное почтовое имя, обычно оно соответствует FQDN- имени вашего сервера (см. DNS: [[hostname, reverse DNS]]).
 +  * [[newaliases]] - перенаправление сообщений для root в другой почтовый ящик
 +<note>На этом этапе у нас получился рабочий [[SMTP]] сервер. По большому счету в такой настройки только два неудобства: первое каждый почтовый пользователь должен быть создан в операционной системе, например при помощи утилиты [[useradd]] и пересылка настраивается при помощи [[newaliases]]; второе email можно прочитать/получить/отправить только через консоль при помощи, например утилиты [[mailx]].</note>
 +
 +==== Postfix и Submission ====
 +
 +  * Postfix и **Submission** ([[RFC]] 4409, RFC 2476). Включить дополнительно к SMTP (порт 25) Submission (порт 587), который предназначен согласно RFC 2476 для приёма новых писем от клиентов (например [[Thunderbird]]), чтобы не перегружать данной работой основной, 25-й порт, служащий для пересылки сообщений между серверами.<file>
 +# 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
 +</file>
 +
 +==== Пользователь vmail ====
 +  * **Создадим нового пользователя vmail**, от имени которого будут производится операции с файлами в директории /var/vmail, в которой будут храниться письма:<file>
 +# mkdir /var/vmail
 +# groupadd  -g 1001 vmail
 +# useradd -d /var/vmail/ -g 1001 -u 1001 vmail
 +# chown vmail:vmail /var/vmail
 +</file>В main.cf добавляем строки<file>
 +virtual_mailbox_base = /var/vmail
 +virtual_minimum_uid = 1001
 +virtual_uid_maps = static:1001
 +virtual_gid_maps = static:1001
 +virtual_transport = virtual
 +</file>
 +  * Генерация сертификата [[ssl#quick_postfix_smtp_ssl_tsl_sertifikat|Quick Postfix SMTP SSL/TSL сертификат]] и включение, если необходимо, специального порта 465/SMTPS.
 +==== Postfix и MySQL ====
 +
 +  * Свяжем [[Postfix и MySQL]].
 +
 +<note>На этом этапе у нас получился **рабочий** SMTP сервер не требующий заведения пользователя в ОС.</note>
 +
 +==== SMTP аутентификация ====
 +
 +  * **SMTP аутентификация** ([[smtp#komanda_auth|SMTP AUTH]]) позволяет авторизованным почтовым клиентам с динамическими IP адресами пересылать сообщения через ваш сервер, не превращая его в открытый ретранслятор. Чтобы узнать какие библиотеки SASL поддерживает Postfix используйте ключ -а<file>
 +# postconf -a
 +cyrus
 +dovecot
 +</file>
 +  - Включим поддержку SMTP AUTH в Postfix, для этого в main.cf добавим строки<file>
 +# 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
 +</file>
 +  - Настроим SMTP AUTH в Postfix при помощи [[dovecot?&#dovecot_i_mysql|Dovecot]] SASL.<file>
 +# aptitude install dovecot-core dovecot-imapd dovecot-mysql
 +# service postfix restart
 +# service dovecot restart
 +</file>
 +  - [[mta?&#testy|Тесты для почтового сервера]].
 +<note>На этом этапе у нас получился рабочий SMTP сервер с поддержкой SMTP AUTH и SSL/TLS.</note>
 +===== Дополнительно =====
 +
 +  * [[Postfix backup MX]]
 +  * [[postfix?&#restrictions_postfix|Restrictions Postfix]]
 +  * [[Fail2ban]] v0.8.11 поддерживает Postfix и Dovecot, нужно их просто включить
 +  * [[http://postgrey.schweikert.ch|Postgrey]]. [[wpru>Серый список]]. [[http://help.ubuntu.ru/wiki/postgrey|Грейлистинг с помощью postgrey]]. На мой взгляд неприменимо в бизнес решении, только усложнит работу сотрудников. Любые задержки в получении писем недопустимы.
 +  * [[SPF]] фильтрация встроена [[SpamAssassin]]. Можно использовать [[postfix-policyd-spf-python]] или [[postfix-policyd-spf-perl]].
 +  * [[Postscreen]] анализирует поведение SMTP- клиента и блокирует его при необходимости СПАМ.
 +  * [[amavisd-new]] интеграция с Postfix, ClamAV, SpamAssassin
 +  * [[ClamAV]] антивирус
 +  * [[analiz_log_fajlov|Анализ лог файлов]]
 +  * [[SpamAssassin]]
 +
 +  * [[DKIM]] - DomainKeys Identified Mail
 +
 +Как эти части работают вместе:
 +  - Почтовое сообщение принимается Postfix.
 +  - Это сообщение проходит через некоторые внешние фильтры, в том числе opendkim и postfix-policyd-spf-python.
 +  - Затем сообщение обрабатывается Amavisd-new.
 +  - ClamAV используется для проверки сообщения. Если сообщение содержит вирус, Postfix сбросит сообщение.
 +  - Чистые сообщения затем будут проверены Spamassassin на принадлежность к спаму. Spamassassin затем добавит строки X-Header, позволяющие в дальнейшем Amavisd-new управлять сообщением.
 +
 +  * [[RoundCube]] - веб- интерфейс для работы с электронной почтой.
 +  * [[RainLoop]] - веб- интерфейс для работы с электронной почтой.
 +  * Mailman - приложение для создания почтовых рассылок.
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

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

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