Tot voor kort waren ook doorgewinterde Linux admins het wel met elkaar eens: als je een service nodig hebt waarop gebruikers binnen een bedrijf kunnen authenticeren, dan kun je eigenlijk niet zonder Active Directory. Sinds kort is er een veelbelovend alternatief genaamd FreeIPA. In dit artikel lees je wat het is en wat je er aan kunt hebben om gecentraliseerde authenticatiediensten in jouw omgeving aan te bieden.

IPA staat voor Identity, Policy and Authentication. De afkorting komt oorspronkelijk uit de Microsoft wereld en verwees daar naar een platform dat vooral in internet omgevingen gebruikt werd om authenticatie op te zetten. Sinds Red Hat Enterprise Linux 6.3 levert Red Hat een variant van dit product mee met Red Hat Enterprise Linux. De naam binnen Red Hat is Red Hat Identity Management en deze oplossing is gebaseerd op FreeIPA, een open source alternatief voor IdM dat in verschillende distributies inmiddels beschikbaar is.

LDAP en Kerberos, maar dan eenvoudig

FreeIPA is een belangrijke toevoeging aan recente Linux distributies. Het biedt heel veel services vanuit één oplossing, met daarbij nog eens een eenvoudige set-up procedure. In het verleden was het nogal een probleem om al deze diensten op de meest efficiënte wijze in te zetten. Als je ooit geprobeerd hebt om handmatig een OpenLDAP op te zetten, dan weet je wat het probleem is. In OpenLDAP was het installeren van de server overigens nog maar de eerste helft van het probleem, want ook gebruikersbeheer door middel van LDIF bestanden is nou niet bepaald een taak die je aan de helpdesk over wilt laten. FreeIPA maakt dit allemaal een heel stuk eenvoudiger. Zo eenvoudig dat de meeste beheerstaken gewoon vanuit een browser interface uitgevoerd kunnen worden.

 

Met FreeIPA krijg je een aantal services ter beschikking:

 

·       Een LDAP server op basis van het 389 project;

·       Een Kerberos server op basis van MIT Kerberos;

·       Een Certificate server op basis van het Dogtag project;

·       Een geïntegreerde tijdserver op basis van NTP;

·       En optioneel een DNS server op basis van Bind DNS.

 

Nadat de FreeIPA server is opgezet, bestaat de volgende taak eruit om client computers eraan te verbinden. Dat kan op twee manieren. De meest eenvoudige manier is om gebruik te maken van de ipa client. Als je deze manier kiest, run je het ipa-client set-up script en op basis van de juiste DNS configuratie gaat de client zichzelf installeren. Als de DNS client maar goed is, dan worden via DNS de noodzakelijke servicerecords opgehaald en ontdekt de client zelf welke LDAP en Kerberos servers gebruikt moeten worden. Het resultaat is dat de client deel uit gaat maken van het IPA domein en authenticatie en autorisatie automatisch plaatsvinden op de IPA server.

 

Gebruikmaken van de IPA client is weliswaar de meest eenvoudige manier, maar het heeft ook een nadeel: je hebt er een platform voor nodig waarop je de IPA client kunt installeren. Dat gaat prima zolang je binnen de Red Hat producten blijft, het wordt al wat lastiger als je een Ubuntu of SUSE machine aan wilt haken. Daarnaast is het onmogelijk met niet-ondersteunde platforms, zoals Apple Macintosh or Windows.

 

Maar er is een alternatief. IPA is namelijk gewoon ook een LDAP/Kerberos server en dat betekent dat je elke generieke LDAP client erop kan aanmelden. Dus als je straks overtuigd bent dat je centrale authenticatie beter af kunt laten handelen door FreeIPA, dan maak je op je SUSE servers gewoon een LDAP koppeling naar die FreeIPA server en dan werkt dat ook gewoon.

 

Aan de slag met FreeIPA

