libsasl(5)
π libsasl(5) π
β¨ NAME β¨
okay so the manual name is libsasl, and it's the authentication library ππ
π SYNOPSIS π
libsasl is the Cyrus SASL library, and it handles the communication between an application and the Cyrus SASL authentication framework. it's literally the middle person that makes the two talk π«Ά
π Description π
bestie, this page describes the generic configuration options for the Cyrus SASL authentication library, libsasl β¨
the library handles communication between an application and the Cyrus SASL authentication framework. they both swap info before libsasl can start offering authentication services to the application π¦
the application sends a bunch of data, including the service_name. the service name is the services name as specified by IANA. SMTP servers, for example, send smtp as service_name. libsasl passes this along when things like Kerberos or PAM authentication happen πΈ
configuration options are read either from a file, or passed in by the application through libsasl during library initialization. so many ways to be configured, iconic π
π File-Based configuration π
when an application (server) starts up, it initializes the libsasl library. the application passes app_name (the application name) to the SASL library. that value gets used to build the name of the application specific SASL configuration file. the Cyrus SASL sample-server, for example, sends sample as app_name. using that value, the SASL library searches the configuration directories for a file named sample.conf and reads its configuration options from it π§
π Note: consult the applications manual to find out what app_name it sends to the Cyrus SASL library. don't guess, bestie π
π Application-Based Configuration π
configuration options for libsasl are written down together with the application specific options, inside the application's own configuration file. the application reads them and hands them over to libsasl when it loads the library π
π Note: an example of application-based configuration is the Cyrus IMAP serverimapd. its SASL configuration gets written toimapd.confand passed to the SASL library when the imapd server starts β¨
π Configuration Syntax π
the general format of a Cyrus SASL configuration file goes like this:
π©· Configuration options π©·
configuration options are written each on a single physical line. the parameter and the value must be separated by a colon and a single whitespace:
parameter: value
β οΈ Important: there must be no trailing whitespace after the value, or Cyrus SASL will fail to apply the value appropriately! π
π«§ Comments, Empty lines and whitespace-only lines π«§
empty lines and whitespace-only lines get ignored, and so do lines whose first non-whitespace character is a #. comments are lowkey the best part of any config file π
βοΈ Options βοΈ
there are generic options, plus options specific to the password verification service or the auxiliary property plugin the administrator picked. those specific options are documented in the manuals listed under SEE ALSO, so go check those too π₯
the following configuration parameters are the generic ones:
authdaemond_path(default:/dev/null) β the path to the Courier MTA authdaemond's unix socket. it only applies whenpwcheck_methodis set toauthdaemondπ¦auto_transition:(default:no) β automatically transitions users to other mechanisms when they do a successful plaintext authentication, but only if an auxprop plugin is used πΈ- β οΈ Important: this option does not apply to the
ldapdb(5)plugin. it's a read-only plugin, so it can't do this π noβ do not transition users to other mechanismsnoplainβ transition users to other mechanisms, but only write non-plaintext secretsyesβ transition users to other mechanisms- π Note: the only mechanisms (as currently implemented) that don't use plaintext secrets are OTP and SRP
- β οΈ Important: this option does not apply to the
auxprop_plugin:(default: empty) β a whitespace-separated list of one or more auxiliary plugins, used if thepwcheck_methodparameter specifiesauxpropas an option. plugins get queried in list order. if no plugin is specified, all available plugins get queried π§ldapdbβ use the Cyrus SASLldapdb(5)pluginsasldbβ use the Cyrus SASLsasldb(5)pluginsqlβ use the Cyrus SASLsql(5)plugin
log_level:(default:1) β a numeric log level π0β don't log anything1β log unusual errors2β log all authentication failures3β log non-fatal warnings4β more verbose than 35β more verbose than 46β traces of internal protocols7β traces of internal protocols, including passwords π- β οΈ Important: Cyrus SASL sends log messages to the application that runs it. the application decides whether it forwards those messages to the
sysklogd(8)service, which facility they go to, and which priority the message gets β¨
mech_list:(default: empty) β the optionalmech_listparameter is a whitespace-separated list of one or more mechanisms that are allowed for authentication πpwcheck_method:(default:auxprop) β a whitespace-separated list of one or more mechanisms. Cyrus SASL provides the following ones πauthdaemondβ configures Cyrus SASL to contact the Courier MTAauthdaemond(8)password verification service for password verificationalwaystrueβ lets the pwcheck always succeed (no cap, that's a lot of trust π )auxpropβ Cyrus SASL uses its own plugin infrastructure to verify passwords. theauxprop_pluginparameter controls which plugins get usedpwcheckβ verifies passwords using the Cyrus SASLpwcheck(8)password verification service. β οΈ the pwcheck daemon is considered deprecated and shouldn't be used anymore, so use thesaslauthdpassword verification service instead πsaslauthdβ verifies passwords using the Cyrus SASLsaslauthd(8)password verification service
saslauthd_path:(default: empty) β the path to thesaslauthd(8)run directory, including the/muxnamed pipe π
π See also π
authdaemond(5), ldapdb(5), libsasl(5), saslauthd(8), saslauthd.conf(5), saslpasswd2(5), sasldblistusers2(5), sasldb(5), sql(5) πΈ
π«Ά Author π«Ά
this manual was written for the Debian distribution, because the original program doesn't have a manual page. parts of the documentation were taken from the Cyrus SASL's options.html π§
Patrick Ben Koetter <p@state-of-mind.de>
bestie, that's the whole thing π libsasl(5), dated 15 April 2022, and you are now officially a SASL expert π¦π periodt π β¨
π¦ where this page comes from
- debian bookworm: libsasl2-2 2.1.28+dfsg-10 Β· BSD-4-Clause
- debian bookworm: libsasl2-2 2.1.28+dfsg-10+deb12u1 Β· BSD-4-Clause
- debian trixie: libsasl2-2 2.1.28+dfsg1-9 Β· BSD-3-Clause-Attribution
- ubuntu noble: libsasl2-2 2.1.28+dfsg1-5ubuntu3 Β· BSD-3-Clause-Attribution
- ubuntu noble: libsasl2-2 2.1.28+dfsg1-5ubuntu3.1 Β· BSD-3-Clause-Attribution
- ubuntu questing: libsasl2-2 2.1.28+dfsg1-9ubuntu1 Β· BSD-3-Clause-Attribution
- ubuntu resolute: libsasl2-2 2.1.28+dfsg1-9ubuntu3 Β· BSD-3-Clause-Attribution
- ubuntu stonking: libsasl2-2 2.1.28+dfsg1-11ubuntu2 Β· BSD-3-Clause-Attribution
- π girlified by anthropic/claude-haiku-5.5 on : a language model's rewrite of the original, under its terms