Рейтинг:0

Проблема перезаписи / ретрансляции с конфигурацией постфикса и зависимыми от отправителя релейными хостами - ISP

флаг us

У меня есть «Ubuntu 20.04.3 LTS» на Raspberry Pi 4, и я пытаюсь настроить постфикс для использования релейных хостов, зависящих от отправителя.

Postfix - это mail_version = 3.4.13, и у меня есть динамический IP.

Схема выглядит так:

  1. локальный пользователь отправляет электронную почту на постфикс (локальный почтовый сервер)
  2. postfix перезаписывает адрес FROM
  3. в зависимости от адреса перезаписи FROM выберите правильный relayhost
  4. отправляет почту на relayhost через порт 587

для пункта 1) и 2) у меня есть файл sender_canonical созданный:

[email protected] [email protected]
[email protected] [email protected]

Для пункта 3) у меня есть файл релейная карта созданный:

@gmx.de mail.gmx.net:587
@gmail.com smtp.gmail.com:587

Для пункта 4) у меня есть файл pass_smarthost созданный:

[email protected] [email protected]:UserA-GMX-пароль
[email protected] [email protected]:UserB-Gmail-Пароль

Я тестировал это с этим:

эхо "тест" | sendmail -f ttm [email protected]

Но в настоящее время я получаю:

хвост -f /var/log/syslog | grep --line-buffered "postfix\|relay\|generic"

7 сентября 18:28:29 ubuntu-RPI4 postfix/pickup[24810]: 5CFF24028B: uid=0 from=<ttm>
7 сентября 18:28:29 ubuntu-RPI4 postfix/cleanup[24830]: 5CFF24028B: message-id=<[email protected]>
7 сентября 18:28:29 ubuntu-RPI4 postfix/qmgr[24811]: 5CFF24028B: from=<[email protected]>, size=256, nrcpt=1 (очередь активна)
7 сентября 18:28:29 ubuntu-RPI4 postfix/smtp[24833]: подключиться к mx04.posteo.de[185.67.36.64]:25: соединение отклонено
7 сентября 18:28:29 ubuntu-RPI4 postfix/smtp[24833]: подключиться к mx01.posteo.de[185.67.36.61]:25: соединение отклонено
7 сентября 18:28:29 ubuntu-RPI4 postfix/smtp[24833]: подключиться к mx01.posteo.de[185.67.36.62]:25: соединение отклонено
7 сентября 18:28:29 ubuntu-RPI4 postfix/smtp[24833]: подключиться к mx03.posteo.de[185.67.36.63]:25: соединение отклонено
7 сентября 18:28:29 ubuntu-RPI4 postfix/smtp[24833]: подключиться к mx03.posteo.de[185.67.36.70]:25: соединение отклонено
7 сентября, 18:28:29 ubuntu-RPI4 postfix/smtp[24833]: 5CFF24028B: to=<[email protected]>, relay=none, delay=0,51, delay=0,07/0,08/0,36/0, dsn=4,4 .1, status=deferred (подключиться к mx03.posteo.de[185.67.36.70]:25: в соединении отказано)

Для меня это похоже на то, что постфикс пытается доставить электронную почту напрямую на сервер получателя через порт 25 - вместо использования relayhost (здесь gmx.de). И перепрошивка пришла не по адресу - может кружок?

Я попытался добавить опцию "-v" в master.cf, чтобы увидеть больше деталей или получить подсказку, что происходит.

Но я не получил ошибку. Что мне не хватает? Любая подсказка будет полезна.

Заранее спасибо.

main.cf:

# Смотрите /usr/share/postfix/main.cf.dist для более полной версии с комментариями


# Специально для Debian: указание имени файла приведет к первому
# строка этого файла, которая будет использоваться в качестве имени. Дебиан по умолчанию
# это /etc/mailname.
myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
биф = нет

# добавление .domain - это работа MUA.
append_dot_mydomain = нет

