Wanneer we tientallen computers op een netwerk hebben, is het noodzakelijk om de gegevens correct te organiseren en ook de inloggegevens van de verschillende gebruikers. Om een hiërarchische structuur te creëren, is het erg belangrijk om een systeem als LDAP te hebben, waarmee we de informatie van alle apparatuur goed kunnen opslaan, beheren en beschermen, en dat ook verantwoordelijk is voor het beheer van alle gebruikers en activa. Vandaag gaan we in dit artikel alles uitleggen over LDAP en hoe je het kunt installeren en configureren op een Linux systeem.

Wat is LDAP en waarvoor dient het?
LDAP (Lightweight Directory Access Protocol) of ook wel bekend als "Lightweight Directory Access Protocol" is een TCP/IP-toepassingslaagprotocol dat toegang geeft tot een geordende en gedistribueerde directoryservice om naar informatie in een omgevingsnetwerk te zoeken. Voordat we verder gaan met uitleggen waar LDAP voor is, moeten we weten wat een "directory" is. Een directory is een verzameling objecten met attributen die logisch en hiërarchisch zijn georganiseerd, dat wil zeggen, het is in de vorm van een boom en perfect geordend, afhankelijk van wat we willen, alfabetisch, op gebruikers, adressen, enz.
Over het algemeen is een LDAP-server verantwoordelijk voor het opslaan van authenticatie-informatie, dat wil zeggen de gebruikersnaam en het wachtwoord, om later toegang te geven tot een ander protocol of systeemservice. Naast het opslaan van de gebruikersnaam en het wachtwoord, kan het ook andere informatie opslaan, zoals de contactgegevens van de gebruiker, de locatie van lokale netwerkbronnen, digitale certificaten van de gebruikers zelf en nog veel meer. LDAP is een toegangsprotocol waarmee we toegang hebben tot de bronnen van het lokale netwerk, zonder dat we verschillende gebruikers in het besturingssysteem hoeven aan te maken, en het is ook veel veelzijdiger. LDAP staat bijvoorbeeld authenticatie- en autorisatietaken toe voor gebruikers van verschillende software zoals Docker, OpenVPN, bestandsservers zoals die worden gebruikt door onder andere QNAP, Synology of ASUSTOR, en nog veel meer toepassingen.
LDAP kan zowel worden gebruikt door een gebruiker die om enkele toegangsgegevens wordt gevraagd, als door toepassingen om te weten of ze toegang hebben tot bepaalde systeeminformatie of niet. Over het algemeen bevindt een LDAP-server zich op een particulier netwerk, dat wil zeggen lokale netwerken, om de verschillende toepassingen en gebruikers te verifiëren, maar hij kan ook probleemloos op openbare netwerken werken.

De twee meest populaire Active Directory-services die worden ondersteund door LDAP zijn “Windows Active Directory", of ook wel bekend als "Windows Active Directory", evenals OpenLDAP. Daarom is het LDAP-protocol compatibel met beide technologieën, zodat gebruikers overal toegang hebben tot alle bestanden en toepassingen. Ze hoeven zich alleen te authenticeren en hebben toegang tot hun computer.
Momenteel is de versie van LDAP LDAPv3, daarom zullen we, wanneer we dit protocol installeren en gebruiken, in de overgrote meerderheid van de gevallen het LDAPv3-protocol gebruiken om de verschillende clients te authenticeren.
Hoe een LDAP-server werkt
LDAP is een protocol met een client-server-architectuur, daarom zullen we verschillende clients hebben die verbinding maken met een of meerdere LDAP-servers. Over het algemeen wordt een enkele LDAP-server gebruikt waar tientallen of honderden clients verbinding mee maken om toegang te krijgen tot de verschillende bronnen van het lokale netwerk. De server is waar alle gegevens met betrekking tot de directory worden opgeslagen, het zal ook verantwoordelijk zijn voor gebruikersauthenticatie, controleren of er slechts één gebruiker tegelijkertijd is verbonden of meerdere vanaf verschillende apparaten, en andere taken die we hieronder zullen uitleggen.
De werking van LDAP is vrij eenvoudig, aangezien de communicatie is als elke andere communicatie tussen een client en een server, net zoals het gebeurt in Windows met Active Directory. Hieronder zie je de drie belangrijkste communicatiestappen:
- De client maakt via TCP/IP-poort 389 verbinding met de LDAP-server (het proces wordt Directory System Agent genoemd) om de LDAP-sessie te starten.
- Er wordt een verbinding tot stand gebracht tussen de client en de server.
- Gegevens worden uitgewisseld tussen de server en de client.
Er zijn twee basisacties die een client kan doen bij het verbinden, maar eerst moeten we onderscheid maken tussen authenticatie en autorisatie. Authenticatie is het mechanisme waarmee we ons identificeren met een systeem, bijvoorbeeld door middel van een gebruikersnaam en wachtwoord. Autorisatie is het mechanisme waarmee we iets in het systeem wel of niet mogen doen. Op een LDAP-server kunnen we dit doen:
- Informatie lezen : om de informatie te lezen moet de client worden geauthenticeerd, dan zal het proberen om informatie uit de directory te lezen en te verkrijgen, voordat deze stap wordt uitgevoerd, zal de server controleren of die specifieke gebruiker de autorisatie heeft om informatie te lezen.
- Wijzig informatie : om informatie te wijzigen is het proces hetzelfde, maar de server zal controleren of we wijzigingsrechten op de server hebben.
LDAP stelt ons ook in staat om informatie uit te wisselen tussen verschillende servers, als we ons authenticeren op een server en deze niet over de benodigde informatie beschikt, kunnen we deze vraag stellen aan een andere server die we op hetzelfde lokale netwerk hebben, om te controleren of we daadwerkelijk hebben deze informatie of niet. Het is iets wat lijkt op wat er gebeurt met de DNS servers, die elkaar vragen de boom op te gaan totdat ze de rootservers bereiken.

