Рейтинг:1

Postfix пытается локально найти внешний адрес

флаг ge

В настоящее время я пытаюсь настроить почтовый сервер, используя postfix, dovecot, amavis, sqlite и т. д.

Допустим, у меня есть: mydomain.com и mail.mydomain.com (здесь указываются записи MX)

При отправке электронного письма на внешний почтовый адрес (скажем, [email protected]) postfix пытается найти это электронное письмо в базе данных виртуального почтового ящика. (До настройки виртуальной почтовой системы я мог отправлять почту с помощью команды mail.)

/var/журнал/mail.log:

12 сентября, 12:34:11 mail postfix/submission/smtpd[7695]: инициализация механизма TLS на стороне сервера
12 сентября, 12:34:11 почтовый постфикс/отправка/smtpd[7695]: подключиться от неизвестного[myhomeip]
12 сентября, 12:34:12 почта postfix/submission/smtpd[7695]: настройка TLS-соединения от неизвестного[myhomeip]
12 сентября, 12:34:12 почтовый постфикс/отправка/smtpd[7695]: неизвестно[myhomeip]: список шифров TLS "aNULL:-aNULL:HIGH:MEDIUM:+RC4:@STRENGTH:!aNULL:!LOW:!EXP: !MEDIUM:!ADH:!AECDH:!MD5:!DSS:!ECDSA:!3DES:!DES:!eNULL:!RC4:!CBC3-SHA:!PSK"
12 сентября 12:34:12 почтовый постфикс/отправка/smtpd[7695]: SSL_accept: перед инициализацией SSL
12 сентября 12:34:12 почтовый постфикс/отправка/smtpd[7695]: SSL_accept: перед инициализацией SSL
12 сентября, 12:34:12 почта postfix/submission/smtpd[7695]: неизвестно[myhomeip]: Билет сеанса расшифровки, срок действия ключа: 1631442310
12 сентября 12:34:12 почта postfix/submission/smtpd[7695]: SSL_accept:SSLv3/TLS читать клиент привет
12 сентября 12:34:12 почтовый постфикс/отправка/smtpd[7695]: SSL_accept:SSLv3/TLS сервер записи привет
12 сентября, 12:34:12 почтовый постфикс/отправка/smtpd[7695]: SSL_accept:SSLv3/TLS запись изменения спецификации шифрования
12 сентября 12:34:12 почтовый постфикс/отправка/smtpd[7695]: SSL_accept:TLSv1.3 запись зашифрованных расширений
12 сентября, 12:34:12 почтовый постфикс/отправка/smtpd[7695]: SSL_accept:запись SSLv3/TLS завершена
12 сентября 12:34:12 почтовый постфикс/представление/smtpd[7695]: SSL_accept:ранние данные TLSv1.3
12 сентября 12:34:12 почтовый постфикс/представление/smtpd[7695]: SSL_accept:ранние данные TLSv1.3
12 сентября, 12:34:12 почтовый постфикс/отправка/smtpd[7695]: чтение SSL_accept:SSLv3/TLS завершено
12 сентября, 12:34:12 mail postfix/submission/smtpd[7695]: unknown[myhomeip]: повторное использование старого сеанса (билет сеанса RFC 5077)
12 сентября, 12:34:12 почтовый постфикс/отправка/smtpd[7695]: установлено анонимное TLS-соединение от неизвестного [myhomeip]: TLSv1.3 с шифром TLS_AES_256_GCM_SHA384 (256/256 бит) обмен ключами X25519 сервер-подпись RSA-PSS ( 2048 бит)
12 сентября, 12:34:12 почтовый постфикс/отправка/smtpd[7695]: 502B781E4E: client=unknown[myhomeip], sasl_method=PLAIN, [email protected]
12 сентября 12:34:12 почтовый постфикс/очистка [7700]: 502B781E4E: message-id=<[email protected]>
12 сентября, 12:34:12 mail postfix/qmgr[6826]: 502B781E4E: from=<[email protected]>, size=330, nrcpt=1 (очередь активна)
12 сентября, 12:34:12 почта postfix/submission/smtpd[7695]: отключиться от неизвестного[myhomeip] ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 command=7
12 сентября, 12:34:12, почта dovecot: imap([email protected])<7250><x83QYcnLPEhehlnC>: соединение закрыто (noop завершено 0,207 с назад) in=1695 out=5945 удалено=0 удалено=0 удалено=0 hdr_count =1 hdr_bytes=241 body_count=0 body_bytes=0
12 сентября, 12:34:12 mail postfix/smtpd[7704]: инициализация механизма TLS на стороне сервера
12 сентября, 12:34:12 почтовый постфикс/smtpd[7704]: подключение с локального хоста[127.0.0.1]
12 сентября, 12:34:12, почтовый постфикс/smtpd[7704]: B4A9F81E73: client=localhost[127.0.0.1]
12 сентября 12:34:12 почтовый постфикс/очистка [7700]: B4A9F81E73: message-id=<[email protected]>
12 сентября, 12:34:12 mail postfix/qmgr[6826]: B4A9F81E73: from=<[email protected]>, size=780, nrcpt=1 (очередь активна)
12 сентября 12:34:12 почта postfix/smtpd[7704]: отключение от локального хоста[127.0.0.1] ehlo=1 почта=1 rcpt=1 данные=1 quit=1 команды=5
12 сентября, 12:34:12, почта amavis[847]: (00847-08) Пройдено CLEAN {RelayedOpenRelay}, [myhomeip]:18412 [myhomeip] <[email protected]> -> <[email protected]>, очередь -ID: 502B781E4E, Message-ID: <[email protected]>, mail_id: thEgZdv5F-0T, обращений: 0,688, размер: 330, queued_as: B4A9F81E73, 327 мс
12 сентября, 12:34:12, почтовый постфикс/lmtp[7701]: 502B781E4E: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, задержка=0,5, задержки=0,14/0,01/ 0.01/0.34, dsn=2.0.0, статус=отправлено (250 2.0.0 от MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Хорошо: в очереди как B4A9F81E73)
12 сентября 12:34:12 почтовый постфикс/qmgr[6826]: 502B781E4E: удалено
12 сентября, 12:34:12, почтовый постфикс/виртуальный [7705]: B4A9F81E73: to=<[email protected]>, relay=virtual, delay=0,06, delays=0/0,03/0/0,02, dsn=5.1.1 , status=bounced (неизвестный пользователь: "[email protected]")
12 сентября 12:34:12 почтовый постфикс/очистка [7700]: C2D3C81E74: message-id=<[email protected]>
12 сентября, 12:34:12 почтовый постфикс/qmgr[6826]: C2D3C81E74: from=<>, size=2692, nrcpt=1 (очередь активна)
12 сентября, 12:34:12 почтовый постфикс/отказ [7706]: B4A9F81E73: уведомление отправителя о недоставке: C2D3C81E74
12 сентября 12:34:12 почтовый постфикс/qmgr[6826]: B4A9F81E73: удалено
12 сентября, 12:34:12 почтовый постфикс/виртуальный [7705]: C2D3C81E74: to=<[email protected]>, relay=virtual, delay=0.01, delays=0/0/0/0, dsn=2.0.0 , статус=отправлено (доставлено в maildir)
12 сентября 12:34:12 почтовый постфикс/qmgr[6826]: C2D3C81E74: удалено
12 сентября 12:34:19 почта dovecot: imap-login: Логин: user=<[email protected]>, method=PLAIN, rip=myhomeip, lip=myserverip, mpid=7712, TLS, session=<B00g5MnL7kdehlnC>