# Раскомментируйте следующую строку, чтобы сгенерировать предупреждение об "отложенной почте"
#delay_warning_time = 4 часа

readme_directory = нет

# См. http://www.postfix.org/COMPATIBILITY_README.html -- по умолчанию 2 на
# свежие установки.
уровень_совместимости = 2



# TLS-параметры
# смтпд
smtpd_tls_cert_file=/etc/postfix/sslcert/mailserver20210902.crt
smtpd_tls_key_file=/etc/postfix/sslcert/mailserver20210902.key
сломанный_sasl_auth_clients = да
smtpd_tls_security_level=может
smtpd_sasl_type = голубятня
smtpd_sasl_path = частный/авторизация
smtpd_tls_auth_only = да
smtpd_sasl_auth_enable = да
smtpd_sasl_authenticated_header = да
smtpd_sasl_local_domain = $мойдомен
smtpd_tls_session_cache_database = btree:${каталог_данных}/smtpd_scache
smtpd_sender_login_maps = прокси:mysql:/etc/postfix/mysql_sender_login_maps.cf
smtpd_recipient_restrictions = Permit_Sasl_аутентифицированный Permit_myNetworks reject_unauth_destination reject_unknown_reverse_client_hostname
smtpd_relay_restrictions = Permit_MyNetworks Permit_Sasl_Authenticated defer_unauth_destination


myhostname = ttmsacer.homenet
мой домен = $имя хоста
мой пункт назначения = localhost.homenet, локальный хост

alias_maps = хеш:/и т.д./псевдонимы
alias_database = хэш:/и т.д./псевдонимы
ретранслятор =
мои сети = 127.0.0.0/8, [::ffff:127.0.0.0]/104, [::1]/128, 192.168.178.0/24

почтовый ящик_размер_лимит = 0
получатель_разделитель = +
message_size_limit = 52768000
# отключить virtual_mailbox_limit, установив для него значение 0:
виртуальный_почтовый_лимит = 0

inet_interfaces = 127.0.0.1, локальный, 192.168.178.20
inet_protocols = все

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_sender_maps $mtworks_maps $mynetworks

local_transport = виртуальный

virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps = прокси:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

виртуальный_минимум_uid = 104
виртуальные_uid_maps = статические: 5000
virtual_gid_maps = статический: 5000
виртуальный_транспорт = lmtps:inet:localhost:24

# смартхост/SMTP
smtp_tls_CApath=/etc/ssl/сертификаты
smtp_tls_security_level=может
smtp_tls_session_cache_database = btree:${каталог_данных}/smtp_scache
smtp_tls_policy_maps = хеш:/etc/postfix/tls_policy
smtp_sender_dependent_authentication = да
smtp_sasl_auth_enable = да
smtp_sasl_security_options = неанонимный
smtp_connection_cache_on_demand = нет
smtp_sasl_password_maps = хеш:/etc/postfix/pass_smarthost

sender_dependent_relayhost_maps = хеш:/etc/postfix/relaymap
sender_canonical_classes = отправитель_конверта, отправитель_заголовка
sender_canonical_maps = хэш:/etc/postfix/sender_canonical
receive_override_options = no_address_mappings

master.cf

# Конфигурационный файл главного процесса Postfix. Для получения подробной информации о формате
# файла, см. справочную страницу master(5) (команда: "man 5 master" или
# он-лайн: http://www.postfix.org/master.5.html).
#
# Не забудьте выполнить "постфиксную перезагрузку" после редактирования этого файла.
#
# ================================================ ==========================
# тип сервиса private unpriv chroot wakeup maxproc command + args
# (да) (да) (нет) (никогда) (100)
# ================================================ ==========================
smtp инет п - у - - smtpd -v
#smtp inet n - y - 1 постскрин
#smtpd проход - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
отправка inet n - n - - smtpd -v
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=шифровать
  -o smtpd_sasl_auth_enable=да
  -o smtpd_tls_auth_only=да
