Installera Kerberos och LDAP server i Debian Jessie
Denna artikel beskriver hur man installerar Kerberos och OpenLDAP i Debian Jessie. Kerberos kommer att använda LDAP som backend. Vi kommer använda ns.example.com som FQDN för vår server och vår Kerberos realm EXAMPLE.COM i exemplen.
Målet är att kunna autentisera sig mot Kerberos och hämta användaruppgifter ifrån LDAP.
Förberedelser
Kerberos kräver att klockan går rätt, så se till att ha fungerande NTP server. Kerberos kräver också både uppslagning via IP adress och via namn, så se till att ditt nätverk funkar tillfredsställande innan du börjar. I Debian kan denna rad i /etc/hosts med fördel kommenteras bort:
127.0.1.1 server.example.com server
Installera LDAP server med Kerberos schema
Installera:
Ange LDAP administrator lösenord, realm EXAMPLE.SE och ns.example.com både som din key admin server och KDC. Kontrollera efteråt att du kan köra kommandot:
Och att uppgifterna stämmer. Bl.a. ska du se:
# {1}mdb, config dn: olcDatabase={1}mdb,cn=config objectClass: olcDatabaseConfig objectClass: olcMdbConfig olcDatabase: {1}mdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=example,dc=com olcRootDN: cn=admin,dc=example,dc=com ...
Kopiera och packa upp Kerberos schemat:
För att konvertera schemat till en LDIF fil, skapa filen /root/schema_convert.conf med innehållet:
include /etc/ldap/schema/kerberos.schema
Kör sedan kommandona:
Editera sedan filen /tmp/cn=kerberos.ldif och ta bort {0}kerberos på de 2 ställen i början så filen ser ut så här:
dn: cn=kerberos,cn=schema,cn=config objectClass: olcSchemaConfig cn: kerberos
Och ta bort raderna på slutet som ser ungefär ut så här:
structuralObjectClass: olcSchemaConfig entryUUID: 56a8f4dc-9010-1034-8ba0-a1e47b1e0717 creatorsName: cn=config createTimestamp: 20150516121051Z entryCSN: 20150516121051.173689Z#000000#000#000000 modifiersName: cn=config modifyTimestamp: 20150516121051Z
Addera schemat till LDAP:
Sista steget blir att addera ett index för krbPrincipalName attributet och justera ACL (Access Control List). Skapa en fil som t.ex heter /root/krb5.ldif med innehållet:
dn: olcDatabase={1}mdb,cn=config changetype: modify add: olcDbIndex olcDbIndex: krbPrincipalName eq,pres,sub - replace: olcAccess olcAccess: to attrs=userPassword,shadowLastChange,krbPrincipalKey by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none - add: olcAccess olcAccess: to dn.base="" by * read - add: olcAccess olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read
Kör kommandot:
LDAP är nu redo att agera backend åt Kerberos.
Installera Kerberos
Installera Kerberos:
Editera /etc/krb5.conf så att den innehåller:
[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = ns.example.com admin_server = ns.example.com default_domain = example.com database_module = openldap_ldapconf } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM [dbdefaults] ldap_kerberos_container_dn = cn=krbcontainer,dc=example,dc=com [dbmodules] openldap_ldapconf = { db_library = kldap ldap_kdc_dn = "cn=admin,dc=example,dc=com" ldap_kadmind_dn = "cn=admin,dc=example,dc=com" ldap_service_password_file = /etc/krb5kdc/service.keyfile ldap_servers = ldapi:// ldap_conns_per_server = 5 }
Editera /etc/krb5kdc/kdc.conf och lägg till raderna:
[realms] EXAMPLE.COM = { ... database_module = openldap_ldapconf } [dbmodules] openldap_ldapconf = { db_library = kldap ldap_kdc_dn = "cn=admin,dc=example,dc=com" ldap_kadmind_dn = "cn=admin,dc=example,dc=com" ldap_service_password_file = /etc/krb5kdc/service.keyfile ldap_servers = ldapi:// ldap_conns_per_server = 5 }
Skapa din realm EXAMPLE.COM:
Ange ditt LDAP admin lösenord och ange välj sedan ett KDC master-key lösenord. Skapa sen en gömma med LDAP admin lösenordet så Kerberos kan ansluta till LDAP servern: Template:Error