LINUX.ORG.RU
ФорумAdmin

posfix сделать relay для своих же сервисов

 ,


0

1

Исходные данные
Есть свой полностью функциональный почтовый сервер на базе postfix в подконтрольном домене, работает на своих же мощностях. Построено на wheezy по этой доке
Есть сайт, на своих же мощностях. Сайт построен на базе wordpress. На сайте есть регистрационные формы, одним из результатов которых является отправка имейлов. Как я понимаю, там вызывается системная функций «отправить имейл» и локальный для машины с сайтом postfix пытается эту задачу выполнить.

Вопрос
Как настроить релей? Чтобы постфикс из машины с сайтом перекидывал всё исходящее на полностью настроеный постфикс на машине с почтой чтобы тот уже работал исходящую почту.

Спасибо.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 3)

В ″/etc/postfix/main.cf″ указать куда слать всю почту в опции ″relayhost = ″.

mky ★★★★★
()

Дополню предыдущего оратора - и разрешить второму постфиксу делать релей от первого.

<offtopic>А потом долго бить по рукам админов сайта, которые будут в From пихать что-нибудь типа vasya@localhost</offtopic>

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Дополню предыдущего оратора - и разрешить второму постфиксу делать релей от первого.

с этого момента поподробнее, если можно. Я пробовал добавить адреса с источником в mynetworks постфикса-релея - так он вообще раком встал. Ничего не отправлял и не принимал. Хотя, если подумать, то я, возможно, напорол с адресом. В любом случае непонятно почему сервис встал в позу «раком».

А потом долго бить по рукам админов сайта, которые будут в From пихать что-нибудь типа vasya@localhost

таааак. А что с этим не так? Если указать нормальный домен, то локальные системные сообщения для локальных же пользователей (типа о выполнении задач по крону) начинают ломиться на настоящий почтовый сервер, что мне совершенно не нужно. Если же указать нормальный домен в mydestination, то вообще непонятно куда поедут сообщения для нормальных почтовых юзеров этого домена. Это как-то решается? Подозреваю, что должно быть решение для доставки локальных сообщений.

targitaj ★★★★★
() автор топика
Ответ на: комментарий от targitaj

как же блин всё-таки хреново не иметь среды, в которой люди могут такие вещи объяснить на пальцах. Как же меня достало переоткрывать 100500 раз открытые велосипеды. Хорошо хоть форумы есть.

targitaj ★★★★★
() автор топика
Ответ на: комментарий от targitaj

Я пробовал добавить адреса с источником в mynetworks постфикса-релея - так он вообще раком встал

скорее всего ты либо переопределил умолчальный mynetworks неверно, либо накосячил где-то еще - и сейчас этот косяк тупо вылез. Без полного конфига сложно что-то сказать

Если указать нормальный домен, то локальные системные сообщения для локальных же пользователей (типа о выполнении задач по крону) начинают ломиться на настоящий почтовый сервер, что мне совершенно не нужно.

Значит ты неправильно указал транспорт

Pinkbyte ★★★★★
()
Ответ на: комментарий от targitaj

Я не знаю wordpress, но скорее всего по умолчанию он вызывает внешнюю команду ″sendmail″, точно так же как crond и прочие демоны. Поэтому на уровне postfix эти письма не отличаются.

И часто всё так и настраивают, чтобы все письма от crond и пр. шли со всех серверов на один центральный сервер, так как удобнее разгребать всю почту в одном месте, чем лазить по нескольким серверам.

типа vasya@localhost

таааак. А что с этим не так?

Если вашему основному почтовому серверу будут приходить письма с левым адресом ″From:″, а он их будет оправлять дальше, то его будут заносить во всякие black list'ы. Связываясь со всякими скриптами, торчащими в web и позволяющими отправлять почту нужно быть осторожным, оттуда может пойти всякий мусор/спам, и через пару недель мусорного потока в инет легко попасть в кучу разных списков и долго потом вычищать отовсюду.

mky ★★★★★
()
Ответ на: комментарий от mky

естественно, скрипт подставляет нужный текст в поля «От» «Кому» и «Тема». Ты ведь в курсе, что то же поле «От» никак вообще не играет в вопросе транспорта электронной почты? Это просто произвольный текст.

targitaj ★★★★★
() автор топика
Ответ на: комментарий от targitaj

Без схемы доменов, полного содержимого main.cf с обоих postfix-ов и полного содержимого transport-ов с них же - вряд ли.

С ними - вполне.

Pinkbyte ★★★★★
()
Ответ на: комментарий от targitaj

Да, слышал что-то такое. Но лучше, чтобы конверт и заголовки письма совпадали. Адрес на конверте (MAIL FROM) можно указывать через опцию ″-f″ команды sendmail и нормальный скрипт как-то так и должен отправлять почту, указывая отправителя из того домена, за который отвечает основной почтовый сервер, а не ожидать, что за него это сделает postfix, работающий на сайте с wordpress.

mky ★★★★★
()
Ответ на: комментарий от mky