Soorten operaties
Op een server zijn er verschillende bewerkingen die we als klanten kunnen uitvoeren, hieronder kunt u zien wat we allemaal kunnen doen:
- Toevoegen: voeg een nieuw item toe. Als het item al bestaat, zal de server ons hiervan op de hoogte stellen.
- Wijzigen: een invoer wijzigen. Het protocol staat drie verschillende wijzigingen toe, nieuwe waarde toevoegen, waarde vervangen of waarde verwijderen.
- Wissen: een invoer verwijderen.
- Zoeken: zoek of haal directory-items op.
- Vergelijk: kijk of een benoemde invoer een bepaald kenmerk heeft.
- Verlaten: een eerder verzoek afbreken
- Binden: authenticeren bij de server
- Start TLS – Breng veilige communicatie tot stand met TLS in het LDAPv3-protocol.
- Ontbinden: verbreek de verbinding.
Componenten en structuur
Om ervoor te zorgen dat dit protocol zijn taak kan uitvoeren, is er zowel een directorystructuur als componenten. De belangrijkste componenten zijn:
- Directory's: is een boom met directory-items.
- Ingangen: Bestaat uit een set attributen. Inzendingen beschrijven de gebruiker door al hun attributen op te sommen. Elk item heeft een unieke identificatie met zijn DN (Distinguished Name)
- Attributen: Attributen hebben een naam en een of meer waarden, deze zijn gedefinieerd in de schema's.
Een basisstructuur van LDAP zou de volgende kunnen zijn:
dn: cn=Redes Zone,dc=example,dc=com
cn: Redes Zone
givenName: Redes
sn: Zone
telephoneNumber: +34 666 111 111
telephoneNumber: +34 666 222 222
mail: redeszone@example.com
manager: cn=this article2,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
- dn (Distinguished Name): Dit is de naam van het item, maar het is geen attribuut of onderdeel van het item zelf.
- cn (algemene naam): is de relatieve DN-naam.
- dc (Domein Component): is de Distinguished Name van het bovenliggende item.
De rest van de regels zijn de attributen van de invoer, zoals de gegevennaam, sn, telefoonnummer, mail en de verschillende objectklasse die we hebben. Een server host altijd een substructuur die begint met een specifiek item.
Om zoekopdrachten uit te voeren, moeten we een URL plaatsen om informatie te verkrijgen, de syntaxis die we moeten gebruiken is de volgende:
ldap://host:puerto/DN?attributes?scope?filter?extensions
Veel van deze componenten zijn optioneel, we kunnen bijvoorbeeld eenvoudig de DN aanroepen zodat deze alle informatie met betrekking tot dit item retourneert.
Verschillen tussen Microsoft Active Directory en LDAP
Microsoft Active Directory gebruikt het LDAP-protocol intern om alle communicatie van de clients naar de server of servers uit te voeren, daarom zorgt het ervoor dat clients zichzelf kunnen authenticeren en toegang kunnen krijgen tot alle opgeslagen gegevens. Bovendien moeten we er rekening mee houden dat dit protocol Het is multiplatform , we hebben het niet alleen op Windows-besturingssystemen, maar het is ook compatibel met Linux, Unix en macOS, allemaal via het protocol. Om u een idee te geven, gebruiken de volgende directoryservices dit protocol voor hun communicatie:
- Microsoft Active Directory
- apache
- Red Hat Directory-service
- OpenLDAP
En veel andere diensten gebruiken het ook, met name de nieuwste OpenLDAP, een open source-implementatie van het protocol en kan op elk systeem worden geïnstalleerd, aangezien de broncode om het te compileren beschikbaar is. In de meeste Linux-distributies hebben we het echter beschikbaar in hun repository's.
Installatie en basisconfiguratie
Installatie en inbedrijfstelling op Linux-gebaseerde besturingssystemen is heel eenvoudig, en we hebben ook de mogelijkheid om de server op een QNAP NAS te activeren. Vervolgens gaan we uitleggen hoe de installatie en basisconfiguratie in Debian en ook in QNAP moeten worden uitgevoerd.
Debian
Als we een op Linux gebaseerd besturingssysteem zoals Debian hebben, kunnen we ldap installeren via de officiële opslagplaatsen van de distributie. Om dit te doen, kunnen we de volgende opdracht in de terminal plaatsen, logischerwijs hebben we superuser-permissies nodig.
sudo apt install slapd ldap-utils
Zodra we het hebben uitgevoerd, zal het ons vragen welk beheerderswachtwoord op de server moet worden geplaatst. Als we het eenmaal hebben ingevoerd, zal het de installatie van de software voltooien en kunnen we ermee aan de slag.