# -o smtpd_reject_unlisted_recipient=нет
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,отклонить
# -o milter_macro_daemon_name=ИСХОДЯЩИЙ
smtps inet n - y - - smtpd -v
  -o syslog_name=postfix/smtps
# -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=да
# -o smtpd_reject_unlisted_recipient=нет
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,отклонить
# -o milter_macro_daemon_name=ИСХОДЯЩИЙ
#628 инет п-у--qmqpd
пикап unix n - y 60 1 пикап -v
очистка unix n - y - 0 очистка -v
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix--y 1000? 1 тлсмгр
переписать unix--y--тривиально-переписать-v
отказ unix - - y - 0 отказ
отложить unix - - y - 0 отказов
трассировка unix - - y - 0 отказов
проверить unix - - y - 1 проверить
прошить unix -ы 1000? 0 флеш
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
реле unix--y--smtp
        -o syslog_name=postfix/$service_name
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - y - - showq
ошибка unix--y--ошибка
повторите попытку unix--y--ошибка
отбросить unix--y--отбросить
локальный unix - n n - - локальный
виртуальный unix - n n - - виртуальный
lmtp unix--y--lmtp
наковальня unix - - y - 1 наковальня
архив unix - - y - 1 архив
postlog unix-dgram n - n - 1 postlogd
#
# ================================================ ====================
# Интерфейсы к программному обеспечению, отличному от Postfix. Обязательно изучите инструкцию
# страниц программного обеспечения, отличного от Postfix, чтобы узнать, какие параметры ему нужны.
#
# Многие из следующих сервисов используют доставку Postfix pipe(8)
# агент. См. справочную страницу pipe(8) для получения информации о ${recipient}
# и другие параметры конверта сообщения.
# ================================================ ====================
#
# почтовая рассылка. Подробности смотрите в файле Postfix MAILDROP_README.
# Также укажите в main.cf: maildrop_destination_recipient_limit=1
#
maildrop unix - n n - - канал
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ================================================ ====================
#
# Последние версии Cyrus могут использовать существующую запись "lmtp" master.cf.
#
# Указываем в cyrus.conf:
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Укажите в main.cf одно или несколько из следующего:
# mailbox_transport = lmtp:inet:localhost
# виртуальный_транспорт = lmtp:inet:localhost
#
# ================================================ ====================
#
# Cyrus 2.1.5 (Амос Гуо)
# Также указать в main.cf: cyrus_destination_recipient_limit=1
#
#cyrus unix - n n - - труба
# user=cyrus argv=/cyrus/bin/deliver -e -r ${отправитель} -m ${расширение} ${пользователь}
#
# ================================================ ====================
# Старый пример доставки через Cyrus.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ================================================ ====================
#
# Подробности конфигурации смотрите в файле Postfix UUCP_README.
#
uucp unix - n n - - канал
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Другие внешние способы доставки.
#
ifmail unix - n n - - канал
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - канал
  флаги=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
бэкенд-подсистема масштабирования unix — n n — 2 канала
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
почтальон unix - n n - - труба
  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
  ${nexthop} ${пользователь}
# ================================================ ====================
lmtps unix - - - - - lmtp
  -o lmtp_use_tls=да
  -o lmtp_enforce_tls=да
  -o lmtp_tls_mandatory_protocols=!SSLv2,!SSLv3
  -o lmtp_tls_protocols=!SSLv2,!SSLv3
  -o lmtp_tls_mandatory_ciphers=высокий
  -o lmtp_tls_ciphers=высокий
  -o lmtp_send_xforward_command=да
  -o lmtp_tls_security_level=шифровать
  -o lmtp_tls_note_starttls_offer=да
  -o lmtp_address_preference=ipv4


Рейтинг:0
флаг us

Решено.

Основная проблема была в main.cf с такой настройкой: "receive_override_options = no_address_mappings" после его удаления перепрошивка работает!