Обратите внимание на status=bounced unknown user в строке 33. Я также получаю это от почтового демона: Код диагностики: X-Postfix; неизвестный пользователь: "[email protected]"

Я могу получать электронную почту извне, а также могу получать/отправлять электронную почту, если отправляю из своего домена в свой домен.

Мое имя хоста mail.mydomain.com

Мой файл hosts:

127.0.0.1 локальный хост
127.0.1.1 mail.mydomain.com

# Следующие строки желательны для хостов с поддержкой IPv6
::1 локальный хост ip6-localhost ip6-loopback
ff02::1 ip6-все узлы
ff02::2 ip6-все маршрутизаторы
мой сервер ip mydomain.com

Содержимое транспорта Sql:

sqlite> SELECT * FROM транспорты;
mydomain.com|1001|виртуальный:

Вывод из postconf -n:

append_dot_mydomain = нет
биф = нет
уровень_совместимости = 2
content_filter = lmtp-amavis:[127.0.0.1]:10024
inet_interfaces = все
inet_protocols = ipv4
local_recipient_maps =
почтовый ящик_размер_лимит = 1024
masquerade_domains = $мойдомен
mydestination = $mydomain, $myhostname, localhost.mydomain.com, localhost
имя хоста = mail.mydomain.com
мои сети = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = нет
получатель_разделитель = +
ретранслятор =
smtp_tls_exclude_ciphers = НИЗКИЙ, ОПЫТ
smtp_tls_loglevel = 2
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_security_level = может
smtp_tls_session_cache_database = btree:${каталог_данных}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = reject_unknown_client_hostname
smtpd_relay_restrictions = allow_mynetworks, permit_sasl_authenticated, defer_unauth_destination
smtpd_tls_auth_only = да
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.mydomain.com/fullchain.pem
smtpd_tls_dh1024_param_file = /etc/letsencrypt/dhparams.pem
smtpd_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, 3DES, DES, eNULL, RC4, CBC3-SHA, PSK
smtpd_tls_key_file = /etc/letsencrypt/live/mail.mydomain.com/privkey.pem
smtpd_tls_loglevel = 2
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_received_header = да
smtpd_tls_security_level = может
smtpd_tls_session_cache_database = btree:${каталог_данных}/smtpd_scache
tls_preempt_cipherlist = да
tls_ssl_options = NO_RENEGOTIATION
transport_maps = sqlite:/etc/postfix/sqlite_transports_maps.cf
virtual_alias_maps = sqlite:/etc/postfix/sqlite_virtual_alias_maps.cf
виртуальные_гид_карты = статические: 1001
virtual_mailbox_base = /дом/почта/
virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf
виртуальные_uid_maps = статические: 1001

