Als je Linux op je laptop gebruikt en verder niet, heb je eigenlijk weinig te maken met gebruikersbeheer. Wanneer je Linux in een omgeving gebruikt waar gebruikers aan gaan melden op een centrale server, is het handig iets te doen aan het beheer van profielen: het is immers bijzonder prettig als gebruikers overal bij hun omgeving kunnen, waar ze ook werken. In dit artikel bespreken we de mogelijkheden.

Als je het tien jaar geleden over profielen van gebruikers had, dan ging dat eigenlijk over ‘roaming profiles’ zoals die in een Windowsomgeving worden gebruikt. De gedachte achter die oplossing is dat een gebruiker zich niet altijd aanmeldt op hetzelfde werkstation, maar toch altijd wil werken met dezelfde gebruikersinstellingen. Een dergelijke oplossing is zeker ook op Linux te realiseren, maar voordat je heel enthousiast aan de slag gaat om een op Samba gebaseerde oplossing te maken voor je Windows-gebruikers, is het handig je af te vragen of dit inderdaad is wat je nodig hebt.

NIET ALLEEN WINDOWS
Kijkend naar gebruikers anno 2013, dan gaat het niet echt meer om een gebruiker die zich aanmeldt vanaf een Windows-werkstation. Windows is immers niet meer de enige manier waarop gebruikers met IT bezig zijn. Om te beginnen zijn er natuurlijk Linux-gebruikers voor wie je misschien ook wel een oplossing wilt, dan zijn er gebruikers die vanaf verschillende soorten devices contact proberen te maken met een centrale server en graag overal min of meer dezelfde omgeving willen gebruiken en tot slot zijn er gebruikers die vanaf verschillende apparaten resources benaderen en dat graag een beetje uniform geregeld zien. Wat betreft dat laatste, over de users die met hun iOS- of Androiddevice werken, kunnen we kort zijn. Het beheer van instellingen wordt daar gekoppeld aan het account dat op het betreffende device wordt gebruikt en daar heb je in een Linux-omgeving niet zo heel veel mee te doen. Wat dan overblijft als meer interessante opties, zijn de mogelijkheden die je hebt om Linux- en Windows-gebruikers gecentraliseerd met dezelfde omgeving te laten werken. Voordat we de diepte in gaan en kijken naar de technische mogelijkheden, is het belangrijk een idee te hebben waar het nu eigenlijk om gaat. In dit artikel gaan we van de volgende definitie uit (ontleend aan de definitie zoals die op de Engelstalige Wikipedia-pagina wordt gegeven): “Een roaming profile is een concept uit de Windows NT-familie van besturingssystemen dat het mogelijk maakt voor gebruikers om vanaf een computer die aangemeld is bij een Windows Server-domein in te loggen op elke willekeurige computer in het netwerk en zo dezelfde gebruikerservaring te krijgen. Het kan daarbij gaan om desktopinstellingen, maar ook bijvoorbeeld om de documenten van die gebruiker.”

WERKEN MET GEBRUIKERSPROFIELEN
Als je wilt werken met gebruikersprofielen in een pure Linuxomgeving, heb je daar twee zaken voor nodig: een centrale instantie waarop gebruikers zich aanmelden en een centraal iets waarop de instellingen van gebruikers worden opgeslagen. De oplossing hiervoor die het meest Linux-eigen is, is een combinatie van een LDAP Directory server en een NFS share die door middel van autofs wordt aangeboden aan de gebruikers in het netwerk. Je hebt immers een centrale instantie nodig om op aan te kunnen melden (LDAP) en een locatie waarop de desktopomgeving van de gebruiker wordt opgeslagen. Normaliter gebeurt dit in een home directory, maar die home directory moet beschikbaar zijn, ongeacht de fysieke machine waar de gebruiker zich aanmeldt. Om een omgeving op te zetten met een combinatie van Open- LDAP, NFS en autofs, kun je in principe elke Linux-distributie gebruiken die je maar wilt. Echter, het opzetten van een OpenLDAPomgeving is op veel distributies een vrij lastige procedure. Eén van de weinige distributies waarop dit eenvoudig gemaakt is, is OpenSUSE. Op OpenSUSE regel je vanuit de beheerstool YaST met een paar klikken je LDAP-server en het gecentraliseerd aanbieden van de home directory’s. De onderstaande procedure geeft aan hoe je hiervoor te werk gaat.  

