From yyv83 на mail.ru Fri May 2 12:50:10 2025 From: yyv83 на mail.ru (=?UTF-8?B?0K7RgNC40Lkg0K/RgdGC0YDQtdCx0L7Qsg==?=) Date: Fri, 02 May 2025 15:50:10 +0300 Subject: =?UTF-8?B?0L7RiNC40LHQutCwINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40Lgg0L8=?= =?UTF-8?B?0YDQuCDQv9GA0L7QutGB0LjRgNC+0LLQsNC90LjQuCBzbXRw?= Message-ID: <1746190210.816171253@f701.i.mail.ru> Добрый день, уважаемые коллеги! Я тестирую модуль mail и столкнулся с ситуацией некорректного проксирования команды AUTH в smtp сессии. Я хотел бы понять: это ожидаемое поведение или я что-то делаю неправильно? Сервер smtp: postfix 3.7.11, прокси: nginx 1.26.3   Вот мой конфиг контекста mail:     mail {       auth_http localhost/auth;       proxy_pass_error_message on;       xclient off;       starttls off;         server {           listen           465 ssl;           protocol         smtp;           smtp_auth        login plain cram-md5;           proxy_smtp_auth  on;           proxy_protocol   on;           ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem;           ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;       }   }   Для аутентификации используется статическая заглушка:     location = /auth {       add_header Auth-Status OK;       add_header Auth-Server 192.168.0.104;       add_header Auth-Port   10025;       return 204;   }   При взаимодействии smtp клиента через прокси возникает ошибка аутентификации, вот кусок лога: ---- 2025-05-02T15:33:20.716305+03:00 mail-smtp postfix/smtpd[7539]: match_list_match: 192.168.0.101: no match 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 2025-05-02T15:33:20.716446+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-PIPELINING 2025-05-02T15:33:20.716496+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-SIZE 10240000 2025-05-02T15:33:20.716551+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-ETRN 2025-05-02T15:33:20.716622+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-STARTTLS 2025-05-02T15:33:20.716682+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-ENHANCEDSTATUSCODES 2025-05-02T15:33:20.716737+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-8BITMIME 2025-05-02T15:33:20.716785+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-DSN 2025-05-02T15:33:20.716837+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-SMTPUTF8 2025-05-02T15:33:20.716927+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250 CHUNKING 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 2025-05-02T15:33:20.717041+03:00 mail-smtp postfix/smtpd[7539]: < mail-client.yyv83[192.168.0.101]: AUTH PLAIN AG1haWxAeXl2ODMuZHludjYubmV0ADEyMzRRd2VyIQ== 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 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 2025-05-02T15:33:20.717257+03:00 mail-smtp postfix/smtpd[7539]: match_list_match: mail-client.yyv83: no match 2025-05-02T15:33:20.717309+03:00 mail-smtp postfix/smtpd[7539]: match_list_match: 192.168.0.101: no match 2025-05-02T15:33:20.717366+03:00 mail-smtp postfix/smtpd[7539]: send attr request = auth 2025-05-02T15:33:20.717429+03:00 mail-smtp postfix/smtpd[7539]: send attr ident = smtpd:192.168.0.101 2025-05-02T15:33:20.717475+03:00 mail-smtp postfix/smtpd[7539]: private/anvil: wanted attribute: status 2025-05-02T15:33:20.717525+03:00 mail-smtp postfix/smtpd[7539]: input attribute name: status 2025-05-02T15:33:20.717592+03:00 mail-smtp postfix/smtpd[7539]: input attribute value: 0 2025-05-02T15:33:20.717646+03:00 mail-smtp postfix/smtpd[7539]: private/anvil: wanted attribute: rate 2025-05-02T15:33:20.717693+03:00 mail-smtp postfix/smtpd[7539]: input attribute name: rate 2025-05-02T15:33:20.717747+03:00 mail-smtp postfix/smtpd[7539]: input attribute value: 1 2025-05-02T15:33:20.717795+03:00 mail-smtp postfix/smtpd[7539]: private/anvil: wanted attribute: (list terminator) 2025-05-02T15:33:20.717844+03:00 mail-smtp postfix/smtpd[7539]: input attribute name: (end) 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 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 2025-05-02T15:33:20.718029+03:00 mail-smtp postfix/smtpd[7539]: smtp_get: EOF ---   Если клиент взаимодейтсвует с сервером напрямую, то все работает корректно, вот часть лога: --- 2025-05-02T14:58:39.796402+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_list_match: 192.168.0.101: no match 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 2025-05-02T14:58:39.796548+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-PIPELINING 2025-05-02T14:58:39.796659+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-SIZE 10240000 2025-05-02T14:58:39.796768+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-ETRN 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 2025-05-02T14:58:39.796935+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-ENHANCEDSTATUSCODES 2025-05-02T14:58:39.797086+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-8BITMIME 2025-05-02T14:58:39.797165+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-DSN 2025-05-02T14:58:39.797227+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-SMTPUTF8 2025-05-02T14:58:39.797331+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250 CHUNKING 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 2025-05-02T14:58:39.797466+03:00 mail-smtp postfix/smtps/smtpd[6781]: < mail-client.yyv83[192.168.0.101]: AUTH PLAIN 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 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 2025-05-02T14:58:39.797746+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_list_match: mail-client.yyv83: no match 2025-05-02T14:58:39.797821+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_list_match: 192.168.0.101: no match 2025-05-02T14:58:39.797912+03:00 mail-smtp postfix/smtps/smtpd[6781]: send attr request = auth 2025-05-02T14:58:39.798016+03:00 mail-smtp postfix/smtps/smtpd[6781]: send attr ident = 465:192.168.0.101 2025-05-02T14:58:39.798083+03:00 mail-smtp postfix/smtps/smtpd[6781]: private/anvil: wanted attribute: status 2025-05-02T14:58:39.798148+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute name: status 2025-05-02T14:58:39.798233+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute value: 0 2025-05-02T14:58:39.798344+03:00 mail-smtp postfix/smtps/smtpd[6781]: private/anvil: wanted attribute: rate 2025-05-02T14:58:39.798434+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute name: rate 2025-05-02T14:58:39.798508+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute value: 1 2025-05-02T14:58:39.798660+03:00 mail-smtp postfix/smtps/smtpd[6781]: private/anvil: wanted attribute: (list terminator) 2025-05-02T14:58:39.798725+03:00 mail-smtp postfix/smtps/smtpd[6781]: input attribute name: (end) 2025-05-02T14:58:39.798787+03:00 mail-smtp postfix/smtps/smtpd[6781]: query milter states for other event 2025-05-02T14:58:39.798884+03:00 mail-smtp postfix/smtps/smtpd[6781]: milter8_other_event: milter inet:127.0.0.1:8891 2025-05-02T14:58:39.798986+03:00 mail-smtp postfix/smtps/smtpd[6781]: milter8_other_event: milter inet:127.0.0.1:33333 2025-05-02T14:58:39.799049+03:00 mail-smtp postfix/smtps/smtpd[6781]: xsasl_dovecot_server_first: sasl_method PLAIN 2025-05-02T14:58:39.799185+03:00 mail-smtp postfix/smtps/smtpd[6781]: xsasl_dovecot_handle_reply: auth reply: CONT?1? 2025-05-02T14:58:39.799275+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 334 2025-05-02T14:58:39.799434+03:00 mail-smtp postfix/smtps/smtpd[6781]: < mail-client.yyv83[192.168.0.101]: AG1haWxAeXl2ODMuZHludjYubmV0ADEyMzRRd2VyIQ== 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 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 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 ---     -- Юрий Ястребов ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Fri May 2 14:19:12 2025 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 2 May 2025 17:19:12 +0300 Subject: =?koi8-r?B?z9vJwsvBIMHV1MXO1MnGycvB?= =?koi8-r?B?w8nJINDSySDQ0s/L08nSz9fBzsnJ?= smtp In-Reply-To: <1746190210.816171253@f701.i.mail.ru> References: <1746190210.816171253@f701.i.mail.ru> Message-ID: Hello! On Fri, May 02, 2025 at 03:50:10PM +0300, Юрий Ястребов via nginx-ru wrote: > Добрый день, уважаемые коллеги! > Я тестирую модуль mail и столкнулся с ситуацией некорректного проксирования команды AUTH в smtp сессии. > Я хотел бы понять: это ожидаемое поведение или я что-то делаю неправильно? > Сервер smtp: postfix 3.7.11, прокси: nginx 1.26.3 >   > Вот мой конфиг контекста mail: >   >   mail { >       auth_http localhost/auth; >       proxy_pass_error_message on; >       xclient off; >       starttls off; >   >       server { >           listen           465 ssl; >           protocol         smtp; >           smtp_auth        login plain cram-md5; >           proxy_smtp_auth  on; >           proxy_protocol   on; >           ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem; >           ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; >       } >   } >   > Для аутентификации используется статическая заглушка: >   >   location = /auth { >       add_header Auth-Status OK; >       add_header Auth-Server 192.168.0.104; >       add_header Auth-Port   10025; >       return 204; >   } >   > При взаимодействии smtp клиента через прокси возникает ошибка аутентификации, вот кусок лога: > ---- > 2025-05-02T15:33:20.716305+03:00 mail-smtp postfix/smtpd[7539]: match_list_match: 192.168.0.101: no match > 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 > 2025-05-02T15:33:20.716446+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-PIPELINING > 2025-05-02T15:33:20.716496+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-SIZE 10240000 > 2025-05-02T15:33:20.716551+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-ETRN > 2025-05-02T15:33:20.716622+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-STARTTLS > 2025-05-02T15:33:20.716682+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-ENHANCEDSTATUSCODES > 2025-05-02T15:33:20.716737+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-8BITMIME > 2025-05-02T15:33:20.716785+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-DSN > 2025-05-02T15:33:20.716837+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-SMTPUTF8 > 2025-05-02T15:33:20.716927+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250 CHUNKING > 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 [...] > Если клиент взаимодейтсвует с сервером напрямую, то все работает корректно, вот часть лога: > --- > 2025-05-02T14:58:39.796402+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_list_match: 192.168.0.101: no match > 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 > 2025-05-02T14:58:39.796548+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-PIPELINING > 2025-05-02T14:58:39.796659+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-SIZE 10240000 > 2025-05-02T14:58:39.796768+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-ETRN > 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 > 2025-05-02T14:58:39.796935+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-ENHANCEDSTATUSCODES > 2025-05-02T14:58:39.797086+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-8BITMIME > 2025-05-02T14:58:39.797165+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-DSN > 2025-05-02T14:58:39.797227+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-SMTPUTF8 > 2025-05-02T14:58:39.797331+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250 CHUNKING > 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 [...] Судя по логам - у вас аутентификация в postfix'е разрешена только через SSL (smtpd_tls_auth_only = yes). Клиент ходит через SSL и у него, соответственно, работает. А поскольку nginx к почтовым бэкендам ходит без шифрования - ему аутентификацию не разрешают. Лечить, соответственно, проще всего на стороне postfix'а, либо вообще убрав запрет на аутентификацию без SSL, либо сконфигурировав в master.cf отдельный smtpd-сервис для nginx без такого запрета. Если сеть не доверенная и нужно таки шифровать соединения к почтовым бэкендам - то можно в nginx'е сделать дополнительное проксирование через модуль stream, и там включить шифрование соединений к бэкенду (proxy_ssl on). -- Maxim Dounin http://mdounin.ru/ From yyv83 на mail.ru Fri May 2 17:15:43 2025 From: yyv83 на mail.ru (=?UTF-8?B?0K7RgNC40Lkg0K/RgdGC0YDQtdCx0L7Qsg==?=) Date: Fri, 02 May 2025 20:15:43 +0300 Subject: =?UTF-8?B?UmU6INC+0YjQuNCx0LrQsCDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4?= =?UTF-8?B?INC/0YDQuCDQv9GA0L7QutGB0LjRgNC+0LLQsNC90LjQuCBzbXRw?= In-Reply-To: References: <1746190210.816171253@f701.i.mail.ru> Message-ID: <1746206143.215007107@f344.i.mail.ru> Спасибо за подсказку, включил аутентификацию без ssl и заработало… но только без proxy_protocol. С включенным proxy_protocol всё та же ошибка. Аутентификация не может работать через proxy protocol? Или может это какая-то особенность postfix?   >Пятница, 2 мая 2025, 17:19 +03:00 от Maxim Dounin : >  >Hello! > >On Fri, May 02, 2025 at 03:50:10PM +0300, Юрий Ястребов via nginx-ru wrote: > >> Добрый день, уважаемые коллеги! >> Я тестирую модуль mail и столкнулся с ситуацией некорректного проксирования команды AUTH в smtp сессии. >> Я хотел бы понять: это ожидаемое поведение или я что-то делаю неправильно? >> Сервер smtp: postfix 3.7.11, прокси: nginx 1.26.3 >>   >> Вот мой конфиг контекста mail: >>   >>   mail { >>       auth_http localhost/auth; >>       proxy_pass_error_message on; >>       xclient off; >>       starttls off; >>   >>       server { >>           listen           465 ssl; >>           protocol         smtp; >>           smtp_auth        login plain cram-md5; >>           proxy_smtp_auth  on; >>           proxy_protocol   on; >>           ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem; >>           ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; >>       } >>   } >>   >> Для аутентификации используется статическая заглушка: >>   >>   location = /auth { >>       add_header Auth-Status OK; >>       add_header Auth-Server 192.168.0.104; >>       add_header Auth-Port   10025; >>       return 204; >>   } >>   >> При взаимодействии smtp клиента через прокси возникает ошибка аутентификации, вот кусок лога: >> ---- >> 2025-05-02T15:33:20.716305+03:00 mail-smtp postfix/smtpd[7539]: match_list_match: 192.168.0.101: no match >> 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 >> 2025-05-02T15:33:20.716446+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-PIPELINING >> 2025-05-02T15:33:20.716496+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-SIZE 10240000 >> 2025-05-02T15:33:20.716551+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-ETRN >> 2025-05-02T15:33:20.716622+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-STARTTLS >> 2025-05-02T15:33:20.716682+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-ENHANCEDSTATUSCODES >> 2025-05-02T15:33:20.716737+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-8BITMIME >> 2025-05-02T15:33:20.716785+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-DSN >> 2025-05-02T15:33:20.716837+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250-SMTPUTF8 >> 2025-05-02T15:33:20.716927+03:00 mail-smtp postfix/smtpd[7539]: > mail-client.yyv83[192.168.0.101]: 250 CHUNKING >> 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 > >[...] > >> Если клиент взаимодейтсвует с сервером напрямую, то все работает корректно, вот часть лога: >> --- >> 2025-05-02T14:58:39.796402+03:00 mail-smtp postfix/smtps/smtpd[6781]: match_list_match: 192.168.0.101: no match >> 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 >> 2025-05-02T14:58:39.796548+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-PIPELINING >> 2025-05-02T14:58:39.796659+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-SIZE 10240000 >> 2025-05-02T14:58:39.796768+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-ETRN >> 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 >> 2025-05-02T14:58:39.796935+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-ENHANCEDSTATUSCODES >> 2025-05-02T14:58:39.797086+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-8BITMIME >> 2025-05-02T14:58:39.797165+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-DSN >> 2025-05-02T14:58:39.797227+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250-SMTPUTF8 >> 2025-05-02T14:58:39.797331+03:00 mail-smtp postfix/smtps/smtpd[6781]: > mail-client.yyv83[192.168.0.101]: 250 CHUNKING >> 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 > >[...] > >Судя по логам - у вас аутентификация в postfix'е разрешена только >через SSL (smtpd_tls_auth_only = yes). Клиент ходит через SSL и у >него, соответственно, работает. А поскольку nginx к почтовым >бэкендам ходит без шифрования - ему аутентификацию не разрешают. > >Лечить, соответственно, проще всего на стороне postfix'а, либо >вообще убрав запрет на аутентификацию без SSL, либо >сконфигурировав в master.cf отдельный smtpd-сервис для nginx без >такого запрета. > >Если сеть не доверенная и нужно таки шифровать соединения к >почтовым бэкендам - то можно в nginx'е сделать дополнительное >проксирование через модуль stream, и там включить шифрование >соединений к бэкенду (proxy_ssl on). > >-- >Maxim Dounin >http://mdounin.ru/     -- Юрий Ястребов   ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Fri May 2 17:55:06 2025 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 2 May 2025 20:55:06 +0300 Subject: =?koi8-r?B?z9vJwsvBIMHV1MXO1MnGycvB?= =?koi8-r?B?w8nJINDSySDQ0s/L08nSz9fBzsnJ?= smtp In-Reply-To: <1746206143.215007107@f344.i.mail.ru> References: <1746190210.816171253@f701.i.mail.ru> <1746206143.215007107@f344.i.mail.ru> Message-ID: Hello! On Fri, May 02, 2025 at 08:15:43PM +0300, Юрий Ястребов via nginx-ru wrote: > Спасибо за подсказку, включил аутентификацию без ssl и > заработало… но только без proxy_protocol. С > включенным proxy_protocol всё та же ошибка. Аутентификация не > может работать через proxy protocol? Или может это какая-то > особенность postfix? Поддержку PROXY protocol в Postfix надо явно включать (smtpd_upstream_proxy_protocol = haproxy). При включённом - вроде бы должно работать (не проверял, впрочем; и не понятно, как там осуществляется контроль доступа - кажется, никак, и предполагается, что к соответствующему серверу могут подсоединиться только доверенные клиенты). Но смысла в этом не очень много, так как в Postfix есть нормальная поддержка XCLIENT. Использование XCLIENT обеспечивает нормальный контроль доступа через smtpd_authorized_xclient_hosts на стороне Postfix'а, и позволяет передать больше информации (в том числе DNS-имя клиента, если использовать resolver, и SASL login, если таки нормально аутентифицировать пользователей через auth_http; подробнее см. https://freenginx.org/r/xclient). -- Maxim Dounin http://mdounin.ru/ From peter.volkov на gmail.com Thu May 8 08:25:06 2025 From: peter.volkov на gmail.com (Peter Volkov) Date: Thu, 8 May 2025 11:25:06 +0300 Subject: =?UTF-8?B?0JLRgNC10LzRjyDQutC+0LPQtNCwINGH0LDQvdC6INCx0YvQuyDQt9Cw0LrQtdGI0LjRgA==?= =?UTF-8?B?0L7QstCw0L0=?= Message-ID: Привет. У нас nginx стоит в качестве кеша для статики. При запросе файла с сервера я вижу вот такие заголовки: < Server: nginx < Date: Thu, 08 May 2025 08:15:39 GMT < Content-Type: video/mp2t < Content-Length: 4635140 < Connection: keep-alive < Keep-Alive: timeout=20 < Last-Modified: Tue, 17 Sep 2024 13:44:14 GMT < ETag: "66e987ae-46ba04" < X-Cache-Status: HIT < Accept-Ranges: bytes Date - это текущее время запроса. Last-Modified это время создания файла (на бекенде). Вопрос, как можно понять время, когда чанк был закеширован? Я посмотрел список переменных Nginx, но не нашёл ничего подходящего. P.S. это nginx, а не freenginx, но у нас ещё та версия, когда они были едины, поэтому надеюсь это не офтопик тут. -- Peter. ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Thu May 8 13:21:06 2025 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 8 May 2025 16:21:06 +0300 Subject: =?koi8-r?B?99LFzdEgy8/HxMEg3sHOyyDC?= =?koi8-r?B?2cwg2sHLxdvJ0s/Xwc4=?= In-Reply-To: References: Message-ID: Hello! On Thu, May 08, 2025 at 11:25:06AM +0300, Peter Volkov wrote: > Привет. У нас nginx стоит в качестве кеша для статики. При запросе файла с > сервера я вижу вот такие заголовки: > > < Server: nginx > < Date: Thu, 08 May 2025 08:15:39 GMT > < Content-Type: video/mp2t > < Content-Length: 4635140 > < Connection: keep-alive > < Keep-Alive: timeout=20 > < Last-Modified: Tue, 17 Sep 2024 13:44:14 GMT > < ETag: "66e987ae-46ba04" > < X-Cache-Status: HIT > < Accept-Ranges: bytes > > Date - это текущее время запроса. > Last-Modified это время создания файла (на бекенде). > Вопрос, как можно понять время, когда чанк был закеширован? Я посмотрел > список переменных Nginx, но не нашёл ничего подходящего. Если по условиям задачи мы можем доверять заголовку Date от бэкенда (обычно это так, но бывают исключения), то его можно увидеть в переменной $upstream_http_date. Для ответов в кэше это и будет время, когда ответ попал в кэш. Начиная с freenginx 1.27.3 есть также переменная $upstream_cache_age, показывающая суммарное время нахождения ответа в кэше (точнее, кэшах, переданный бэкендом заголовок Age также учитывается), подробнее тут: https://freenginx.org/r/$upstream_cache_age https://freenginx.org/hg/nginx/rev/e46e1ea89ccd > P.S. это nginx, а не freenginx, но у нас ещё та версия, когда они были > едины, поэтому надеюсь это не офтопик тут. Тут в целом нет проблем с любыми обсуждениями. -- Maxim Dounin http://mdounin.ru/