/etc/mailname содержит mydomain.com

Содержимое master.cf:

smtp инет n - y - - smtpd
подача инет н - у - - smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_wrappermode=нет
  -o smtpd_tls_security_level=шифровать
  -o smtpd_sasl_auth_enable=да
  -o smtpd_tls_auth_only=да
  -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,отклонить
  -o smtpd_sasl_type=голубятня
  -o smtpd_sasl_path=частный/авторизация
  -o smtpd_recipient_restrictions=
smtps inet n - y - - smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_sasl_auth_enable=да
  -o smtpd_tls_auth_only=да
  -o smtpd_tls_wrappermode=да
lmtp-amavis unix - - - - 2 lmtp
  -o lmtp_data_done_timeout=1200
  -o lmtp_send_xforward_command=да
  -о максимальное_использование=20
127.0.0.1:10025 инет n - n - - smtpd
  -o content_filter=
  -о мои сети=127.0.0.0/8
  -o smtpd_client_restrictions=разрешить_мои сети, отклонить
  -o smtpd_recipient_restrictions=разрешить_мои сети, отклонить
  -o smtpd_delay_reject=нет
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_data_restrictions=reject_unauth_pipelining
  -o smtpd_end_of_data_restrictions=
  -o smtpd_restriction_classes=
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o receive_override_options=no_header_body_checks, no_unknown_recipient_checks, no_milters, no_address_mappings
  -o local_header_rewrite_clients=
  -o smtpd_milters=
  -o local_recipient_maps=
  -o relay_recipient_maps=
пикап unix n - y 60 1 пикап
очистка unix n - y - 0 очистка
  -o header_checks=regexp:/etc/postfix/header_checks
qmgr unix n - n 300 1 qmgr
tlsmgr unix--y 1000? 1 тлсмгр
переписать unix--y--тривиально-переписать
отказ 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
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
maildrop unix - n n - - канал
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
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} ${пользователь}

Я уже пробовал различные настройки mydestination.

Спасибо за вашу помощь !