мне не интересно чего там «лучше» или «хуже». Мне нужно чтобы просто работало.

targitaj ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

основной почтовик, который должен стать релеем

cat /etc/postfix/main.cf | grep -v '#' | sed s/цезура/domen/ -

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no


readme_directory = no

smtpd_tls_cert_file=/etc/ssl/certs/domen.com.chained.crt

smtpd_tls_key_file=/etc/ssl/private/domen.com.key


smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


myhostname = mail31.domen.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = mail31.domen.com
mydestination = domen-mail32, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 1073741824
message_size_limit = 52428800
recipient_delimiter = +
inet_interfaces = all
default_transport = smtp
relay_transport = error
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes

smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_rbl_client bl.spamcop.net
        reject_rbl_client zen.spamhaus.org
        check_policy_service unix:private/tumgreyspf
        reject_unauth_destination


smtpd_sender_restrictions =
        reject_unknown_sender_domain
        reject_unauth_pipelining

soft_bounce = no

content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

sender_bcc_maps = hash:/etc/postfix/bcc_sender
recipient_bcc_maps = hash:/etc/postfix/bcc_recipient

smtpd_milters = inet:127.0.0.1:54321
non_smtpd_milters = inet:127.0.0.1:54321
milter_default_action = accept
milter_protocol = 2

targitaj ★★★★★
() автор топика
Ответ на: комментарий от targitaj

машина с сайтом, источник сообщений для релея

cat /etc/postfix/main.cf | grep -v '#' | sed s/цензура/domen/ -

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no


readme_directory = no

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache


myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localhost.localdomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = 

targitaj ★★★★★
() автор топика
Последнее исправление: targitaj (всего исправлений: 2)
Ответ на: комментарий от targitaj

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

где запятая в качестве разделителя? o_O

Подробнее смогу глянуть конфиги завтра, как окажусь на работе

Pinkbyte ★★★★★
()
Ответ на: комментарий от targitaj

smtpd_use_tls=yes

Насколько я помню(подробнее смогу сказать опять же завтра) - этот параметр либо устарел и надо использовать другой, либо его одного недостаточно. Подробнее надо смотреть тут

Pinkbyte ★★★★★
()
Ответ на: комментарий от targitaj

Значит этот параметр работает вовсе не так как ты думаешь. Может там только 127.0.0.1 применяется, а остальное - отбрасывается совсем

Pinkbyte ★★★★★
()
Ответ на: комментарий от targitaj

Таки я был прав, даже не глядя в рабочий конфиг

smtpd_use_tls (default: no)
This feature is available in Postfix 2.2 and later. With Postfix 2.3 and later use smtpd_tls_security_level instead.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

With Postfix 2.3 and later use smtpd_tls_security_level instead.

надо Кристофу отписать... Спасибо.

targitaj ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

я так понимаю, что речь идёт о возможности разделения способа доставки локальных сообщений и исходящих наружу сообщений?

postconf -n | grep transport
default_transport = smtp
relay_transport = error
virtual_transport = dovecot

postconf -d | grep transport
address_verify_default_transport = $default_transport
address_verify_local_transport = $local_transport
address_verify_relay_transport = $relay_transport
address_verify_sender_dependent_default_transport_maps = $sender_dependent_default_transport_maps
address_verify_transport_maps = $transport_maps
address_verify_virtual_transport = $virtual_transport
best_mx_transport =
default_transport = smtp
defer_transports =
empty_address_default_transport_maps_lookup_key = <>
fallback_transport =
fallback_transport_maps =
local_transport = local:$myhostname
mailbox_transport =
mailbox_transport_maps =
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $sender_bcc_maps $recipient_bcc_maps $smtp_generic_maps $lmtp_generic_maps $alias_maps
relay_transport = relay
sender_dependent_default_transport_maps =
transport_maps =
transport_retry_time = 60s
virtual_transport = virtual

targitaj ★★★★★
() автор топика
Ответ на: комментарий от targitaj

интересно,

postconf -df | grep transport
address_verify_default_transport = $default_transport
address_verify_local_transport = $local_transport
address_verify_relay_transport = $relay_transport
address_verify_sender_dependent_default_transport_maps =
    $sender_dependent_default_transport_maps
address_verify_transport_maps = $transport_maps
address_verify_virtual_transport = $virtual_transport
best_mx_transport =
default_transport = smtp
defer_transports =
empty_address_default_transport_maps_lookup_key = <>
fallback_transport =
fallback_transport_maps =
local_transport = local:$myhostname
mailbox_transport =
mailbox_transport_maps =
    $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
relay_transport = relay
sender_dependent_default_transport_maps =
transport_maps =
transport_retry_time = 60s
virtual_transport = virtual

сильно короче

targitaj ★★★★★
() автор топика

я правильно понимаю, что вторичный постфик, который на машине с сайтом, при передаче письма постфиксу на релее выступает в роли обычного почтового клиента? В смысле, для отправки письма он будет проходить ровно те же проверки, что и обычный почтовый клиент?

targitaj ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.