Victor Duchovni:
> On Thu, May 28, 2009 at 04:02:37PM +0800, Norbert P. Copones wrote:
> 
> > this setting is fine in 2.5 and it guarantees that smtp auth
> > only operates in tls. this also prevents user at my domain
> > from spoofing as it requires authentication.
> > 
> > however, a change in 2.6 in sasl broke this setup.
> > 
> > using the config above, the following warning will occur since sasl
> > will only activate during tls.
> > 
> > warning: restriction 'reject_authenticated_sender_sender_login_mismatch'
> > ignored: no SASL support
> > warning: restriction 'reject_unauthenticated_sender_sender_login_mismatch'
> > ignored: no SASL support
> > 
> > 
> > my workaround for this is to disable smtpd_tls_auth_only but this
> > also let user authenticate in plain-text mode.
> > 
> > any other workarounds?
> 
> Try this patch:
> 
> Index: src/smtpd/smtpd_check.c
> --- src/smtpd/smtpd_check.c   28 Apr 2009 22:03:36 -0000      1.1.1.13
> +++ src/smtpd/smtpd_check.c   28 May 2009 08:49:06 -0000
> @@ -3314,7 +3314,8 @@
>       * Reject if the client is not logged in and the sender address has an
>       * owner.
>       */
> -    if (smtpd_sasl_is_active(state) && state->sasl_username == 0) {
> +    if (!smtpd_sasl_is_active(state)
> +     || (smtpd_sasl_is_active(state) && state->sasl_username == 0)) {
>       reply = smtpd_resolve_addr(sender);
>       if (reply->flags & RESOLVE_FLAG_FAIL)
>           reject_dict_retry(state, sender);

I prefer to stay closer to the original semantics; don't touch
uninitialized SASL-related data and don't call SASL-related functions
while SASL is not activated.

        Wietse

Postfix 2.5:
    if (var_smtpd_sasl_enable && state->sasl_username == 0) {
Postfix 2.6:
    if (var_smtpd_sasl_enable 
        && (smtpd_sasl_is_active(state) == 0 || state->sasl_username == 0)) {

> @@ -3766,7 +3767,7 @@
>                                         state->sender, SMTPD_NAME_SENDER);
>       } else if (strcasecmp(name, REJECT_AUTH_SENDER_LOGIN_MISMATCH) == 0) {
>  #ifdef USE_SASL_AUTH
> -         if (smtpd_sasl_is_active(state)) {
> +         if (var_smtpd_sasl_enable) {
>               if (state->sender && *state->sender)
>                   status = reject_auth_sender_login_mismatch(state, 
> state->sender);
>           } else

Postfix 2.5:
            if (var_smtpd_sasl_enable) {
                if (state->sender && *state->sender)
                    status = reject_auth_sender_login_mismatch(state, state->sen
Postfix 2.6:
            if (var_smtpd_sasl_enable) {
                if (smtpd_sasl_is_active(state) 
                    && state->sender && *state->sender)
                    status = reject_auth_sender_login_mismatch(state, state->sen

> @@ -3774,7 +3775,7 @@
>               msg_warn("restriction `%s' ignored: no SASL support", name);
>       } else if (strcasecmp(name, REJECT_UNAUTH_SENDER_LOGIN_MISMATCH) == 0) {
>  #ifdef USE_SASL_AUTH
> -         if (smtpd_sasl_is_active(state)) {
> +         if (var_smtpd_sasl_enable) {
>               if (state->sender && *state->sender)
>                   status = reject_unauth_sender_login_mismatch(state, 
> state->sender);
>           } else

Postfix 2.5:
            if (var_smtpd_sasl_enable) {
                if (state->sender && *state->sender)
                    status = reject_auth_sender_login_mismatch(state, state->sen
Postfix 2.6:
            if (var_smtpd_sasl_enable) {
                if (smtpd_sasl_is_active(state) 
                    && state->sender && *state->sender)
                    status = reject_auth_sender_login_mismatch(state, state->sen

> -- 
>       Viktor.
> 
> Disclaimer: off-list followups get on-list replies or get ignored.
> Please do not ignore the "Reply-To" header.
> 
> To unsubscribe from the postfix-users list, visit
> http://www.postfix.org/lists.html or click the link below:
> <mailto:[email protected]?body=unsubscribe%20postfix-users>
> 
> If my response solves your problem, the best way to thank me is to not
> send an "it worked, thanks" follow-up. If you must respond, please put
> "It worked, thanks" in the "Subject" so I can delete these quickly.
> 
> 

Reply via email to