Nikita Kipriyanov avatar
флаг za
Итак, каково содержимое `sqlite_virtual_mailbox_maps.cf` и `sqlite_virtual_alias_maps.cf`? По крайней мере, сообщите нам строки запроса. // Боюсь, проблема в том, что запрос `virtual_mailbox_domains` или `virtual_alias_domains` приводит к тому, что gmail.com является локальным виртуальным доменом. Так что я бы перепроверил эту гипотезу.
babulb avatar
флаг ge
# кошка /etc/postfix/sqlite_virtual_mailbox_maps.cf `dbpath = /etc/postfix/postfix.sqlite query = ВЫБРАТЬ почтовый каталог ОТ пользователей, ГДЕ электронная почта = '%s'` # кошка /etc/postfix/sqlite_virtual_alias_maps.cf `dbpath = /etc/postfix/postfix.sqlite query = ВЫБРАТЬ адрес электронной почты ИЗ псевдонимов, ГДЕ псевдоним = '%s'`
babulb avatar
флаг ge
и сама база данных: `# sqlite3 /etc/postfix/postfix.sqlite sqlite> пользователи .schema CREATE TABLE пользователей (электронная почта TEXT PRIMARY KEY, пароль TEXT NOT NULL, настоящее имя TEXT, maildir TEXT NOT NULL, созданная DATETIME DEFAULT CURRENT_TIMESTAMP); sqlite> SELECT * FROM пользователей; [email protected]|{BLF-CRYPT}pwhash|JG Caesar|caesar/|2021-09-11 19:03:58 [email protected]|{BLF-CRYPT}pwhash|admin|admin/|2021-09-11 19:51:11`
babulb avatar
флаг ge
У меня нет `virtual_mailbox_domains` и `virtual_alias_domains`
babulb avatar
флаг ge
`postmap -q [email protected] sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf` возвращает админ/ ; так вроде работает
anx avatar
флаг fr
anx
Я не вижу ничего плохого в запросе, однако проверка, которую я предлагал, будет заключаться в том, чтобы проверить, возвращает ли ваш поиск ложные срабатывания для доменов, которые * не * обрабатываются вашим сервером. Вы уже знали, что это работает для *вашего* домена (вы получили уведомление о недоставке!) - моя теория заключалась в том, что какой-то поисковый запрос (через неверный запрос sql или иным образом) возвращает непреднамеренные результаты для *других* доменов.
Nikita Kipriyanov avatar
флаг za
Также вы можете установить более высокий уровень отладки, лучше всего добавить тестовый пир (вероятно, localhost) в debug_peer_list в main.cf. Затем postfix добавит ведение журнала на 2 и будет регистрировать *намного* больше, в основном сообщая вам о каждом выполняемом запросе, каждом возвращаемом результате и каждом тесте, который он выполняет, чтобы вы могли понять, что происходит. Не оставляйте его с этой настройкой надолго, лог с уровнем отладки +2 очень подробный.
babulb avatar
флаг ge
@анкс `postmap -q [email protected] sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf` ничего не возвращает; на данный момент есть только два пользователя (см. мой комментарий о базе данных), так что это не удивительно. @Никита Киприянов я попробую это
anx avatar
флаг fr
anx
@babulb То же самое могло произойти с доменами, найденными в `transport_maps`, проверьте и это.
babulb avatar
флаг ge
@анкс Свят... ты решил это; спасибо большое уже целый день искал...теперь все работает. Я знал, что это было что-то очень глупое. в основном я жестко запрограммировал свой собственный домен в таблице вместо %s (результат можно увидеть ниже). `# sqlite3 /etc/postfix/postfix.sqlite sqlite> SELECT * FROM транспорты; mydomain.com|1001|виртуальный: # кот /etc/postfix/sqlite_transports_maps.cf dbpath = /etc/postfix/postfix.sqlite query = ВЫБРАТЬ транспорт ИЗ транспортов, ГДЕ domain = 'mydomain.com' # postmap -q [email protected] sqlite:/etc/postfix/sqlite_transports_maps.cf виртуальный:`
anx avatar
флаг fr
anx
Между прочим, ваш `master.cf` назвал 2 из 4 экземпляров smtpd, используя `syslog_name` – вы, вероятно, можете избавить себя от головной боли, если поместите подходящую строку `-o syslog_name=..` в свой порт `10025` а также, чтобы в журналах было более очевидно, возникают ли проблемы до или после обработки *amavis*.
Рейтинг:1
флаг fr
anx

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

скорее всего транспорт_карты или же virtual_mailbox_domains (по умолчанию откладывается до virtual_mailbox_maps). Вы доказали эту теорию, если обе ваш домен и тот, который на самом деле должен ретранслироваться, дают результаты одного из настроенных вами поисков, например. попробуй это:

postmap -q [email protected] sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf
postmap -q аутсайдер@другой.пример sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf
postmap -q @other.example sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf

postmap -q mydomain.example sqlite:/etc/postfix/sqlite_transports_maps.cf
postmap -q other.example sqlite:/etc/postfix/sqlite_transports_maps.cf

Если вы получили результаты по обоим параметрам, внимательно изучите запрос, особенно КУДА предложение с заполнителем (начиная с %) и определите, почему он возвращает больше результатов для доменов, которые вы явно не добавили в свою базу данных. Возврат самого ключа или статических результатов является распространен в Postfix, поэтому он не вызывает предупреждения ... это просто бесполезно в вашем случае.


я не использовал Амавис таким образом, но я считаю, что переопределение транспортирует в Postfix не требуется для стандартных случаев использования, таких как этот.Вместо этого используйте тот факт, что Postfix будет проверять соответствующие транспорт_mailbox_domains выполняет поиск, чтобы определить, как переносятся домены и почтовые ящики.

Для этого вам может не понадобиться переопределение транспорта, и, скорее всего, вы получите более гибкую и менее подверженную ошибкам настройку, если перечислите свои виртуальные домены в virtual_mailbox_domains вместо транспорт_карты и используйте последний только для определенных переопределений.

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

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