Re: Getting Postfix to work with cyrus-sasl GSSAPI mechanism

Dan White <[email protected]>
Newsgroups gmane.comp.security.cyrus.sasl
Message-ID <[email protected]>
On 04/30/13 11:45 -0700, Matthew Larsen wrote:
>I'm trying to get Postfix to authenticate mail clients on our Active 
>Directory domain with the GSSAPI mechanism.  I'm fairly sure I've got 
>something wrong with the sasl configuration, and I'm hoping to get 
>some pointers on what I might be doing wrong.

>C:\Users\MrUser\Documents>klist

>Cached Tickets: (2)

>* Client receives a messages saying, "S: 535 5.7.8 Error: 
>authentication falied: generic failure"

Verify gssapi support was compiled as a shared library or was statically
compiled into your libsasl2 library. Typically you would verify that with
pluginviewer, if it's available.

>When this happens this is shown in my authentication log (/var/log/secure):
>
>Apr 30 10:58:18 SBSMTPNV03 postfix/smtpd[17554]: auxpropfunc error 
>invalid parameter supplied
>Apr 30 10:58:18 SBSMTPNV03 postfix/smtpd[17554]: _sasl_plugin_load 
>failed on sasl_auxprop_plug_init for plugin: ldapdb

As was mentioned previously, these are not relevant to the problem. You can
suppress those errors by adding this to your /etc/sasl2/smtpd.conf:

auxprop_plugin: sasldb

>This is what is shown in the postfix log:
>
>Apr 30 10:58:18 SBSMTPNV03 postfix/smtpd[17554]: warning: SASL 
>authentication failure: GSSAPI Error: Unspecified GSS failure.  Minor 
>code may provide more information ()
>Apr 30 10:58:18 SBSMTPNV03 postfix/smtpd[17554]: warning: 
>nvit01b.EXAMPLE.com[10.20.2.0]: SASL GSSAPI authentication failed: 
>generic failure

>When I try testing my SASL configuration with the sample-server and 
>sample client I get the same message as when Postfix tries to 
>authenticate with SASL:
>
>Along my path at trying to figure this out, and referring to another 
>tread on this list, I tried this:
>
># ldapwhoami -Y GSSAPI -D "CN=Matthew Larsen,OU=IT,OU=SRS,OU=Users,OU=SITENAME,OU=_Corporate,DC=EXAMPLE,DC=COM" 
>-H ldap://10.20.1.3
>SASL/GSSAPI authentication started
>SASL username: [email protected]
>SASL SSF: 56
>SASL data security layer installed.
>u:EXAMPLE\MrUser

Your -D parameter is ignored here. Your authc identity should be derived
via your ticket.

On this system, try using smtptest, which is distributed with cyrus imapd:

smtptest -m GSSAPI <hostname>

>Here's some supporting information to fill in information gaps:
>
>/////////////////
>
># saslauthd -v
>saslauthd 2.1.23
>authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap
>
>
>I've also tried adding to my Postfix main.cf file
>import_environment = KRB5_KTNAME=FILE:/etc/postfix/smtp.keytab

If your cyrus gssapi plugin was compiled against heimdal, you may need to
add this to your /etc/sasl2/smtpd.conf instead:

keytab: /etc/postfix/smtp.keytab

