Adicione GSSAPI ao OpenLdap em supportedSASLMechanisms

6

Estou procurando como adicionar o suporte GSSAPI ao meu OpenLDAP ?

Configuração atual

MIT Kerberos V + OpenLDAP
Kerberos bind to openldap
Able to issue kerberos tickets to my users (with kinit exampluser)
Able to ldapsearch -x uid=exampluser

Lado do Openldap

server% ldapsearch -x -H ldapi:/// -b "" -LLL -s base -Z supportedSASLMechanisms

    ldap_start_tls: Protocol error (2)
    additional info: unsupported extended operation
dn:
supportedSASLMechanisms: DIGEST-MD5
supportedSASLMechanisms: EXTERNAL
supportedSASLMechanisms: CRAM-MD5
supportedSASLMechanisms: NTLM
supportedSASLMechanisms: LOGIN
supportedSASLMechanisms: PLAIN

Lado do cliente

client% ldapsearch uid=exampleuser

SASL/GSSAPI authentication started
ldap_sasl_interactive_bind_s: Authentication method not supported (7)
    additional info: SASL(-4): no mechanism available: Couldn't find mech GSSAPI

Cliente ldap.conf

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE        dc=example,dc=com
URI         ldap://ldap.example.com
SASL_MECH   GSSAPI

Obviamente, o erro é claro o suficiente para explicar que minha solicitação de ldap não encontrou o mecanismo para a autenticação.

Já passei por muitas explicações, mas ainda não consigo encontrar em parte alguma como " adicionar " esse mecanismo.

Obrigado O que é o SASL / GSSAPI? para todas as explicações impressionantes.

Atualizado para o usuário 473183469

Gerei um keytab apenas para o ldap, que eu copiei em /etc/ldap/ldap.keytab , e editei o / etc / default / slapd de acordo com o link pedindo para descomentar e dar o caminho para exportar KRB5_KTNAME = / etc / ldap / ldap. keytab

Esse keytab ldap foi gerado assim

kadmin: addprinc -randkey ldap/[email protected]
kadmin: ktadd -k ~/ldap.keytab ldap/[email protected]

Eu também tenho um /etc/krb5.keytab que foi criado no começo da instalação

kadmin.local:  listprincs
[email protected]
K/[email protected]
krbtgt/[email protected]
kadmin/[email protected]
kadmin/[email protected]
kadmin/[email protected]
kadmin/[email protected]
[email protected] (also in the ldap, can issue a ticket and everything)
[email protected] (same for him)
ldap/[email protected]

O resultado do ktutil

# ktutil
ktutil:  read_kt /etc/ldap.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    2            ldap/[email protected]
   2    2            ldap/[email protected]
   3    2            ldap/[email protected]
   4    2            ldap/[email protected]
ktutil:  read_kt /etc/krb5.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    2            ldap/[email protected]
   2    2            ldap/[email protected]
   3    2            ldap/[email protected]
   4    2            ldap/[email protected]
   5    2           kadmin/[email protected]
   6    2           kadmin/[email protected]
   7    2           kadmin/[email protected]
   8    2           kadmin/[email protected]
    
por Tolsadus 23.02.2017 / 17:55

3 respostas

1

RESOLVIDO

Eu estava com falta de SASL_MECH GSSAPI e SASL_REAM em /etc/ldap/ldap.conf

[Tue Feb 28 13:48 root:ldap] [~] # cat /etc/ldap/ldap.conf
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE    dc=example,dc=com
URI ldap://ldap.example.com    
SASL_MECH GSSAPI
SASL_REALM EXAMPLE.COM

Agora posso apenas ldapsearch uid = user diretamente com um ticket do kerberos e obter o

SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 112
SASL data security layer installed.
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> (default) with scope subtree
# filter: uid=user
# requesting: ALL
#

Claro, se eu não tiver um ticket do kerberos (o que faz sentido)

client% ldapsearch uid=gleger
SASL/GSSAPI authentication started
ldap_sasl_interactive_bind_s: Local error (-2)
    additional info: SASL(-1): generic failure: GSSAPI Error:  Miscellaneous failure (see text (No credentials cache file found)
    
por 28.02.2017 / 12:53
1

Você vai querer alterar sua configuração sasl para slapd, geralmente /etc/sasl2/slapd.conf , para incluir gssapi.

Por exemplo:

mech_list: external gssapi plain
pwcheck_method: saslauthd

Você precisará reiniciar o slapd depois.

    
por 27.02.2017 / 20:46
0

Você não está simplesmente perdendo o arquivo /etc/krb5.keytab tendo como SPN ldap/fdqn ?

Eu não acho que você precise configurar qualquer switch SASL relacionado ao GSSAPI no OpenLDAP, já que os padrões são bons e forçando, por exemplo. o reino é mais problemático que outro.

    
por 24.02.2017 / 12:08