Om te controleren of het correct is geïnstalleerd, plaatsen we de volgende volgorde en het zal ons alle gegevens van de server op dit moment tonen.
sudo slapcat
De volgende schermafbeelding zou moeten laten zien wat we direct na de installatie krijgen:

Nu moeten we slapd opnieuw configureren om ons eigen domein te plaatsen, we voeren de volgende opdracht uit om de configuratiewizard te starten.
sudo dpkg-reconfigure slapd
De wizard zal ons veel aspecten van de server vragen, we kunnen alles laten zoals we u in de volgende schermafbeeldingen laten zien. Het belangrijkste is om de DN goed te plaatsen.









Zodra we alles hebben gedaan, hebben we de server klaar om de verschillende gebruikers toe te voegen.
Het eerste wat we moeten doen is een lijst maken van alle gebruikers, hiervoor maken we een bestand aan in /etc/ldap met de naam “users.ldif”.
sudo touch /etc/ldap/users.ldif
Met elke teksteditor gaan we verder met het bewerken van dit bestand met de volgende inhoud:
dn: ou=People,dc=redeszone,dc=net
objectClass: organizationalUnit
ou: People
Zodra we het hebben gedaan, moeten we het op de volgende manier aan de server introduceren:
sudo ldapadd -D "cn=admin,dc=redeszone,dc=net" -W -H ldapi:/// -f users.ldif
Het zal ons om het wachtwoord vragen en we zullen doorgaan om het in te voeren. Het zou ons geen enkele fout moeten geven.

Als we ten slotte een zoekopdracht willen uitvoeren, kunnen we dit op de volgende manier doen:
sudo ldapsearch -x -b "dc=redeszone,dc=net" ou

De basisconfiguratie van de server is al gedaan, nu moeten we de verschillende vermeldingen toevoegen met de informatie die we willen.
QNAP NAS-server
Als u een QNAP NAS-server gebruikt, hebben we standaard een LDAP-server geïnstalleerd. Om dit te doen, gaan we naar de sectie "Configuratiescherm / Toepassingen / LDAP-server". In dit menu gaan we verder met het invoeren van de domeinnaam en het beheerderswachtwoord, zodra we dit hebben aangegeven gaan we verder met klikken op “Toepassen”.

Zodra we de wijzigingen hebben toegepast, zullen we de server in gebruik hebben. Nu nieuwe tabbladen genaamd "Gebruikers", "Groep" en ook "backup en herstellen” zal verschijnen.

In het gebruikersgedeelte kunnen we de verschillende gebruikers registreren met een kleine configuratiewizard. We hoeven alleen maar deze eenvoudige wizard te volgen om alle gewenste gebruikers toe te voegen.

We hebben ook de mogelijkheid om een nieuwe groep gebruikers toe te voegen, we zullen ook een wizard hebben om ons te helpen met het proces.

Ten slotte kunnen we in het gedeelte back-up en herstel een back-up maken van de volledige serverdatabase en deze zelfs herstellen van een eerdere kopie, ideaal om niet alle informatie op onze server te verliezen.

Zoals u kunt zien, is de implementatie van deze LDAP-server in een QNAP heel eenvoudig, we hoeven geen commando via de console uit te voeren, alles wordt gedaan via de grafische gebruikersinterface.
Conclusies
Het LDAP-protocol wordt veel gebruikt in professionele omgevingen om de verschillende gebruikers te authenticeren en waar we de geordende en hiërarchische informatie kunnen opslaan. Dit protocol wordt niet alleen gebruikt door software zoals OpenLDAP, maar ook door andere directorysystemen zoals Windows of RedHat, naast vele andere die we u hebben uitgelegd. Hoewel de werking ervan in het begin misschien ingewikkeld lijkt, zult u, zodra we de server hebben geïnstalleerd en beginnen met het registreren van gebruikers en groepen, alles met betrekking tot dit belangrijke protocol perfect begrijpen.
Dit protocol is een van de belangrijkste om gebruikers binnen een bedrijf te authenticeren, daarnaast wordt het ook vaak gebruikt in combinatie met RADIUS-servers, en afhankelijk van onze behoeften kunnen we dit protocol kiezen in plaats van RADIUS en zelfs beide naast elkaar bestaan in dezelfde lokale netwerk voor verschillende toepassingen die we het kunnen geven.