LINUX.ORG.RU
ФорумAdmin

Ответ (bounce) postfix на отсутствие пользователя в БД

 ,


0

1

На сервере установлен postfix на отправку и получение. По какой-то причине он не выдаёт ответы (bounce или 2bounce) внешним серверам, если пользователя нет.

Внешний сервер долбиться в мой около недели и после этого его служба сообщает (например mailer-daemon@yandex.ru):

<test@example.ru>: host mail.example.ru[1.1.1.1] said: 450 4.1.1
    <test@example.ru>: Recipient address rejected: unverified address:
    unknown user: "test" (in reply to RCPT TO command)

Если же я внутри сервера пошлю письмо несуществующему пользователю, то ответит сразу же. Например от user@example.ru к test@example.ru. Ответ приходит мгновенно.

Гугление выдаёт только как это отключить, типа это спамботам помогает, но мне кажется это неправильным.

но мне кажется это неправильным

Ты знаешь что делать, когда кажется. ☺

А если по делу, то это правильно: локально оно корректно уведомляет что такого юзера нет, а за пределами и не должны знать этого. Ты бы ещё личные данные выкладывал в общий доступ и в баунсе писал «Наверное вы имели в виду “tester@example.ru”? Попробуйте ещё раз!»

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

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

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

а еще по этому поводу есть даже RFC, но может ты работаешь в микрософте и кладешь на RFC болт?

constin ★★★★ ()

Bounce должен генерить не твой сервер, а тот, кто долбится, и кого твой сервер посылает в жопу по причине отсутствия юзера. Голову включи.

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

ах, а я наискосок пост прочитал. решил, что вообще нет ответа, что юзера нет, причем толькл внешним серверам

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

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

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

а еще по этому поводу есть даже RFC, но может ты работаешь в микрософте и кладешь на RFC болт?

Про RFC знаю. На некоторые RFC я кладу болт потому что:

  1. Они писались давно и разбиваются о сегодняшние реалии;
  2. Они писались теми кто живёт в мире где пони блюют радугой;
  3. Они идут в разрез с моими юзкейсами.

И естественно я несу за это полную ответственность.

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

Вот кусок

