<HTML><BODY><div><div><div>Добрый день, уважаемые коллеги!</div><div>Я тестирую модуль mail и столкнулся с ситуацией некорректного проксирования команды AUTH в smtp сессии.</div><div>Я хотел бы понять: это ожидаемое поведение или я что-то делаю неправильно?</div><div>Сервер smtp: postfix 3.7.11, прокси: nginx 1.26.3</div></div><div> </div><div><div>Вот мой конфиг контекста mail:</div></div><div> </div><div><div> mail {</div><div> auth_http localhost/auth;</div><div> proxy_pass_error_message on;</div><div> xclient off;</div><div> starttls off;</div></div><div> </div><div><div> server {</div><div> listen 465 ssl;</div><div> protocol smtp;</div><div> smtp_auth login plain cram-md5;</div><div> proxy_smtp_auth on;</div><div> proxy_protocol on;</div><div> ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;</div><div> ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;</div><div> }</div><div> }</div></div><div> </div><div><div>Для аутентификации используется статическая заглушка:</div></div><div> </div><div><div> location = /auth {</div><div> add_header Auth-Status OK;</div><div> add_header Auth-Server 192.168.0.104;</div><div> add_header Auth-Port 10025;</div><div> return 204;</div><div> }</div></div><div> </div><div><div>При взаимодействии smtp клиента через прокси возникает ошибка аутентификации, вот кусок лога:</div><div>----</div><div>2025-05-02T15:33:20.716305+03:00 mail-smtp postfix/smtpd[7539]: match_list_match: 192.168.0.101: no match</div><div>2025-05-02T15:33:20.716396+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-mail.yyv83.dynv6.net</div><div>2025-05-02T15:33:20.716446+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-PIPELINING</div><div>2025-05-02T15:33:20.716496+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-SIZE 10240000</div><div>2025-05-02T15:33:20.716551+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-ETRN</div><div>2025-05-02T15:33:20.716622+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-STARTTLS</div><div>2025-05-02T15:33:20.716682+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-ENHANCEDSTATUSCODES</div><div>2025-05-02T15:33:20.716737+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-8BITMIME</div><div>2025-05-02T15:33:20.716785+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-DSN</div><div>2025-05-02T15:33:20.716837+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-SMTPUTF8</div><div>2025-05-02T15:33:20.716927+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250 CHUNKING</div><div>2025-05-02T15:33:20.716985+03:00 mail-smtp postfix/smtpd[7539]: smtp_stream_setup: maxtime=300 enable_deadline=0 min_data_rate=0</div><div>2025-05-02T15:33:20.717041+03:00 mail-smtp postfix/smtpd[7539]: < mail-client.yyv83[192.168.0.101]: AUTH PLAIN AG1haWxAeXl2ODMuZHludjYubmV0ADEyMzRRd2VyIQ==</div><div>2025-05-02T15:33:20.717091+03:00 mail-smtp postfix/smtpd[7539]: match_hostname: smtpd_client_event_limit_exceptions: mail-client.yyv83 ~? 127.0.0.0/8</div><div>2025-05-02T15:33:20.717146+03:00 mail-smtp postfix/smtpd[7539]: match_hostaddr: smtpd_client_event_limit_exceptions: 192.168.0.101 ~? 127.0.0.0/8</div><div>2025-05-02T15:33:20.717257+03:00 mail-smtp postfix/smtpd[7539]: match_list_match: mail-client.yyv83: no match</div><div>2025-05-02T15:33:20.717309+03:00 mail-smtp postfix/smtpd[7539]: match_list_match: 192.168.0.101: no match</div><div>2025-05-02T15:33:20.717366+03:00 mail-smtp postfix/smtpd[7539]: send attr request = auth</div><div>2025-05-02T15:33:20.717429+03:00 mail-smtp postfix/smtpd[7539]: send attr ident = smtpd:192.168.0.101</div><div>2025-05-02T15:33:20.717475+03:00 mail-smtp postfix/smtpd[7539]: private/anvil: wanted attribute: status</div><div>2025-05-02T15:33:20.717525+03:00 mail-smtp postfix/smtpd[7539]: input attribute name: status</div><div>2025-05-02T15:33:20.717592+03:00 mail-smtp postfix/smtpd[7539]: input attribute value: 0</div><div>2025-05-02T15:33:20.717646+03:00 mail-smtp postfix/smtpd[7539]: private/anvil: wanted attribute: rate</div><div>2025-05-02T15:33:20.717693+03:00 mail-smtp postfix/smtpd[7539]: input attribute name: rate</div><div>2025-05-02T15:33:20.717747+03:00 mail-smtp postfix/smtpd[7539]: input attribute value: 1</div><div>2025-05-02T15:33:20.717795+03:00 mail-smtp postfix/smtpd[7539]: private/anvil: wanted attribute: (list terminator)</div><div>2025-05-02T15:33:20.717844+03:00 mail-smtp postfix/smtpd[7539]: input attribute name: (end)</div><div>2025-05-02T15:33:20.717915+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 503 5.5.1 Error: authentication not enabled</div><div>2025-05-02T15:33:20.717973+03:00 mail-smtp postfix/smtpd[7539]: smtp_stream_setup: maxtime=300 enable_deadline=0 min_data_rate=0</div><div>2025-05-02T15:33:20.718029+03:00 mail-smtp postfix/smtpd[7539]: smtp_get: EOF</div><div>---</div></div><div> </div><div><div>Если клиент взаимодейтсвует с сервером напрямую, то все работает корректно, вот часть лога:</div><div>---</div><div>2025-05-02T14:58:39.796402+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_list_match: 192.168.0.101: no match</div><div>2025-05-02T14:58:39.796459+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-mail.yyv83.dynv6.net</div><div>2025-05-02T14:58:39.796548+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-PIPELINING</div><div>2025-05-02T14:58:39.796659+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-SIZE 10240000</div><div>2025-05-02T14:58:39.796768+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-ETRN</div><div>2025-05-02T14:58:39.796847+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-AUTH PLAIN LOGIN</div><div>2025-05-02T14:58:39.796935+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-ENHANCEDSTATUSCODES</div><div>2025-05-02T14:58:39.797086+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-8BITMIME</div><div>2025-05-02T14:58:39.797165+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-DSN</div><div>2025-05-02T14:58:39.797227+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-SMTPUTF8</div><div>2025-05-02T14:58:39.797331+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250 CHUNKING</div><div>2025-05-02T14:58:39.797412+03:00 mail-smtp postfix/smtps/smtpd[6781]: smtp_stream_setup: maxtime=300 enable_deadline=0 min_data_rate=0</div><div>2025-05-02T14:58:39.797466+03:00 mail-smtp postfix/smtps/smtpd[6781]: < mail-client.yyv83[192.168.0.101]: AUTH PLAIN</div><div>2025-05-02T14:58:39.797577+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_hostname: smtpd_client_event_limit_exceptions: mail-client.yyv83 ~? 127.0.0.0/8</div><div>2025-05-02T14:58:39.797655+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_hostaddr: smtpd_client_event_limit_exceptions: 192.168.0.101 ~? 127.0.0.0/8</div><div>2025-05-02T14:58:39.797746+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_list_match: mail-client.yyv83: no match</div><div>2025-05-02T14:58:39.797821+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_list_match: 192.168.0.101: no match</div><div>2025-05-02T14:58:39.797912+03:00 mail-smtp postfix/smtps/smtpd[6781]: send attr request = auth</div><div>2025-05-02T14:58:39.798016+03:00 mail-smtp postfix/smtps/smtpd[6781]: send attr ident = 465:192.168.0.101</div><div>2025-05-02T14:58:39.798083+03:00 mail-smtp postfix/smtps/smtpd[6781]: private/anvil: wanted attribute: status</div><div>2025-05-02T14:58:39.798148+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute name: status</div><div>2025-05-02T14:58:39.798233+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute value: 0</div><div>2025-05-02T14:58:39.798344+03:00 mail-smtp postfix/smtps/smtpd[6781]: private/anvil: wanted attribute: rate</div><div>2025-05-02T14:58:39.798434+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute name: rate</div><div>2025-05-02T14:58:39.798508+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute value: 1</div><div>2025-05-02T14:58:39.798660+03:00 mail-smtp postfix/smtps/smtpd[6781]: private/anvil: wanted attribute: (list terminator)</div><div>2025-05-02T14:58:39.798725+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute name: (end)</div><div>2025-05-02T14:58:39.798787+03:00 mail-smtp postfix/smtps/smtpd[6781]: query milter states for other event</div><div>2025-05-02T14:58:39.798884+03:00 mail-smtp postfix/smtps/smtpd[6781]: milter8_other_event: milter inet:127.0.0.1:8891</div><div>2025-05-02T14:58:39.798986+03:00 mail-smtp postfix/smtps/smtpd[6781]: milter8_other_event: milter inet:127.0.0.1:33333</div><div>2025-05-02T14:58:39.799049+03:00 mail-smtp postfix/smtps/smtpd[6781]: xsasl_dovecot_server_first: sasl_method PLAIN</div><div>2025-05-02T14:58:39.799185+03:00 mail-smtp postfix/smtps/smtpd[6781]: xsasl_dovecot_handle_reply: auth reply: CONT?1?</div><div>2025-05-02T14:58:39.799275+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 334</div><div>2025-05-02T14:58:39.799434+03:00 mail-smtp postfix/smtps/smtpd[6781]: < mail-client.yyv83[192.168.0.101]: AG1haWxAeXl2ODMuZHludjYubmV0ADEyMzRRd2VyIQ==</div><div>2025-05-02T14:58:39.799513+03:00 mail-smtp postfix/smtps/smtpd[6781]: xsasl_dovecot_handle_reply: auth reply: OK?1?user=mail@yyv83.dynv6.net?proxy?host=mail-imap.yyv83</div><div>2025-05-02T14:58:39.799642+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 235 2.7.0 Authentication successful</div><div>2025-05-02T14:58:39.799731+03:00 mail-smtp postfix/smtps/smtpd[6781]: smtp_stream_setup: maxtime=300 enable_deadline=0 min_data_rate=0</div><div>---</div></div></div><div> </div><div> </div><div data-signature-widget="container"><div data-signature-widget="content"><div>--<br>Юрий Ястребов</div></div></div></BODY></HTML>