Kerberos com o backend LDAP ainda usando db2

1

Eu instalei e configurei o LDAP, kerberos instalados e configurados para usar o LDAP como backend, como segue:

[dbdefaults]
    ldap_kerberos_container_dn = dc=voltage,dc=com

[dbmodules]
    openldap_ldapconf = {
            db_library = kldap
            ldap_kdc_dn = "cn=admin,dc=voltage,dc=com"

            # this object needs to have read rights on
            # the realm container, principal container and realm sub-trees
            ldap_kadmind_dn = "cn=admin,dc=voltage,dc=com"

            # this object needs to have read and write rights on
            # the realm container, principal container and realm sub-trees
            ldap_service_password_file = /etc/krb5kdc/service.keyfile
            ldap_servers = ldap://ldap.voltage.com
            ldap_conns_per_server = 5
    }

No entanto, quando entro em kadmin.local e tento:

addprinc -x dn="uid=sam,ou=ssn,dc=voltage,dc=com" sam

Eu obtenho

add_principal: Unsupported argument "dn=uid=sam,ou=ssn,dc=voltage,dc=com" for db2 while creating "[email protected]".

o que significa que o kadmin está tentando adicionar o principal ao db2 e não ao backend LDAP, certo?

Eu também fiz:

sudo kdb5_ldap_util -D  cn=admin,dc=example,dc=com create -subtrees \
dc=example,dc=com -r EXAMPLE.COM -s -H ldap://ldap01.example.com

sudo kdb5_ldap_util -D  cn=admin,dc=example,dc=com stashsrvpw -f \
/etc/krb5kdc/service.keyfile cn=admin,dc=example,dc=com

após renomear o exemplo para voltagem naturalmente e ambos os comandos foram executados com sucesso e mostraram que o novo REALM foi criado

Qualquer ajuda é apreciada

    
por Sam Hammamy 06.10.2012 / 19:25

2 respostas

2

Eu estava recebendo o mesmo erro até atualizar meu /etc/krb5.conf e /var/kerberos/krb5kdc/kdc.conf adicionando o database_module na seção realms e adicionando as seções dbdefaults e dbmodules. Estou usando o RHEL 6, Abaixo estão exemplos baseados em meu krb5.conf e kdc.conf.

/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 = VOLTAGE.COM
   dns_lookup_realm = false
   dns_lookup_kdc = false
   ticket_lifetime = 24h
   renew_lifetime = 7d
   forwardable = true

  [realms]
   VOLTAGE.COM = {
    kdc = server1.voltage.com
    admin_server = server1.voltage.com
    default_domain = voltage.com
    database_module = openldap_ldapconf
   }

  [domain_realm]
   .voltage.com = VOLTAGE.COM
   voltage.com = VOLTAGE.COM

  [appdefaults]
   pam = {
     debug = false
     ticket_lifetime = 36000
     renew_lifetime = 36000
     forwardable = true
     krb4_convert = false
   }

  [dbdefaults]
   ldap_kerberos_container_dn = dc=voltage,dc=com

  [dbmodules]
   openldap_ldapconf = {
       db_library = kldap
       ldap_kdc_dn = "cn=admin,dc=voltage,dc=com"
       ldap_kadmind_dn = "cn=admin,dc=voltage,dc=com"
       ldap_service_password_file = /var/kerberos/krb5kdc/service.keyfile
       ldap_servers = ldaps://ldap.voltage.com 
       ldap_conns_per_server = 5
  }

/var/kerberos/krb5kdc/kdc.conf

  [kdcdefaults]
   kdc_ports = 88
   kdc_tcp_ports = 88

  [realms]
   VOLTAGE.COM = {
    database_module = openldap_ldapconf
    master_key_type = aes256-cts
    key_stash_file = /var/kerberos/krb5kdc/.k5.VOLTAGE.COM
    acl_file = /var/kerberos/krb5kdc/kadm5.acl
    dict_file = /usr/share/dict/words
    admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
    supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
   }

  [dbdefaults]
   ldap_kerberos_container_dn = dc=voltage,dc=com

  [dbmodules]
   openldap_ldapconf = {
       db_library = kldap
       ldap_kdc_dn = "cn=admin,dc=voltage,dc=com"
       ldap_kadmind_dn = "cn=admin,dc=voltage,dc=com"
       ldap_service_password_file = /var/kerberos/krb5kdc/service.keyfile
       ldap_servers = ldaps://ldap.voltage.com
       ldap_conns_per_server = 5
}

Em seguida, reinicie o processo do servidor Kerberos e adicione seus princípios de usuário.

Espero que ajude!

    
por 09.10.2012 / 06:05
1

Talvez você esteja perdendo "database_module = openldap_ldapconf" no seu território

[realms]
    BEISPIEL.DE = {
            kdc = kdc01.beispiel.de
            kdc = kdc02.beispiel.de
            admin_server = kdc01.beispiel.de
            admin_server = kdc02.beispiel.de
            default_domain = beispiel.de
            database_module = openldap_ldapconf    # MISSING!?!?!?!
    }
    
por 18.01.2014 / 16:42