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.