openldap installation.

Hvad er en OpenLDAP server og hvilken formår har den.

I denne tutorial vil du lære lidt om LDAP servere og hvad man bruger den til.
En ldap server bruges til at verificere brugere login på mange systemer normalt.

OpenLDAP består af disse systemer.

  • slapd – Base LDAP daemon (server)
  • libraries implementing af LDAP protocol, og tools.
  • Admin web interface.

For at bruge Openldap skal den først installeres, her først en oversigt over pakker som skal installeres med apt.

slapd er ldap serveren som skal installeres.

ldap-utils er Openldap tools.

python3-ldap er LDAP interface modul for Python3

$ sudo apt install slapd ldap-utils

Som standard beder SLAPD installations programmet dig ikke om at indtaste domæne informationerne. Det udfylder dog automatisk DITt med eksempel data baseret på dit server domænenavn

Her skal du angive en administrator password.

 

 

 

 

 

Bekræft adgangskoden og fortsæt installationen ved at vælge <ok> med TAB-tasten.

 

 

 

 

 

 

Du kan nu checke default værdierne som oprettes i ldap.

$ sudo slapcat
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: example.com
dc: example
structuralObjectClass: organization
entryUUID: e33fc814-e5b9-1038-8243-39a2e6b74e62
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20190328152831Z
entryCSN: 20190328152831.511390Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20190328152831Z
dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9WDIzUEJxbXgycUU3M1dRUmppTVYrZE91U0RNMWswSHE=
structuralObjectClass: organizationalRole
entryUUID: e340fedc-e5b9-1038-8244-39a2e6b74e62
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 20190328152831Z
entryCSN: 20190328152831.519463Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 20190328152831Z

Før du kan opdatere databasen med brugernes OU-oplysninger ovenfor, skal du justere SLAPD-databasens adgangskontrol.

$ vim update-mdb-acl.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange,shadowExpire
  by self write
  by anonymous auth
  by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage 
  by dn.exact="cn=readonly,ou=people,dc=kifarunix-demo,dc=com" read 
  by * none
olcAccess: to dn.exact="cn=readonly,ou=people,dc=kifarunix-demo,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none
olcAccess: to dn.subtree="dc=kifarunix-demo,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
  by users read 
  by * none

Du skal nu køre.

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f update-mdb-acl.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "ou=people,dc=example,dc=com"
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge

 


Vi skal nu have oprettet Base DN.

Opret Base DN for Brugere og Grupper.

Nu da vi skal bruge andre typer af brugere skal vi oprette Base DN (organisation) for disse typer.

Det næste trin er at tilføje en basis-DN for brugere og grupper. Opret en fil med navnet basedn.ldif med nedenstående indhold:

$ vim user_group_base.ldif
dn: ou=people,dc=ldapmaster,dc=example,dc=com
objectClass: organizationalUnit
ou: people
dn: ou=group,dc=ldapmaster,dc=example,dc=com
objectClass: organizationalUnit
ou: group

Du skal her igen rette example and com med dit rigtige domain navn.

Derefter skal nu tilføje det til openldap med kommandoen:

$ ldapadd -x -D cn=admin,dc=example,dc=com -W -f user_group_base.ldif
Enter LDAP Password:
adding new entry "ou=people,dc=example,dc=com"
adding new entry "ou=groups,dc=example,dc=com"

Opret af LDAP Bruger

Så er det tid til at lave oprette en bruger og lave et password for ldap brugeren.

$ sudo slappasswd
New password:
Re-enter new password:
{SSHA}Zn4/E5f+Ork7WZF/alrpMuHHGufC3x0k

Opret new_user.ldif filen til tilføjelse af brugere.

$ vim new_user.ldif
dn: uid=brugernavn,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: brugernavn
cn: brugernavn
sn: Wiz
userPassword: {SSHA}Zn4/E5f+Ork7WZF/alrpMuHHGufC3x0k
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/brugernavn
dn: cn=brugernavn,ou=group,dc=example,dc=com
objectClass: posixGroup
cn: brugernavn
gidNumber: 10000
memberUid: brugernavn

Her lidt info om hvad felterne betyder.

  • Udskift brugernavn med det brugernavn som skal oprettes.
  • dc=example,dc=com Med det rigtige domain navn.
  • cn & sn with your Username Values
  • {SSHA}Zn4/E5f+Ork7WZF/alrpMuHHGufC3x0k Hashed password

Når du er færdig med at rette filen ldapusers.ldif skal du tilføje den til Ldap med kommandoen:

$ ldapadd -x -D cn=admin,dc=example,dc=com -W -f new_user.ldif
Enter LDAP Password:
adding new entry "uid=brugernavn,ou=people,dc=example,dc=com"

 

Slet af LDAP Bruger og Grupper

For at slette en LDAP bruger, så brug ldapdelete kommandoen. For eksempelvis at slette bruger med brugernavn brugernavn som vi oprettet før.

$ ldapdelete -x -W -D "cn=admin,dc=example,dc=com" "uid=brugernavn,ou=people,dc=example,dc=com"

Det samme for at slette i LDAP group.

$ ldapdelete -x -W -D "cn=admin,dc=example,dc=com" "cn=brugernavn,ou=group,dc=example,dc=com"

Reset LDAP bruger password

Hvis du skal reset en brugers password kan du bruge ldappasswd kommandoen. for at rest password for brugernavn brugernavn vi havde for før.

$ ldappasswd -H ldapi:/// -x -D "cn=admin,dc=example,dc=com" -W -S "uid=brugernavn,ou=people,dc=example,dc=com"

Opret forbindelse til remote ldap server.

For at oprette remote forbindelse skal du bruge  -H ldap://<ldap-server-IP> option. For example;

$ ldappasswd -H ldap://192.168.56.105 -x -D "cn=admin,dc=example,dc=com" -W -S "uid=brugernavn,ou=people,dc=example,dc=com"

Hvis du vil lave din egen DIT, du skal reconfigure SLAPD pakken igen med kommandoen.

$ dpkg-reconfigure slapd

Check LDAP bruger Password

For at check et password for en bruger skal du bruge ldapwhoami kommandoen. Her checker vi brugernavn brugernavn

$ ldapwhoami -vvv -h localhost -D "uid=brugernavn,ou=people,dc=example,dc=com" -x -W

Hvis password er rigtigt vil den skrive noget i den retning.

ldap_initialize( ldap://localhost )
Enter LDAP Password: 
dn:uid=brugernavn,ou=people,dc=kexample,dc=com
Result: Success (0)

Test remote forbindelse

$ ldapwhoami -vvv -h LDAP-SERVER-IP-ELLER-HOST-NAVN -D "uid=brugernavn,ou=people,dc=example,dc=com" -x -W

Nu er det tid til at installere LDAP Account Manager.

Jeg har bemærket, at phpLDAPadmin ikke fungerer godt med PHP 7.2+. Jeg anbefaler, at du i stedet bruger LDAP Account Manager. Følg guiden nedenfor for at installere og konfigurere LDAP Account Manager.