># saslfinger -s
>saslfinger - postfix Cyrus sasl configuration Tue Apr 30 10:47:46 PDT 2013
>version: 1.0.2
>mode: server-side SMTP AUTH
>
>-- basics --
>Postfix: 2.6.6
>System: CentOS release 6.4 (Final)
>
>-- smtpd is linked to --
>        libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00007f917a6a2000)
>
>-- active SMTP AUTH and TLS parameters for smtpd --
>broken_sasl_auth_clients = yes
>smtpd_sasl_auth_enable = yes
>smtpd_sasl_local_domain = $mydomain
>smtpd_sasl_security_options = noanonymous,noplaintext
>
>
>-- listing of /usr/lib64/sasl2 --
>total 432
>drwxr-xr-x.  2 root root  4096 Apr 23 15:49 .
>dr-xr-xr-x. 27 root root 20480 Apr 23 16:56 ..
>-rwxr-xr-x.  1 root root 18776 Nov 27 03:49 libanonymous.so
>-rwxr-xr-x.  1 root root 18776 Nov 27 03:49 libanonymous.so.2
>-rwxr-xr-x.  1 root root 18776 Nov 27 03:49 libanonymous.so.2.0.23
>-rwxr-xr-x.  1 root root 31256 Nov 27 03:49 libgssapiv2.so
>-rwxr-xr-x.  1 root root 31256 Nov 27 03:49 libgssapiv2.so.2
>-rwxr-xr-x.  1 root root 31256 Nov 27 03:49 libgssapiv2.so.2.0.23
>-rwxr-xr-x.  1 root root 18784 Nov 27 03:49 libldapdb.so
>-rwxr-xr-x.  1 root root 18784 Nov 27 03:49 libldapdb.so.2
>-rwxr-xr-x.  1 root root 18784 Nov 27 03:49 libldapdb.so.2.0.23
>-rwxr-xr-x.  1 root root 18808 Nov 27 03:49 liblogin.so
>-rwxr-xr-x.  1 root root 18808 Nov 27 03:49 liblogin.so.2
>-rwxr-xr-x.  1 root root 18808 Nov 27 03:49 liblogin.so.2.0.23
>-rwxr-xr-x.  1 root root 18808 Nov 27 03:49 libplain.so
>-rwxr-xr-x.  1 root root 18808 Nov 27 03:49 libplain.so.2
>-rwxr-xr-x.  1 root root 18808 Nov 27 03:49 libplain.so.2.0.23
>-rwxr-xr-x.  1 root root 22784 Nov 27 03:49 libsasldb.so
>-rwxr-xr-x.  1 root root 22784 Nov 27 03:49 libsasldb.so.2
>-rwxr-xr-x.  1 root root 22784 Nov 27 03:49 libsasldb.so.2.0.23
>
>-- listing of /etc/sasl2 --
>total 12
>drwxr-xr-x.  2 root root 4096 Apr 24 15:22 .
>drwxr-xr-x. 61 root root 4096 Apr 29 16:46 ..
>-rw-r--r--   1 root root   69 Apr 23 11:30 smtpd.conf
>
>
>
>
>-- content of /etc/sasl2/smtpd.conf --
>log_level: 6
>pwcheck_method: saslauthd
>mech_list: gssapi plain login
>
>
>-- active services in /etc/postfix/master.cf --
># service type  private unpriv  chroot  wakeup  maxproc command + args
>#               (yes)   (yes)   (yes)   (never) (100)
>smtp      inet  n       -       n       -       -       smtpd
>pickup    fifo  n       -       n       60      1       pickup
>cleanup   unix  n       -       n       -       0       cleanup
>qmgr      fifo  n       -       n       300     1       qmgr
>tlsmgr    unix  -       -       n       1000?   1       tlsmgr
>rewrite   unix  -       -       n       -       -       trivial-rewrite
>bounce    unix  -       -       n       -       0       bounce
>defer     unix  -       -       n       -       0       bounce
>trace     unix  -       -       n       -       0       bounce
>verify    unix  -       -       n       -       1       verify
>flush     unix  n       -       n       1000?   0       flush
>proxymap  unix  -       -       n       -       -       proxymap
>proxywrite unix -       -       n       -       1       proxymap
>smtp      unix  -       -       n       -       -       smtp
>relay     unix  -       -       n       -       -       smtp
>        -o smtp_fallback_relay=
>showq     unix  n       -       n       -       -       showq
>error     unix  -       -       n       -       -       error
>retry     unix  -       -       n       -       -       error
>discard   unix  -       -       n       -       -       discard
>local     unix  -       n       n       -       -       local
>virtual   unix  -       n       n       -       -       virtual
>lmtp      unix  -       -       n       -       -       lmtp
>anvil     unix  -       -       n       -       1       anvil
>scache    unix  -       -       n       -       1       scache
>
>-- mechanisms on localhost --
>
>-- end of saslfinger output --
>
>Kerberos config file:
>
># cat /etc/krb5.conf
>[logging]
> default = FILE:/var/log/krb5libs.log
> kdc = FILE:/var/log/krb5kdc.log
> admin_server = FILE:/var/log/kadmind.log
>
>[libdefaults]
> default_realm = EXAMPLE.COM
> dns_lookup_realm = false
> dns_lookup_kdc = false
> ticket_lifetime = 24h
> renew_lifetime = 7d
> forwardable = true
>
>[realms]
> EXAMPLE.COM = {
>  kdc = dcnv01.EXAMPLE.com
>  admin_server = dcnv01.EXAMPLE.com
>  default_domain = EXAMPLE.com
> }
>
>[domain_realm]
> .EXAMPLE.com = EXAMPLE.COM
> EXAMPLE.com = EXAMPLE.COM
>
>
>[appdefaults]
> pam = {
>        debug = false
>        ticket_lifetime = 24h
>        renew_lifetime = 7d
>        forwardable = true
> }

-- 
Dan White
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.