1. Zorg ervoor dat je OpenSUSE 12.3 hebt geïnstalleerd. Een standaardinstallatie voldoet; alles wat nodig is voor de OpenLDAP/Autofscombinatie kun je er later apart bij zetten. Je moet er wel voor zorgen dat de machine waarop je dit doet, is verbonden aan internet, en het is handig haar te updaten voordat je verder gaat.

2. Open een terminal-venster, zorg ervoor dat je in een root-shell zit en typ zypper in yast2-ldap-server. Hiermee installeer je de LDAPserver beheermodule in YaST.

3. Om veilig aan te melden in OpenLDAP heb je ook certificaten nodig. Ook hiervoor biedt OpenSUSE een handige grafische module: yast2-ca-management.

4. Start YaST en open de module CA Management. Klik nu eerst op create root CA om je eigen root Certificate Authority aan te maken. Deze CA gaat certificaten uitdelen aan anderen die door hemzelf worden gegarandeerd. In een wereldwijde chain of trust is dat niet ideaal, maar voor wat we hier willen is het goed genoeg. In het veld CA Name voer je de naam in die je aan deze CA wilt geven, en onder Common Name typ je de naam van je server. Klik dan op Next om verder te gaan. Voer nu een wachtwoord in en sluit de wizard af.

5. Je hebt nu een Certificate Authority, maar nog geen certificaten. Dit regel je na afronden van de wizard: klik op Enter CA en activeer dan het tabblad Certificates. Op dit tabblad klik je op Add om een certificaat aan te maken. Kies vervolgens de optie Add Server Certificate.

6. Nu moet je minimaal een naam invoeren voor het certificaat. Deze naam moet hetzelfde zijn als de naam van je server. In het volgende scherm voer je een wachtwoord in voor het certificaat, waarna het certificaat is aangemaakt.

7. Klik nu op Export en kies de optie Export as Common Server certificate. Als dit is gebeurd, zie je een melding dat het certificaat is weggeschreven.

8. Nu moet je nog even terug naar de instellingen van de CA. Hier klik je op Advanced en exporteer je het CA-certificaat naar het bestandssysteem. Sla het op als /etc/ssl/ certs/defaultca.pem. Je kunt nu verder met het LDAP-deel van de configuratie.

LDAP CONFIGUREREN
Ook de configuratie van LDAP regel je vanuit YaST. De module die je gebruikt, is LDAP Server Configuration. Een belangrijk onderdeel van de configuratie is dat je aan moet geven welke TLSinstellingen worden gebruikt. Zorg er in het venster TLS Settings voor dat de optie Use common server Certificate uit staat en vul onder Import Certificate de volgende waarden in:

CA Certificate File:
 /etc/ssl/certs/defaultca.pem
Certificate File:
/etc/ssl/servercerts/servercert.pem
Certificate Key File:
/etc/ssl/servercerts/serverkey.pem


In het volgende scherm, Database Settings, geef je aan wat de Base DN is.
Dit is het domein waaruit standaard gebruikersinformatie wordt gehaald. Op het demosysteem dat we voor dit artikel hebben gebruikt, was het DNS-domein example.com, en dat zorgt ervoor dat de Base DN automatisch wordt ingesteld op dc=example,dc=com. Voor dit domein wordt een beheerdersaccount aangemaakt en daar moet je een wachtwoord voor instellen. Klik nu op Next en Finish om de LDAP-configuratie op te slaan.