Er is maar één manier om erachter te komen of FreeIPA werkelijk iets voor je is en dat is er zelf mee aan de slag te gaan. Omdat het product nogal zwaar op Red Hat leunt, is het verstandig dit te doen op basis van een distributie die eveneens afkomstig is uit de Red Hat familie. Wil je dat doen zonder ervoor te betalen, maar wel gewoon op basis van stabiele software die al klaar gemaakt is voor productie in een enterprise omgeving, dan ben je het beste af met CentOS 7.

 

Omdat FreeIPA nogal veel met zich mee brengt, is het aan te raden de installatie te doen op een dedicated machine. Dat wil zeggen, een machine waarop geen andere dingen al geïnstalleerd of geconfigureerd zijn. Je loopt namelijk het risico dat die andere zaken conflicten opleveren met de FreeIPA onderdelen die je wilt installeren.

 

Voordat je de installatie ook daadwerkelijk aanzet, is het zaak om wat voorbereidende maatregelen te nemen. Om te beginnen heb je een machine nodig waarop de software kan draaien. Zorg dat deze machine aan de volgende specificaties voldoet:

 

·       1 GB RAM;

·       10 GB schijfruimte;

·       Werkende internetverbinding;

·       Hostnaam ingesteld als volledige hostnaam binnen het domein dat je wilt gaan configureren;

·       Werkende DNS naar internet zodat software packages geïnstalleerd kunnen worden;

·       Een regel in /etc/hosts die ervoor zorgt dat de eigen hostname geresolvet kan worden;

·       Geen actieve DNS, NTP of web servers.

 

Daarnaast is het handig, maar niet noodzakelijk, als je de mogelijkheid hebt na installatie een browser te starten. Dat hoeft natuurlijk niet op de IPA machine zelf, maar kan ook vanaf een externe machine gebeuren.

 

Als je aan deze minimale voorwaarden voldoet, voer je de volgende procedure uit om over te gaan tot installatie:

 

1.     Open een root shell en type yum -y install ipa-server bind-dyndb-ldap

2.     Start the installatieprogramma voor de IPA server met de opdracht ipa-server-install –setup-dns.

3.     Antwoord “yes” als gevraagd wordt of je een geïntegreerde DNS (BIND) server wilt installeren. In theorie is het mogelijk een externe server te gebruiken, maar voor een eerste testrit moet je daar niet aan willen beginnen.

4.     Het kan zijn dat het installatieprogramma je nu vertelt dat het een bestaande BIND configuratie gevonden heeft en vraagt of je die wilt overschrijven. Beantwoord deze vraag met “yes”.

5.     Als alles goed gaat, wordt nu de hostnaam gedetecteerd en vraagt het installatieprogramma of je deze voor de installatie wilt gebruiken. Controleer of dit goed gaat, als de hostnaam verkeerd staat ingesteld moet je nu Ctrl-C gebruiken om de installatie af te breken en met hostnamectl set-hostname de hostnaam in te stellen.

6.     Na de hostnaam zal het installatieprogramma vragen om de DNS domeinnaam te bevestigen. Deze moet op basis van de hostnaam goed staan, zodat je alleen op Enter hoeft te drukken om te bevestigen.

7.     Nu wordt gevraagd om de Kerberos Realm naam. Deze komt typisch overeen met het domain deel van de hostnaam. Dus als je host ipa.example.com heet, is de Kerberos Realm EXAMPLE.COM. Het installatieprogramma moet hier zelf om prompten, zie je iets anders dan staat resolving naar de eigen host name in /etc/hosts waarschijnlijk niet goed en moet je dat oplossen voordat je verder gaat.

8.     Nu wordt gevraagd om het Directory manager password. Dit is het beheerderswachtwoord dat je nodig hebt om later in te loggen op de FreeIPA server.

9.     Vervolgens moet je een beheerderswachtwoord invoeren. Gebruik hiervoor hetzelfde wachtwoord als dat je gebruikt hebt voor de Directory Manager.

