On Mon, Aug 11, 2025 at 03:25:51PM -0600, James Feeney wrote:

> After a little more testing, I see that, not only must the
> restrictions be placed at the correct stage, and *no matter whether
> smtpd_delay_reject is yes or no*, at any stage, the restrictions must
> *also* be placed in the correct sequence, within that stage.  So then,
> for my port 465 use case:
> ----
>  -o 
> smtpd_relay_restrictions=permit_sasl_authenticated,reject_unauth_destination
> ----
> will work, but:
> ----
>  -o 
> smtpd_relay_restrictions=reject_unauth_destination,permit_sasl_authenticated
> ----
> will fail with "554" and "Relay access denied;".

For what should be obvious reasons. :-)  A restriction grammar without
rule order/precedence is unusable.  Either all the deny rules are
useless, or none of them can be preëmpted by specific exclusions.

> Your summary would be a useful addition to the SASL documentation -
> though better without the "for what should be obvious reasons" bit.

Got to get those said before the gate is shut. :-)

> ----
> The LOGIN mechanism (not to be confused with IMAP4's LOGIN command) is
> an undocumented, unsupported mechanism. It's included in the Cyrus
> SASL distribution for the sake of SMTP servers that might want to
> interoperate with old clients. Do not enable this mechanism unless you
> know you're going to need it. When enabled, it verifies passwords the
> same way the PLAIN mechanism does.
> ----

LOGIN is rather outdated.  PLAIN is quite sufficient, my MSA does not
support LOGIN.

> ----
> The Cyrus SASL library also supports some "shared secret"
> authentication methods: CRAM-MD5 and its successor DIGEST-MD5. These
> methods rely on the client and the server sharing a "secret", usually
> a password. The server generates a challenge and the client a response
> proving that it knows the shared secret. This is much more secure than
> simply sending the secret over the wire proving that the client knows
> it. 
> ----

Don't.  They address completely the wrong threat model.  Transmission
confidentiality is better handled with TLS.  And with PLAIN the server
stores only password hashes, while while CRAM-MD5 it stores password
cleartext.  So unless your users are issued strongly random
server-specific passwords (like all my "PLAIN" users) that they'd never
reuse for any other purpose, you should avoid CRAM-MD5, ... and stick to
PLAIN.

> Sure enough.  Using:
> ----
>   -o smtpd_sasl_mechanism_filter=plain,login,CRAM-MD5,DIGEST-MD5
> ----
> gnome evolution supports CRAM-MD5 - though DIGEST-MD5 was not allowed
> - and it works.  That is on Arch Linux with libsasl 2.1.28-5.

It works, but you don't want to use it.

-- 
    Viktor.  🇺🇦 Слава Україні!
_______________________________________________
Postfix-users mailing list -- postfix-users@postfix.org
To unsubscribe send an email to postfix-users-le...@postfix.org

Reply via email to