GEBRUIKERS IN LDAP AANMAKEN
Voordat je verder gaat, is het een goed idee de LDAP Clientinstellingen goed te zetten, zodat je OpenSUSE-machine met succes gegevens uit de LDAP Directory zal halen. Dit doe je met de YaST-module LDAP Client Configuration. De standaardinstellingen staan normaliter al goed. Wat nog moet worden geregeld, is dat de client via TLS contact opneemt met de LDAP-server. Klik daarvoor op SSL/ TLS Configuration en selecteer dan de optie Use TLS for Identity Resolve. Geef hier bij de optie CA Certificate URL for Download op waar het certificaat van de CA kan worden gevonden. Als je alles volgens bovenstaande aanwijzingen hebt gedaan, moet file:///etc/ ssl/certs/defaultca.pem werken. Na succesvolle download van het certificaat zul je meldingen zien dat dit is opgeslagen, waarna de configuratie klaar is voor gebruik. Als de LDAP-server met succes is aangemaakt, gebruik je in YaST de User and Group Administrationtool om LDAP-users aan te maken. Hiermee kun je op eenvoudige en onomslachtige wijze users toevoegen aan de LDAP-database en je Linux configureren om aan te melden op LDAP. In de User and Group Administration-module geef je op het tabblad Authentication settings aan op welk adres je LDAP-server kan worden teruggevonden. Daarnaast moet je de LDAP Base DN opgeven. Deze komt overeen met de base DN zoals je die op de LDAP-server hebt opgegeven. Tot slot zijn er nog twee aanvullende belangrijke opties die je aan moet zetten: Start Automounter en Create Home Directory on Login. Deze opties zorgen ervoor dat home directory’s voor de LDAP-users automatisch worden aangemaakt op de LDAPserver, en dat ze ook automatisch door middel van de Automounter worden geëxporteerd. Nadat YaST is ingesteld om gebruik te maken van LDAP, kun je beginnen met het aanmaken van gebruikers. Om te beginnen moet je hiervoor een filter instellen. Dit doe je in de User and Group Administration- beheermodule door op Set Filter te klikken. Kies hier de optie LDAP Users en alle gebruikers die je vervolgens aanmaakt, worden automatisch aangemaakt in LDAP. Let er overigens wel even op dat je deze optie elke keer opnieuw zult moeten selecteren; YaST onthoudt de instelling niet nadat je YaST hebt afgesloten.

CLIENT-INSTELLINGEN
Als je de LDAP-server, NFS en automount hebt ingericht, is de rest van de procedure vrij eenvoudig. Je hoeft nu alleen nog maar aan te geven hoe de client bij de LDAP-server kan komen. De meeste distributies hebben daar een eenvoudige oplossing voor. In het voorgaande is uitgelegd hoe de procedure vanuit YaST werkt. Ook andere distributies bieden doorgaans eenvoudig te gebruiken tools om dit voor elkaar te krijgen. Zo is er op Red Hat en afgeleide distributies de system-configauthentication utility, waarmee eenvoudig wordt aangegeven welke LDAP-server moet worden gebruikt.

LINUX-SERVERS EN WINDOWSPROFIELEN
Bovenstaande procedure werkt voor een omgeving waarin met name Linux-gebruikers aanmelden op een Linux-server. Als je een omgeving opzet waarin Windowsgebruikers aanmelden op een Linux-server, is de situatie wat anders. In dergelijke gevallen biedt Samba uitkomst. Op Samba kan een share worden aangemaakt waarin profielen worden opgeslagen. De Windows-gebruikers slaan dan hun profielen automatisch op in deze share. Daarnaast is een aantal aanvullende regels nodig die ervoor zorgen dat voor elke gebruiker door middel van variabelen de juiste paden worden gebruikt. In Listing 1 zie je hoe de profiles share er standaard uit kan zien. Het is een goed idee deze instellingen gewoon letterlijk over te nemen; ze zijn beproefd en werken voor alle omstandigheden. Nadat deze share is aangemaakt, moet worden geregeld dat gebruikers er ook hun profiel in weg kunnen schrijven. Dit doe je door de permissies open te zetten met het commando chmod 1777 /srv/ samba/profiles. Naast de algemene share is een drietal instellingen nodig in de algemene sectie van het Sambaconfiguratiebestand. Deze zorgen ervoor dat op basis van gebruikersgegevens van de betreffende gebruiker de juiste paden worden gebruikt. Dit wordt met onderstaande drie regels geregeld:

logon path = \\%L\
profiles\%U logon home =
\\%L\%U\.9xprofile logon drive = P:

LISTING 1
[profiles] comment = Network
Profiles Share path = /srv/samba/profiles
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700
browseable = no
gues ok = no
printable = no
profile acls = yes
csc policy = disable