10.  Nu wordt gevraagd of je een IP adres in wilt stellen voor de DNS forwarder. Beantwoord deze vraag positief en voer het IP adres in van een externe DNS server die je kunt gebruiken, zoals bijvoorbeeld 8.8.8.8.

11.  Er volgt nu nog een drietal vragen die te maken hebben met DNS setup. Als je zover gekomen bent, staat al het voorgaande al goed en hoef je alleen nog maar een paar keer op Enter te drukken om verder te gaan en de installatie af te ronden.

12.  Als alles goed gegaan is, zie je de volgende melding:

 

Setup complete

 

Next steps:

     1. You must make sure these network ports are open:

          TCP Ports:

            * 80, 443: HTTP/HTTPS

            * 389, 636: LDAP/LDAPS

            * 88, 464: kerberos

            * 53: bind

          UDP Ports:

            * 88, 464: kerberos

            * 53: bind

            * 123: ntp

 

     2. You can now obtain a kerberos ticket using the command: ‘kinit admin’

        This ticket will allow you to use the IPA tools (e.g., ipa user-add)

        and the web user interface.

 

Be sure to back up the CA certificate stored in /root/cacert.p12

This file is required to create replicas. The password for this

file is the Directory Manager password

 

 

Als je op dit punt bent aangekomen, kun je de installatie afronden. Dat doe je door eerste de noodzakelijke poorten in de firewall open te zetten. Een handige manier om dat te doen is met de opdracht:

 

 

 

for in in http https ldap ldaps kerberos kpasswd dns ntp; do firewall-cmd –permanent –add-service $; done.

 

 

 

Tik daarna:

 

 

 

firewall-cmd –reload

 

 

 

Zo wordt de firewall toegankelijk gemaakt en je IPA server is operationeel.

 

Om te testen of het allemaal goed gegaan is, type je nu:

 

 

 

kinit admin

 

 

 

Er wordt nu om een admin wachtwoord gevraagd. Voer dat in en je hebt Kerberized toegang tot de omgeving. Dat betekent dat je nu ook vanuit elke LDAP client contact kunt maken met deze server – ik hoop daar in een later artikel nog eens uitvoerig op in te kunnen gaan.

 

Beheer van de server

Omdat een LDAP server pas echt nuttig is als er ook gebruikers in voorkomen, bestaat de volgende stap eruit om de gebruikers accounts toe te voegen. Start een browser en open de webpagina van je IPA server. Nadat je hebt aangemeld, krijg je toegang tot de web interface (zie onderstaande afbeelding).

 

De FreeIPA beheersinterface

 

Vanuit de FreeIPA beheerdersinterface is het eenvoudig werken. De webpagina is onderverdeeld in drie overzichtelijke onderdelen, waarvan voor het opzetten van een gecentraliseerde server voor het beheer van identiteit, het onderdeel Identity het meest interessant is. Hier maak je gebruikers aan, beheer je DNS en certificaten en nog veel meer zaken die te maken hebben met het alledaagse gebruik van de service. De gebruikers die je hier aanmaakt, zijn op elke client zichtbaar of die client nu via LDAP op IPA client toegang krijgt.

 

Wil je toegang tot de service verder fine-tunen, dan vind je opties daarvoor op het tabblad Policy. Hier beheer je onder andere het opzetten van een – vanuit IPA beheerder – sudo omgeving en andere zaken zoals Kerberos tickets en automount. De sudo omgeving is heel handig als je tientallen servers onder je beheer hebt. Het tabblad IPA server biedt opties om beheerdersmogelijkheden toe te voegen aan de IPA server zelf en is bijvoorbeeld handig als je administratieve rollen toe wilt voegen.

 

In dit artikel heb je gelezen hoe je FreeIPA opzet. Deze service biedt heel veel mogelijkheden en indien goed uitgewerkt kan het een uitstekend alternatief bieden voor Active Director, zeker als je alleen maar Linux clients hebt.