Спасибо raf и postfix-users в списке рассылки postfix-users.

мой последний файл main.cf:

# Смотрите /usr/share/postfix/main.cf.dist для более полной версии с комментариями

# Специально для Debian: указание имени файла приведет к первому
# строка этого файла, которая будет использоваться в качестве имени. Дебиан по умолчанию
# это /etc/mailname.
myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
биф = нет

# добавление .domain - это работа MUA.
append_dot_mydomain = нет

# Раскомментируйте следующую строку, чтобы сгенерировать предупреждение об "отложенной почте"
#delay_warning_time = 4 часа

readme_directory = нет

# См. http://www.postfix.org/COMPATIBILITY_README.html -- по умолчанию 2 на
# свежие установки.
уровень_совместимости = 2



# TLS-параметры
# смтпд
smtpd_tls_cert_file=/etc/postfix/sslcert/mailserver20210902.crt
smtpd_tls_key_file=/etc/postfix/sslcert/mailserver20210902.key
сломанный_sasl_auth_clients = нет
smtpd_tls_security_level=может
smtpd_sasl_type = голубятня
smtpd_sasl_path = частный/авторизация
smtpd_tls_auth_only = да
smtpd_sasl_auth_enable = да
smtpd_sasl_authenticated_header = да
smtpd_sasl_local_domain = $мойдомен
smtpd_tls_session_cache_database = btree:${каталог_данных}/smtpd_scache
smtpd_sender_login_maps = прокси:mysql:/etc/postfix/mysql_sender_login_maps.cf
smtpd_recipient_restrictions = Permit_Sasl_аутентифицированный Permit_myNetworks reject_unauth_destination reject_unknown_reverse_client_hostname
smtpd_relay_restrictions = Permit_MyNetworks Permit_Sasl_Authenticated defer_unauth_destination


myhostname = ubuntu-RPI4.homenet
мой домен = ttmsacer.homenet 
мой пункт назначения = localhost.homenet, локальный хост

alias_maps = хеш:/и т.д./псевдонимы
alias_database = хэш:/и т.д./псевдонимы
ретранслятор =
мои сети = 127.0.0.0/8, [::ffff:127.0.0.0]/104, [::1]/128, 192.168.178.0/24
#relay_domains = *

почтовый ящик_размер_лимит = 0
получатель_разделитель = +
message_size_limit = 52768000
# отключить virtual_mailbox_limit, установив для него значение 0:
виртуальный_почтовый_лимит = 0

inet_interfaces = 127.0.0.1, локальный, 192.168.178.20
inet_protocols = все


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_sender_maps $mtworks_maps $mynetworks

local_transport = виртуальный

virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
# прокси: mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf,
# прокси:mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_maps = прокси:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
# прокси:mysql:/etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf


виртуальный_минимум_uid = 104
виртуальные_uid_maps = статические: 5000
virtual_gid_maps = статический: 5000
виртуальный_транспорт = lmtps:inet:localhost:24

# смартхост/SMTP
smtp_tls_security_level=может
smtp_tls_session_cache_database = btree:${каталог_данных}/smtp_scache
smtp_tls_policy_maps = хеш:/etc/postfix/tls_policy
smtp_sender_dependent_authentication = да
smtp_sasl_auth_enable = да
smtp_sasl_security_options = неанонимный 
smtp_connection_cache_on_demand = нет
smtp_sasl_password_maps = хеш:/etc/postfix/pass_smarthost


sender_dependent_relayhost_maps = хеш:/etc/postfix/relaymap
sender_canonical_classes = отправитель_конверта, отправитель_заголовка
canonical_maps = хеш:/etc/postfix/sender_canonical
sender_canonical_maps = хэш:/etc/postfix/sender_canonical
smtp_generic_maps = хеш:/etc/postfix/sender_canonical

Ответить или комментировать

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