HYBRIDE GEBRUIKERS
Op basis van het bovenstaande zou je in staat moeten zijn een oplossing te bieden voor zowel Linux-als Windows-gebruikers.
Deze gebruikerstypen zijn ook het eenvoudigst te realiseren; ze werken immers met een duidelijk gedefinieerde desktopomgeving en dat betekent dat je een voorziening kunt treffen die de gehele desktop omvat. Als het gaat om gebruikers die zowel op Windows als op Linux aanmelden, dan lukt dat niet: een Windows-desktop is immers fundamenteel anders dan een Linux-desktop. Wat wel mogelijk is, is om de home directory’s centraal op te slaan zodat de gebruiker in elk geval vanaf beide platforms bij de home directory’s kan komen. Om ervoor te zorgen dat gebruikers vanaf zowel een Linux-computer als een Windows-computer bij hun eigen bestanden kunnen komen, is er een aantal stappen die je moet doorlopen. Om te beginnen zorg je ervoor dat een Linux-gebruikersaccount wordt aangemaakt. Bij het aanmaken van dit gebruikersaccount wordt ook een home directory gemaakt. Het werken met dit account wordt een stuk eenvoudiger als je het als een LDAP-account aanmaakt, zoals in het voorgaande is beschreven. Als het Linux-account is aangemaakt, zorg je er vervolgens voor dat er ook een Samba-server draait. Daarop regel je vervolgens twee zaken. Om te beginnen zorg je ervoor dat de Samba-server is gekoppeld aan LDAP. Als je deze taken uitvoert op SUSE, is dit eenvoudig te regelen; door middel van een klik geef je aan dat Samba integreert met LDAP. Als is aangegeven dat Samba de authenticatie moet afhandelen op LDAP, ben je er nog niet helemaal. Je moet er ook nog voor zorgen dat de in Samba aangemaakte gebruikers de eigenschappen hebben die je normaal gesproken zou verwachten voor Samba-gebruikers. Dit doe je door Samba te vertellen dat het gebruik moet maken van een aanvullend schema-bestand. Doorgaans komt het er op neer dat je zorgt dat er in /etc/openldap/ schema een bestand bestaat met de naam samba3.schema, waarin alle eigenschappen voorkomen die relevant zijn voor Windowsgebruikers. Nadat het schema-bestand is bekendgemaakt, kun je gebruikers aanmaken met de eigenschappen die nodig zijn voor authenticatie op Samba. De manier waarop dit gebeurt, verschilt heel erg per distributie. OpenSUSE biedt een eenvoudige interface waar je in YaST vertelt dat bij het aanmaken van users in LDAP ook de Samba-properties moeten worden meegenomen; op andere distributies kan het vrij lastig worden en zul je moeten werken met LDIF-inputbestanden. Dit zijn ASCII-tekstbestanden waarin de gebruiker met alle eigenschappen is gedefinieerd en die vervolgens in de LDAP Directory moeten worden geïmporteerd met de opdracht ldapadd. De volgende en laatste stap bestaat eruit om het delen van home directory’s aan te zetten. Het goede nieuws is dat dit standaard al gebeurt door middel van de [homes]-share die op de meeste Samba-servers standaard bestaat en is aangemaakt. In Listing 2 zie je hoe deze share doorgaans is gedefinieerd. Nadat de Samba-server opnieuw is gestart, zullen gebruikers automatisch kunnen aanmelden op hun home directory, bestaande 2 Aanmaken van de LDAP-database bestanden lezen en nieuwe bestanden aanmaken, zonder dat het uitmaakt of ze dat vanaf een Windows-machine doen of vanaf een Linux-machine.

LISTING 2
[homes]
comment = Home Directories
valid users = %S, %D%W%S
browseable = No
read only = No
inherit acls = Yes

 

TOT SLOT
Zoals je hebt kunnen lezen, biedt Linux voldoende mogelijkheden te werken met gebruikersprofielen. De manier waarop je het aanpakt, is echter sterk afhankelijk van de wijze waarop gebruikers zich aanmelden op het netwerk. Als deze aanmelding eenduidig is (wat betekent dat ze ofwel alleen vanaf Linux- of alleen vanaf Windowswerkstations aanmelden), dan bieden Samba en LDAP voldoende mogelijkheden. Heb je echter te maken met gebruikers die vanaf beide platforms komen, dan wordt het een stuk lastiger. We hopen dat je op basis van bovenstaande in staat bent om in elk geval in concept het één en ander klaar te zetten. 3 Client-configuratie voor de LDAP-gebruikers