Feb 10 22:07:26 server postfix/smtpd[196938]: connect from forward105o.mail.yandex.net[37.140.190.183]
Feb 10 22:07:26 server postfix/smtpd[196938]: Anonymous TLS connection established from forward105o.mail.yandex.net[37.140.190.183]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Feb 10 22:07:26 server postfix/smtpd[196938]: NOQUEUE: reject: RCPT from forward105o.mail.yandex.net[37.140.190.183]: 450 4.1.1 <test2@example.ru>: Recipient address rejected: unverified address: unknown user: "test2"; from=<keeper-b@yandex.ru> to=<test2@example.ru> proto=ESMTP helo=<forward105o.mail.yandex.net>
Feb 10 22:07:46 server postfix/smtpd[196938]: disconnect from forward105o.mail.yandex.net[37.140.190.183] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8
Feb 10 22:07:46 server postfix/smtpd[196938]: connect from forward105o.mail.yandex.net[37.140.190.183]
Feb 10 22:07:46 server postfix/smtpd[196938]: Anonymous TLS connection established from forward105o.mail.yandex.net[37.140.190.183]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Feb 10 22:07:46 server postfix/smtpd[196938]: NOQUEUE: reject: RCPT from forward105o.mail.yandex.net[37.140.190.183]: 450 4.1.1 <test2@example.ru>: Recipient address rejected: unverified address: unknown user: "test2"; from=<keeper-b@yandex.ru> to=<test2@example.ru> proto=ESMTP helo=<forward105o.mail.yandex.net>
Feb 10 22:08:06 server postfix/smtpd[196938]: disconnect from forward105o.mail.yandex.net[37.140.190.183] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8
Feb 10 22:11:26 server postfix/anvil[196940]: statistics: max connection rate 2/60s for (smtp:37.140.190.183) at Feb 10 22:07:46
Feb 10 22:11:26 server postfix/anvil[196940]: statistics: max connection count 1 for (smtp:37.140.190.183) at Feb 10 22:07:26
Feb 10 22:11:26 server postfix/anvil[196940]: statistics: max cache size 1 at Feb 10 22:07:26
Feb 10 22:12:28 server postfix/smtpd[197017]: connect from mail-pf1-f174.google.com[209.85.210.174]
Feb 10 22:12:28 server postfix/smtpd[197017]: Anonymous TLS connection established from mail-pf1-f174.google.com[209.85.210.174]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
Feb 10 22:12:29 server postfix/smtpd[197017]: NOQUEUE: reject: RCPT from mail-pf1-f174.google.com[209.85.210.174]: 450 4.1.1 <test@example.ru>: Recipient address rejected: unverified address: unknown user: "test"; from=<ivanovii@gmail.com> to=<test@example.ru> proto=ESMTP helo=<mail-pf1-f174.google.com>
Feb 10 22:12:29 server postfix/cleanup[197023]: 5057EC80038: message-id=<20210210191229.5057EC80038@example.ru>
Feb 10 22:12:29 server postfix/qmgr[464]: 5057EC80038: from=<double-bounce@example.ru>, size=267, nrcpt=1 (queue active)
Feb 10 22:12:29 server postfix/local[197024]: 5057EC80038: to=<test@example.ru>, relay=local, delay=0.01, delays=0/0.01/0/0, dsn=5.1.1, status=undeliverable (unknown user: "test")
Feb 10 22:12:29 server postfix/qmgr[464]: 5057EC80038: removed
Feb 10 22:12:39 server postfix/smtpd[197017]: disconnect from mail-pf1-f174.google.com[209.85.210.174] ehlo=2 starttls=1 mail=1 rcpt=0/1 bdat=0/1 quit=1 commands=5/7
Feb 10 22:15:59 server postfix/anvil[197019]: statistics: max connection rate 1/60s for (smtp:209.85.210.174) at Feb 10 22:12:28
Feb 10 22:15:59 server postfix/anvil[197019]: statistics: max connection count 1 for (smtp:209.85.210.174) at Feb 10 22:12:28
Feb 10 22:15:59 server postfix/anvil[197019]: statistics: max cache size 1 at Feb 10 22:12:28
Feb 10 22:17:14 server postfix/smtpd[197075]: connect from unknown[193.56.29.104]
Feb 10 22:17:26 server postfix/smtpd[197075]: disconnect from unknown[193.56.29.104] ehlo=1 auth=0/1 rset=0/1 quit=1 commands=2/4
Feb 10 22:19:05 server postfix/smtpd[197075]: connect from unknown[202.184.106.56]
Feb 10 22:19:24 server postfix/smtpd[197075]: disconnect from unknown[202.184.106.56] ehlo=1 auth=0/1 rset=0/1 quit=1 commands=2/4
Feb 10 22:22:44 server postfix/anvil[197077]: statistics: max connection rate 1/60s for (smtp:193.56.29.104) at Feb 10 22:17:14
Feb 10 22:22:44 server postfix/anvil[197077]: statistics: max connection count 1 for (smtp:193.56.29.104) at Feb 10 22:17:14
Feb 10 22:22:44 server postfix/anvil[197077]: statistics: max cache size 1 at Feb 10 22:17:14
Feb 10 22:40:57 server postfix/smtpd[197407]: connect from forward105o.mail.yandex.net[37.140.190.183]
Feb 10 22:40:57 server postfix/smtpd[197407]: Anonymous TLS connection established from forward105o.mail.yandex.net[37.140.190.183]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Feb 10 22:40:57 server postfix/smtpd[197407]: NOQUEUE: reject: RCPT from forward105o.mail.yandex.net[37.140.190.183]: 450 4.1.1 <test2@example.ru>: Recipient address rejected: unverified address: unknown user: "test2"; from=<keeper-b@yandex.ru> to=<test2@example.ru> proto=ESMTP helo=<forward105o.mail.yandex.net>
Feb 10 22:41:17 server postfix/smtpd[197407]: disconnect from forward105o.mail.yandex.net[37.140.190.183] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8
Feb 10 22:41:17 server postfix/smtpd[197407]: connect from forward105o.mail.yandex.net[37.140.190.183]
Feb 10 22:41:17 server postfix/smtpd[197407]: Anonymous TLS connection established from forward105o.mail.yandex.net[37.140.190.183]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Feb 10 22:41:18 server postfix/smtpd[197407]: NOQUEUE: reject: RCPT from forward105o.mail.yandex.net[37.140.190.183]: 450 4.1.1 <test2@example.ru>: Recipient address rejected: unverified address: unknown user: "test2"; from=<keeper-b@yandex.ru> to=<test2@example.ru> proto=ESMTP helo=<forward105o.mail.yandex.net>
Feb 10 22:41:38 server postfix/smtpd[197407]: disconnect from forward105o.mail.yandex.net[37.140.190.183] ehlo=2 starttls=1 mail=1 rcpt=0/1 data=0/1 rset=1 quit=1 commands=6/8
keeper_b ★★★ ()
Ответ на: комментарий от constin

Вот параметры postfix

alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
bounce_queue_lifetime = 1d
command_directory = /usr/sbin
compatibility_level = 2
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
disable_vrfy_command = yes
home_mailbox = .maildir/
html_directory = no
inet_interfaces = all
inet_protocols = ipv4
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
maximal_queue_lifetime = 1d
meta_directory = /etc/postfix
milter_default_action = accept
mydestination = $myhostname, localhost.$mydomain, localhost, mxs.$mydomain, $mydomain
mydomain = example.ru
myhostname = example.ru
mynetworks = 192.168.0.0/24, 127.0.0.0/8
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
non_smtpd_milters = unix:/run/opendkim/opendkim.sock
notify_classes = bounce, delay, resource, software, protocol
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
shlib_directory = /usr/lib64/postfix/${mail_version}
smtp_tls_CAfile = /etc/ssl/postfix/ca-intermed.crt
smtp_tls_cert_file = /etc/ssl/postfix/example_tech.crt
smtp_tls_ciphers = high
smtp_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, CAMELLIA128, 3DES, CAMELLIA256, RSA+AES, eNULL
smtp_tls_key_file = /etc/ssl/postfix/example_tech.key
smtp_tls_loglevel = 1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_note_starttls_offer = yes
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_tls_session_cache_timeout = 3600s
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP
smtpd_client_restrictions = reject_unknown_client_hostname
smtpd_error_sleep_time = ${stress?0}${stress:10s}
smtpd_hard_error_limit = ${stress?3}${stress:20}
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname
smtpd_milters = unix:/run/opendkim/opendkim.sock
smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, reject_unverified_recipient
smtpd_reject_unlisted_recipient = yes
smtpd_reject_unlisted_sender = yes
smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unverified_sender
smtpd_soft_error_limit = 2
smtpd_tls_CAfile = /etc/ssl/postfix/ca-intermed.crt
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/postfix/example_tech.crt
smtpd_tls_ciphers = high
smtpd_tls_dh1024_param_file = /etc/ssl/postfix/postfix.dh.param
smtpd_tls_eecdh_grade = ultra
smtpd_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, CAMELLIA128, 3DES, CAMELLIA256, RSA+AES, eNULL
smtpd_tls_key_file = /etc/ssl/postfix/example_tech.key
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_security_level = encrypt
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
strict_rfc821_envelopes = yes
tls_eecdh_ultra_curve = secp384r1, X448, X25519
tls_high_cipherlist = kEECDH:+kEECDH+SHA:kEDH:+kEDH+SHA:+kEDH+CAMELLIA:kECDH:+kECDH+SHA:kRSA:+kRSA+SHA:+kRSA+CAMELLIA:!aNULL:!eNULL:!SSLv2:!RC4:!MD5:!DES:!EXP:!SEED:!IDEA:!3DES:!PSK:!SRP:!SHA
tls_preempt_cipherlist = yes
tls_random_source = dev:/dev/urandom
tls_ssl_options = NO_COMPRESSION, 0x40000000
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
keeper_b ★★★ ()
Ответ на: комментарий от constin
smtp       inet  n       -       n       -       -       smtpd
pickup     unix  n       -       n       60      1       pickup
cleanup    unix  n       -       n       -       0       cleanup
qmgr       unix  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       n       1000?   1       tlsmgr
rewrite    unix  -       -       n       -       -       trivial-rewrite
bounce     unix  -       -       n       -       0       bounce
defer      unix  -       -       n       -       0       bounce
trace      unix  -       -       n       -       0       bounce
verify     unix  -       -       n       -       1       verify
flush      unix  n       -       n       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       n       -       -       smtp
relay      unix  -       -       n       -       -       smtp -o syslog_name=postfix/$service_name
showq      unix  n       -       n       -       -       showq
error      unix  -       -       n       -       -       error
retry      unix  -       -       n       -       -       error
discard    unix  -       -       n       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       n       -       -       lmtp
anvil      unix  -       -       n       -       1       anvil
scache     unix  -       -       n       -       1       scache
postlog    unix-dgram n  -       n       -       1       postlogd

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

И естественно я несу за это полную ответственность.

Сомневаюсь, что бизнес в курсе про твое решение и твоих «правила» пользования почтой для контрагентов.

Ты наверно даже не задумывался какие потери это может принести.

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

я могу ошибаться, но думаю, что reject_unverified_recipient в конфиге зря. Оно выдает код 450 вместо 550, что может заставить сервер отправителя думать, что ошибка временная. Сервер пытается доставить письмо еще пару дней и только потом пишет аутлуп.

В main.cf дофига лишнего.

Но если reject_unverified_recipient было написано осознанно и есть на это причины, то можно подправить код ошибки через

unverified_recipient_reject_code

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

я поясню, я никогда не сталкивался с 450 4.1.1, а у меня большой опыт. Поэтому полез смотреть в мануал и там написано, про временную ошиюку. 550 5.1.1 же это обычный код в этой ситуации, он говорит четко - такого юзера нет, иди в жопу. И все, отправлющий сервер должен сразу отдать юзеру аутлуп.

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

Ты наверно даже не задумывался какие потери это может принести.

Если потери от потери (лол) писем меньше чем от простоя всего почтового сервера вставшего раком из-за спама, это вполне оправдано. Зависит от масштабов, в том числе масштабов бизнеса.

Крупный почтовый сервер с блэкджеком и шлю… релеями и прочим обвесом в таком костыле, естественно, не нуждается.
Но алё, если человек задаёт такие вопросы, вряд ли его допустят до чего-то подобного.

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

Да, оно! Спасибо!

Только ещё один маленький вопрос. bounce сообщение формирует мой сервер или тот сервер откуда отправляли? Просто проверил яндексом и гуглом, они своё сообщение формируют, а я чёт думал, что мой сервер должен, а они просто как входящую почту получают это сообщение.

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

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

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

Ну включи ты голову.

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

Ты сам пойдешь в военкомат сообщать, что не получил повестку, или пусть они как-то сами?

anonymous ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.