Este procedimiento utiliza los siguientes parámetros de configuración:
Nombre de dominio = EXAMPLE.COM
Nombre de dominio DNS = example.com
KDC maestro = kdc1.example.com
Servidor de directorios = dsserver.example.com
Principal admin = kws/admin
FMRI para el servicio LDAP = svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1
URL de ayuda en pantalla = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html
Antes de empezar
El host está configurado para usar DNS. Para obtener un mejor rendimiento, instale el KDC y el servicio de directorios LDAP en el mismo servidor. Además, un servidor de directorios debe estar en ejecución. El siguiente procedimiento funciona con servidores con Oracle Directory Server Enterprise Edition. Para obtener más información, consulte Oracle Identity Management - Documentation.
Debe asumir el rol root en el servidor KDC. Para obtener más información, consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .
Siga los pasos a continuación para configurar un KDC con el fin de utilizar el certificado autofirmado de Directory Server.
# /export/sun-ds6.1/ds6/bin/dsadm show-cert -F der /export/sun-ds6.1/directory2 \ defaultCert > /tmp/defaultCert.cert.der
# pktool setpin keystore=nss dir=/var/ldap # chmod a+r /var/ldap/*.db # pktool import keystore=nss objtype=cert trust="CT" \ infile=/tmp/defaultCert.cert.der \ label=defaultCert dir=/var/ldap
Para obtener más información, consulte la página del comando man pktool(1).
En este ejemplo se da por sentado que la entrada cn=directory manager tiene privilegios de administración.
master# /usr/bin/ldapsearch -Z -P /var/ldap -D "cn=directory manager" \ -h dsserver.example.com -b "" -s base objectclass='*' Subject: "CN=dsserver.example.com,CN=636,CN=Directory Server,O=Example Corporation
Tenga en cuenta que la entrada CN=dsserver.example.com debe incluir el nombre de host calificado completo, no una versión corta.
# ldapmodify -h dsserver.example.com -D "cn=directory manager" \ -f /usr/share/lib/ldif/kerberos.ldif
Agregue las entradas siguientes al archivo krb5.conf.
Agregue una entrada para definir database_module para la sección realms.
database_module = LDAP
[dbmodules] LDAP = { ldap_kerberos_container_dn = "cn=krbcontainer,dc=example,dc=com" db_library = kldap ldap_kdc_dn = "cn=kdc service,ou=profile,dc=example,dc=com" ldap_kadmind_dn = "cn=kadmin service,ou=profile,dc=example,dc=com" ldap_cert_path = /var/ldap ldap_servers = ldaps://dsserver.example.com }
Este comando crea krbcontainer y varios otros objetos. También crea una clave maestra /var/krb5/.k5.EXAMPLE.COM y un archivo intermedio para la clave. Para obtener información sobre las opciones del comando, consulte la página del comando man kdb5_ldap_util(1M).
# kdb5_ldap_util -D "cn=directory manager" create -P master-key -r EXAMPLE.COM -s
Estas contraseñas son utilizadas por el KDC cuando se enlaza al servidor de directorios. El KDC utiliza diferentes roles según el tipo de acceso que el KDC está utilizando.
# kdb5_ldap_util stashsrvpw "cn=kdc service,ou=profile,dc=example,dc=com" # kdb5_ldap_util stashsrvpw "cn=kadmin service,ou=profile,dc=example,dc=com"
dn: cn=kdc service,ou=profile,dc=example,dc=com cn: kdc service sn: kdc service objectclass: top objectclass: person userpassword: xxxxxxxx dn: cn=kadmin service,ou=profile,dc=example,dc=com cn: kadmin service sn: kadmin service objectclass: top objectclass: person userpassword: xxxxxxxx
# ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif
# cat << EOF | ldapmodify -h dsserver.example.com -D "cn=directory manager" # Set kadmin ACL for everything under krbcontainer. dn: cn=krbcontainer,dc=example,dc=com changetype: modify add: aci aci: (target="ldap:///cn=krbcontainer,dc=example,dc=com")(targetattr="krb*")(version 3.0;\ acl kadmin_ACL; allow (all)\ userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";) # Set kadmin ACL for everything under the people subtree if there are # mix-in entries for krb princs: dn: ou=people,dc=example,dc=com changetype: modify add: aci aci: (target="ldap:///ou=people,dc=example,dc=com")(targetattr="krb*")(version 3.0;\ acl kadmin_ACL; allow (all)\ userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";) EOF
Debe asignar un nombre a los dominios y los servidores. Para obtener una descripción de este archivo, consulte la página del comando man krb5.conf(4).
kdc1 # pfedit /etc/krb5/krb5.conf [libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = kdc1.example.com admin_server = kdc1.example.com } [domain_realm] .example.com = EXAMPLE.COM # # if the domain name and realm name are equivalent, # this entry is not needed # [logging] default = FILE:/var/krb5/kdc.log kdc = FILE:/var/krb5/kdc.log [appdefaults] gkadmin = { help_url = http://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html }
En este ejemplo, se modificaron las líneas para las entradas default_realm , kdc, admin_server y domain_realm. Además, la dirección URL de ayuda en pantalla se ha cambiado.
Necesita designar el nombre del dominio. Para obtener una descripción de este archivo, consulte la página del comando man kdc.conf(4).
En este ejemplo, además de la definición del nombre del dominio, el administrador cambia la propagación incremental y los valores predeterminados del registro.
kdc1 # pfedit /etc/krb5/kdc.conf [kdcdefaults] kdc_ports = 88,750 [realms] EXAMPLE.COM = { profile = /etc/krb5/krb5.conf database_name = /var/krb5/principal acl_file = /etc/krb5/kadm5.acl kadmind_port = 749 max_life = 8h 0m 0s max_renewable_life = 7d 0h 0m 0s sunw_dbprop_enable = true sunw_dbprop_master_ulogsize = 1000 }
Una vez que se rellena, el archivo /etc/krb5/kadm5.acl debe contener todos los nombres de principales que tienen permitido administrar el KDC.
kws/admin@EXAMPLE.COM *
La entrada anterior da al principal kws/admin en el dominio EXAMPLE.COM la capacidad de modificar los principales y las políticas en el KDC. La entrada de principal predeterminada es un asterisco (*), lo que coincide con todos los admin de principales. Esta entrada puede representar un riesgo para la seguridad. Modifique el archivo para mostrar explícitamente cada admin de principal y sus derechos. Para obtener más información, consulte la página del comando man kadm5.acl(4).
kdc1 # /usr/sbin/kadmin.local kadmin.local:
Puede agregar tantos principales admin como necesite. Debe crear, al menos, un principal admin para completar el proceso de configuración del KDC. Para este ejemplo, se crea el principal kws/admin. Puede sustituir un nombre de principal adecuado en lugar de “kws”.
kadmin.local: addprinc kws/admin Enter password for principal kws/admin@EXAMPLE.COM:/** Type strong password **/ Re-enter password for principal kws/admin@EXAMPLE.COM: xxxxxxxx Principal "kws/admin@EXAMPLE.COM" created. kadmin.local:
kadmin.local: quit
Si los servidores LDAP y KDC se están ejecutando en el mismo host y si el servicio LDAP está configurado con SMF, agregue una dependencia al servicio LDAP para los daemons Kerberos. Esta dependencia reiniciará el servicio KDC si el servicio LDAP se reinicia.
# svccfg -s security/krb5kdc svc:/network/security/krb5kdc> addpg dsins1 dependency svc:/network/security/krb5kdc> setprop dsins1/entities = \ fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1" svc:/network/security/krb5kdc> setprop dsins1/grouping = astring: "require_all" svc:/network/security/krb5kdc> setprop dsins1/restart_on = astring: "restart" svc:/network/security/krb5kdc> setprop dsins1/type = astring: "service" svc:/network/security/krb5kdc> exit
# svccfg -s security/kadmin svc:/network/security/kadmin> addpg dsins1 dependency svc:/network/security/kadmin> setprop dsins1/entities =\ fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1" svc:/network/security/kadmin> setprop dsins1/grouping = astring: "require_all" svc:/network/security/kadmin> setprop dsins1/restart_on = astring: "restart" svc:/network/security/kadmin> setprop dsins1/type = astring: "service" svc:/network/security/kadmin> exit
Para proporcionar redundancia, asegúrese de instalar, al menos, un KDC esclavo. Para obtener instrucciones, consulte Cómo configurar manualmente un KDC esclavo.