77
Eindwerk: Linux Active Directory Emulatie                      1 Synopsis titel: Linux Active Directory Emulatie auteur: Steve Weemaels, Johan Huysmans, Dimitri Redant promotor: Dhr. Joeri Gerrits Dit project baseert zich op de Microsoft Active Directory, dat een logische laag vormt boven het fysieke netwerk.  Het is de bedoeling dat Windows gebruikers zich kunnen authenticeren op een Linux systeem dat intern op dezelfde logische manier werkt als de Microsoft Active Directory.  De drie voornaamste services die hiervoor gebruikt worden zijn: Samba, Openldap en DDNS.  Samba zorgt voor de communicatie met de windows machines en voor het delen van bestanden, Openldap zorgt voor de interne organisatie van gebruikers, groepen en computers terwijl DDNS (Dynamic DNS) ervoor zorgt dat de windows machines de Openldap server kunnen terugvinden m.b.v. queries en zichzelf kunnen bekendmaken in het naamgevingsysteem. De installatie van het systeem kan volledig grafisch gebeuren dankzij onze “JAVA INSTALLER”.  De samenwerking van de drie services kan beheerd worden door onze “JAVA GUI tool”.  Naast onze JAVA software en de bovengenoemde services, werd er eveneens veel aandacht besteed aan beveiliging.  Enerzijds is er de “TLS” beveiliging dat ervoor zorgt dat de gegevens tussen Samba en Openldap versleuteld worden, anderzijds is er beveiliging tegen servercrashes.  Dit laatste gebeurt door “replicatie”.  Het is mogelijk om 2 systemen synchroon te laten lopen.  Dit betekent dat als het ene systeem crasht, het andere systeem de taak overneemt. Als conclusie kunnen we stellen dat het mogelijk is een goed werkend directorysysteem op te zetten voor windows machines.  Echter is het niet mogelijk om een exacte kopie van de Microsoft Active Directory na te bouwen. Dit komt vooral door het feit dat Microsoft weinig informatie vrijgeeft over hun systeem. 

Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

  • Upload
    others

  • View
    41

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       1

Synopsis

titel: Linux Active Directory Emulatieauteur: Steve Weemaels, Johan Huysmans, Dimitri Redantpromotor: Dhr. Joeri Gerrits

Dit project baseert zich op de Microsoft Active Directory, dat een logische laagvormt boven het fysieke netwerk.  Het is de bedoeling dat Windows gebruikerszich kunnen authenticeren op een Linux systeem dat intern op dezelfde logischemanier werkt als de Microsoft Active Directory.  De drie voornaamste servicesdie hiervoor gebruikt worden zijn: Samba, Openldap en DDNS.  Samba zorgtvoor de communicatie met de windows machines en voor het delen vanbestanden, Openldap zorgt voor de interne organisatie van gebruikers, groepenen computers terwijl DDNS (Dynamic DNS) ervoor zorgt dat de windowsmachines de Openldap server kunnen terugvinden m.b.v. queries en zichzelfkunnen bekendmaken in het naamgevingsysteem.

De installatie van het systeem kan volledig grafisch gebeuren dankzij onze“JAVA INSTALLER”.  De samenwerking van de drie services kan beheerdworden door onze “JAVA GUI tool”.  Naast onze JAVA software en debovengenoemde services, werd er eveneens veel aandacht besteed aanbeveiliging.  Enerzijds is er de “TLS” beveiliging dat ervoor zorgt dat degegevens tussen Samba en Openldap versleuteld worden, anderzijds is erbeveiliging tegen servercrashes.  Dit laatste gebeurt door “replicatie”.  Het ismogelijk om 2 systemen synchroon te laten lopen.  Dit betekent dat als het enesysteem crasht, het andere systeem de taak overneemt.

Als conclusie kunnen we stellen dat het mogelijk is een goed werkenddirectorysysteem op te zetten voor windows machines.  Echter is het nietmogelijk om een exacte kopie van de Microsoft Active Directory na te bouwen.Dit komt vooral door het feit dat Microsoft weinig informatie vrijgeeft over hunsysteem.  

Page 2: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       2

Inhoudstafel

1. Inleiding...........................................................................................................................42. Wat is Active Directory...................................................................................................53. Een korte beschrijving van de onderdelen.......................................................................6

3.1. Samba.......................................................................................................................63.2. Openldap..................................................................................................................63.3. DNS..........................................................................................................................6

4. Openldap als Samba backend..........................................................................................74.1. Configuratie van Openldap als Samba backend.......................................................9

5. DNS................................................................................................................................125.1. Configuratie van de Named server.........................................................................125.2. Secondary DNS......................................................................................................145.3. Dynamic DNS........................................................................................................145.4. Microsoft Domain Controller en Linux DNS server..............................................155.5. NETBIOS vs. DNS................................................................................................175.6. Samba en Name servers.........................................................................................18

6. Automatisatie.................................................................................................................197. RPM installatie script.....................................................................................................208. ACL's.............................................................................................................................21

8.1. Implementatie.........................................................................................................218.2. Besluit....................................................................................................................22

9. Policies...........................................................................................................................239.1. Poledit....................................................................................................................23

9.1.1. De werking.................................................................................................................239.1.2. Modes.........................................................................................................................249.1.3. ADM bestanden..........................................................................................................249.1.4. Zwakheden..................................................................................................................259.1.5. Test.............................................................................................................................259.1.6. Conclusie....................................................................................................................26

9.2. Nitrobit Group Policy.............................................................................................279.2.1. Prijskaartje..................................................................................................................289.2.2. Conclusies...................................................................................................................28

10. Beveiliging...................................................................................................................2910.1. Kerberos...............................................................................................................29

10.1.1. Werking....................................................................................................................2910.1.2. Terminologie............................................................................................................3110.1.3. Pogingen om Kerberos te integreren in ons eindwerk.............................................3110.1.4. Hoe zijn we te werk gegaan.....................................................................................32

Page 3: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       3

10.2. TLS/SSL...............................................................................................................3310.2.1. Werking....................................................................................................................3310.2.2. Hoe zijn we te werk gegaan.....................................................................................3510.2.3. Conclusie..................................................................................................................35

11. Replicatie.....................................................................................................................3611.1. Werking................................................................................................................3711.2. Configuratie..........................................................................................................37

12. De analyse en programmatie van de software.............................................................3912.1. JNDI.....................................................................................................................39

12.1.1. Het Java object zelf opslaan.....................................................................................4012.1.2. Een referentie naar het object opslaan.....................................................................4112.1.3. De informatie als attributen opslaan........................................................................42

12.2. Analyse.................................................................................................................4312.3. De use case...........................................................................................................4412.4. Programmatie van de software.............................................................................45

12.4.1. Connectie maken......................................................................................................4512.4.2. Gebruikers toevoegen, aanpassen en verwijderen...................................................4512.4.3. Groepen toevoegen, aanpassen of verwijderen........................................................4712.4.4. Computers verwijderen............................................................................................4812.4.5. OU's aanmaken en verwijderen................................................................................4912.4.6. Elementen toevoegen of verwijderen aan/uit een OU.............................................5012.4.7. SambaUser................................................................................................................5112.4.8. SambaGroup.............................................................................................................5212.4.9. SambaOU..................................................................................................................5212.4.10. Services...................................................................................................................5312.4.11. De grafische userinterface......................................................................................5412.4.12. Installer...................................................................................................................55

13. De Grafische tool.........................................................................................................5713.1. Services................................................................................................................5813.2. Gebruikers............................................................................................................5913.3. Groepen................................................................................................................6413.4. Computers............................................................................................................6813.5. Ou.........................................................................................................................70

14. Gelijkaardige Projecten................................................................................................7314.1. Samba 4................................................................................................................7314.2. Novell eDirectory.................................................................................................7414.3. Suse Linux Enterprise Server 9............................................................................75

15. Besluit..........................................................................................................................7616. Bijlage en literatuurlijst...............................................................................................77

Page 4: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       4

1. Inleiding

Tegenwoordig staat de opensourcewereld niet meer in zijn kinderschoenen.  Erzijn heel wat applicaties beschikbaar die kwalitatief even hoogstaand zijn alscommerciële software.  Een verwijt dat de opensource wereld echter vaak tehoren krijgt, is dat het geen waardige vervanger heeft van de Microsoft ActiveDirectory.  Dit is wat we met ons eindwerk proberen te bereiken.  Het systeemmoet de voordelen hebben van de Microsoft Active Directory en volledig bestaanuit opensource software.  Daarnaast is het niet enkel de bedoeling dat we eenkant en klaar product afleveren, we vinden het delen van informatie evenbelangrijk.  Daarom dat de bijlage bestaat uit zo'n 100 pagina's aan howto's enbeschrijvingen van de gebruikte technologieën.

Als taal voor onze beheersoftware wordt java gebruikt, aangevuld met enkeleperl scripts.  De software analyse wordt synchroon gedaan met het onderzoeknaar de directoryservices.

De gekozen linux distributie is “Fedora Core 3”.  Deze keuze werd gemaaktomdat deze distributie heel dicht ligt bij de Redhat server.  Ons eindwerk zou inprincipe ook bruikbaar moeten zijn voor alle andere distributies zoals Debian,Slackware, Gentoo,...  Er valt wel aan te merken dat de plaats van deconfiguratiebestanden soms verschilt van distributie tot distributie.

Page 5: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       5

2. Wat is Active Directory

Als men het doel van ons eindwerk wil begrijpen, is het nodig dat men eersteven een kijkje neemt in de Microsoft Active Directory.  Hoewel we om correct tezijn moeten spreken over “Directory Services”,  zullen we in dit verslag vooralActive Directory vermelden, aangezien dit de implementatie is waarop we onsbaseren.

Op zich is de Active Directory niets anders dan een logische voorstelling van eenfysisch netwerk.  Active Directory kent geen routers, kabels, switches,netwerkkaarten en dergelijke.  Het is een volledig logische onderverdeling vangebruikers en computers in groepen en units.  Het kan best zijn dat 2 computersdie geografisch gezien ver van elkaar liggen, samenhoren in één logische groep.Het grote voordeel hiervan is dat men een volledig gecentraliseerd systeemkrijgt.  Als men bepaalde instellingen doet op een Unit, worden deze instellingentoegepast op elk lid van de Unit.  De onderstaande figuur is de Microsoftvoorstelling van hun Active Directory.

Verder is het ook zo dat de Microsoft Active Directory nog vele anderetoepassingen bezit zoals replicatie, VPN (Virtual Private Network), en dergelijke .Deze zaken zijn volgens ons geen vast onderdeel van een directory service,maar aangezien we ook een volledig geïntegreerd systeem willen samenstellen,worden sommige van deze toepassingen ook geïmplementeerd in onze LinuxActive Directory Emulatie.

Page 6: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       6

3. Een korte beschrijving van de onderdelen

3.1. Samba

De term Samba slaat op het SMB protocol van Microsoft dat geïmplementeerdwerd onder Unix systemen.  Het voornaamste doel daarvan is het delen vanprinters en directories alsook het verzorgen van gebruikersauthenicatie.

3.2. Openldap

Openldap is een Unix service dat net zoals samba, volledige gebruikers­authenticatie kan verzorgen.  Daarnaast heeft het als grote voordeel dat menkan gaan werken met organizational units en dat men op de objecten heel watattributen kan gaan toevoegen die de objecten beschrijven.  Mogelijke attributenkunnen zijn:  employeenumber, Address, homedirectory, ...   

3.3. DNS

Hoewel Samba al kon voorzien in een naamservice, werd toch besloten om DNSte gaan gebruiken.  Dit heeft 2 redenen.  De eerste reden is omdat Windows2000 systemen gebruik maken van DNS queries om de LDAP server telocaliseren.  De tweede reden is omdat DNS zo goed als synchroongeorganiseerd is met LDAP.  Dit valt duidelijk op te maken uit onderstaandeillustratie.

Page 7: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       7

4. Openldap als Samba backend

Het is duidelijk uit voorgaande hoofdstuk dat zowel Samba als Openldapbeperkingen hebben.  Openldap heeft als grote beperking dat het op zich geenwindows clients kan authenticeren terwijl Samba als grootste beperking heeft dathet niet de uitbreidbaarheid van Openldap heeft.  Dit probleem wordt opgelostdoor Openldap als backend te laten fungeren voor Samba.In plaats van een Samba database waar alle gebruikers in opgeslagen worden,zal een hier Openldap database gebruikt worden.  

Elk onderdeel in de LDAP tree heeft zijn eigen naamconventie.  De domeinnaamwordt bijvoorbeeld beschreven als: “dc=pinguin, dc=be”.  Dc staat voor “DomainComponent”.De administrator wordt beschreven als:“uid=Administrator,ou=Users,dc=pinguin,dc=be”.  Dit heet de “Distinguishedname” (DN) en is in zekere mate vergelijkbaar met een DNS FQDN (FullyQualified Domain Name).

Onderstaande tabel maakt een vergelijking tussen de naamconventie van LDAPen deze van Microsoft Active Directory:

LDAP Microsoft Active Directory

cn = common name cn = common name

ou = organizational unit ou = organizational unit

o = organisation dc = domain component

c = country n.a.

De beschrijving van een object is steeds van beneden naar boven.vb:

o=pinguin.be

ou=people       ou=machines

                               uid=jeff     uid=patrick

Page 8: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       8

De distinguished name van Jeff is in dit geval: “uid=jeff,ou=people,o=pinguin.be”.De organisatie “o=pinguin.be” zou in Microsoft Active Directory“dc=pinguin,dc=be” zijn.

Een minimale database voor Samba in Openldap ziet er uit als volgt:

Deze screenshot werd genomen vanuit java ldapbrowser, een open sourceprogramma dat met de meeste varianten van LDAP kan communiceren.

De LDAP databank bevat standaard 3 organizational units.  Eén voor gebruikers,één voor groepen en één voor computers.Op de screenshot worden de attributen van het Administrator object getoond.De precieze betekenis van alle attributen wordt later in het verslag besproken.

Page 9: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       9

4.1. Configuratie van Openldap als Samba backend

Eerst en vooral moet het juiste schema gebruikt worden.  Een schema is eensoort blauwdruk van hoe de databankstructuur eruit ziet, vergelijkbaar metschema's in XML.  Dit schema heet samba.schema en moet zich bevinden in deschema directory van openldap: /etc/openldap/schema.

De volgende stap bestaat vooral uit configuratie van bestanden.Zo worden de bestanden:  /etc/nsswitch.conf, /etc/openldap/ldap.conf, /etc/openldap/slapd.conf, /etc/ldap.conf en /etc/sysconfig/authconfig aangepastaan onze noden.  Een domeinnaam, managerpaswoord en restricties wordeningesteld.  Een handige tool dat redhat levert is: authconfig.  Deze tool stelt debestanden in zodat de gebruiker dit niet manueel moet gaan doen.

Eén van de belangrijkste bestanden is slapd.conf.  Daarin staan volgendebelangrijke parameters ingesteld:

include         /etc/openldap/schema/samba.schema

access to attrs=userPassword  by self write  by anonymous auth  by dn="cn=Manager,dc=pinguin,dc=be" write  by * none

access to attrs=sambaLMPassword,sambaNTPassword  by self write  by dn="cn=Manager,dc=pinguin,dc=be" write  by * none

access to *  by * read

De eerste regel geeft aan dat het sambaschema gebruikt wordt.  De regelsdaaronder stellen de permissies in voor de gebruikers van het domein“pinguin.be”.

Page 10: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       10

Het bestand /etc/nsswitch.conf dient om te specificeren in welke databases dehosts, gebruikers, paswoorden en groepen opgeslagen worden.  Hier voegen weLDAP toe als volgt:

passwd: files ldap shadow: files ldap group: files ldap ldap protocols: files ldap 

Een redhat specifiek bestand is /etc/sysconfig/authconfig.  Hierin wordt het typevan de authenticatie in vermeld.  De parameter USELDAPAUTH moet hier op“yes” komen te staan.

USECRACKLIB=yesUSEDB=noUSEHESIOD=noUSELDAP=yesUSENIS=noUSEPASSWDQC=noUSEWINBIND=noUSEKERBEROS=noUSELDAPAUTH=yesUSEMD5=yesUSESHADOW=yesUSESMBAUTH=noUSEWINBINDAUTH=no

Page 11: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       11

Onze Sambaserver zal beschikken over de volgende eigenschappen:

– Samba is een PDC– Samba haalt de gebruiker­ en groepgegevens uit de LDAP database– Gebruikers zullen hun profielen opslaan op deze server.  

Het instellen van Openldap als backend gebeurt als volgt in het sambaconfiguratiebestand:

passdb backend = ldapsam:ldap://127.0.0.1ldap suffix = dc=pinguin,dc=beldap machine suffix = ou=Computersldap user suffix = ou=Usersldap group suffix = ou=Groupsldap idmap suffix = ou=Usersldap passwd sync = Yesadmin users = @”Domain Admins”ldap admin dn = cn=Manager,dc=pinguin,dc=be

Ldap passwd sync betekent dat als een gebruiker zijn paswoord verandert,SambaNTPassword,   SambaLMPassword ook veranderen.  Ook het attribuutpwdLastSet zal geupdated worden.  Het zorgt m.a.w. voor een synchronisatietussen Openldap en Samba.

Eén van de moeilijkste zaken is het vullen van de Openldap database met denoodzakelijke gegevens.  Gelukkig zijn op het internet enkele opensourcetoolsbeschikbaar die deze taak wat vereenvoudigen.  Deze tools heten: SMBLDAP­TOOLS en bestaan uit allerlei perl scripts datfuncties zoals gebruikers toevoegen en verwijderen, de databank vullen,gebruikers in groepen steken, enz... vervullen.  Men kan hun werking vergelijkenmet de unixcommando's: useradd, userdel, usermod, groupadd, groupdel,groupmod en passwd.  De instellingen van deze tools worden in het bestand /etc/smbldap­tools/smbldap.conf ingesteld.  Daarin kan men onder andere hetpoortnummer, de locatie van SSL certificaten, de default map voorhomedirectories,... instellen.  De tools geven ons een exact idee van hoe wemoeten omgaan met de LDAP databank.  Later in ons project worden deze toolsomgezet in java code en toegevoegd aan het framework.

Page 12: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       12

5. DNS

Het Domain Name System wordt niet enkel op het internet gebruikt, maar kanook op lokale netwerken handig zijn. Zo kan men een interne server een dns­naam geven zodat de gebruikers niet telkens het IP adres van deze servermoeten invoeren. Een Windows Domain Controller is sterk afhankelijk van deDNS server, hierdoor werd het nodig geacht om de verschillende aspecten vande DNS server te onderzoeken.

5.1. Configuratie van de Named server

De configuratie bestaat uit verschillende bestanden, het belangrijkste bestand is“/etc/named.conf”.  Hierin worden al de instellingen gemaakt en wordt verwezennaar de verschillende zonebestanden.  In deze bestanden kan men de vertalingvan hostname naar IP adres en omgekeerd terugvinden.

Het named.conf bestand kan voor de eenvoud in 3 delen worden opgedeeld. Het eerste deel zijn de opties.  Hier worden de algemene instellingen gemaakt.Er zijn een groot aantal opties mogelijk, in het configuratiebestand worden enkeldeze gebruikt die we echt nodig hebben.

Het tweede deel bevat de zone definities.  Standaard zijn er 5 zones. De root zone, hierin staan de 13 root name servers gedefinieerd.  In de localhosten 0.0.127.in­addr.arpa zone wordt de naam localhost gekoppeld aan 127.0.0.1en omgekeerd.  Deze 3 bestanden zijn overal gelijk.In de pinguin.be en 123.168.192.in­addr.arpa zone worden de hostsgedefinieerd op het netwerk. In het bestand pinguin.zone worden de hostsomgezet naar hun IP adres, in het bestand 123.168.192.in­addr.arpa.zoneworden de IP adressen omgezet naar de juiste FQDN (DNS naam).

Page 13: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       13

Het derde deel is optioneel, het bevat informatie over het loggen.  Als men geengebruik maakt van logging zal de informatie terecht komen in de“/var/log/messages” file.Via het logging gedeelte kan men 3 bestanden aanmaken om zo de informatie tesorteren. De algemene informatie wordt in het bestand named.log gezet, de uitgevoerdequeries in het bestand queries.log en informatie over de updates worden inupdates.log geplaatst.Men kan zelf bepalen wat er juist gelogd wordt in welke bestanden, men kan danook nog enkele opties bepalen per bestand, zoals o.a. het aantal bestanden,hoe groot elk bestand mag worden en of er een tijd moet afgedrukt worden.

De verschillende zonebestanden hebben ongeveer dezelfde structuur, éénuitzondering hierop is de named.ca file (root zone). Elke zone bevat een SOA(Start of Authority) waarin de serial en refresh tijden worden gedefinieerd, elkezone bevat ook een NS (Name Server) record waar de name servers wordengedefinieerd voor dat domein.In een zone file kan men ook een A (Address) of CNAME (Canonical Name)record terugvinden. De A zet een naam om naar een IP adres, met CNAMEmaakt men een alias.  In de reverse lookup zone maakt men geen gebruik van Aen CNAME maar van PTR (Pointer) dit zet een IP adres om naar een FQDN(Fully Qualified Domain Name).

De gemaakte configuratie kan op fouten gecontroleerd worden door 2hulpprogramma's:  “named­checkconf” controleert de named.conf file op syntax­fouten, “named­checkzone” checkt een bepaalde zone file op syntax enintegriteitsfouten.Bij het starten van de named server worden deze controles ook uitgevoerd.

Om een werkende server te testen kan men gebruik maken van één vanvolgende 3 hulpprogramma's: nslookup (is ook beschikbaar voor windows), hosten dig.

Page 14: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       14

5.2. Secondary DNS

Een synoniem voor secondary DNS is backup DNS. De secundaire DNS serverzal altijd dezelfde informatie bevatten als de primaire DNS server, na eenbepaalde tijd zal het zonebestand gekopieerd worden van de primaire naar desecundaire DNS server. Als één van beide servers niet meer beschikbaar iskunnen de clients requests uitvoeren naar de andere server. 

Om dit te bekomen moet op beide servers iets aangepast worden.Op de primaire DNS server moet men transfers toelaten. Dit doet men door deoptie “allow­transfer” toe te voegen bij de zones die men beschikbaar wilt stellenvoor de secundaire DNS server.Op de secundaire DNS server gaat men bij de bepaalde zone vermelden dat ditvan het type slave is, alsook via de optie “masters” aanduiden waar de primaireDNS server zich bevindt.

Als beide servers herstart worden zal onmiddellijk die bepaalde zone kopieerdworden naar de backup server.

5.3. Dynamic DNS

Een dynamic DNS zorgt ervoor dat één of meerdere clients zelf records kunnentoevoegen of verwijderen uit de DNS server.  Als men een dynamic DNS serverinstelt zullen zowel de Windows als Linux clients hun naam kunnen registreren.

Het omzetten van een gewone DNS server naar een dynamic DNS servergebeurt door het toevoegen van één regeltje per zone. Bij de zones die mendynamic wilt maken moeten men de optie “allow­update” toevoegen.

De gemaakte updates zullen niet eeuwig beschikbaar zijn maar zullen verwijderdworden als de “Time to live” is verstreken.

Page 15: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       15

5.4. Microsoft Domain Controller en Linux DNS server

Bij de installatie van een Domain Controller moet een DNS server geïnstalleerdworden, ofwel kan de DNS server van microsoft gebruikt worden ofwel eenandere server.  Om zoveel mogelijk van de werking van de DNS bij een DomainController te weten te komen werd gekozen om de Windows Domain Controllerte laten samenwerken met de Linux named server.

Als eerste werd de named server geconfigureerd.  Enkele zaken moesten juistingesteld worden voor een goede werking.  Zo moest er een zone beschikbaarzijn met dezelfde naam als de domeinnaam.  Die zone moet “dynamic“ zijn, deoptie “allow­update” moet dus toegevoegd worden. Vanop de Domain Controller moet deze DNS server beschikbaar zijn en dusqueries kunnen uitvoeren.

Bij het uitvoeren van “dcpromo”, het commando om onder windows server deActive Directory op te zetten, wordt gevraagd naar de volledige DNS naam, dit isde naam van de zone die eerder werd gedefinieerd.De installatiewizard zal dan op zoek gaan naar de DNS server (degene die isingesteld bij windows IP­settings), als hij deze gevonden heeft wordt ook getestof hij updates kan uitvoeren. 

Als de installatie voltooid is en de computer herstart, zullen er bij het booten alde nodige records worden toegevoegd. Al deze toegevoegde records kunnen verdeeld worden in 4 subzones, namelijk:_msdcs, _sites, _tcp en _udp.  Binnen deze 4 subzones komen er 4 SRVrecords regelmatig terug, namelijk: _ldap, _kerberos, _kpasswd, _gc.Deze DNS structuur van een DC kan weergegeven worden als eenboomstructuur, deze ziet er als volgt uit: 

Page 16: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       16

Page 17: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       17

Dit zijn héél wat records, waarvan er veel niet gebruikt worden. Zo zijn er recordsbij die enkel gebruikt worden wanneer er verschillende sites gedefinieerd zijn.  Inde lijst vind men 2 keer een 128bit nummer, deze worden enkel gebruikt als hetdomein hernoemd wordt.  Tussen al de SRV records zitten ook enkele Arecords, deze zijn bedoeld voor clients die geen gebruik kunnen maken van deSRV records.Als we kijken naar de queries dat uitgevoerd worden bij het starten en inloggenvan een windows client zal men zien dat enkel naar deze record wordt gezocht:_ldap._tcp.dc._msdcs.pinguin.be

5.5. NETBIOS vs. DNS

NETBIOS (Network Basic Input/Output System) is de oude manier dat doorWindows wordt gebruikt voor name resolution.  De nieuwe manier is nameresolution via DNS. 

Vanaf Windows versies 2000/XP is het mogelijk om NETBIOS over TCP/IP uit teschakelen en is het enkel nog aanwezig voor backwards compatibility.  Op denetwerken waarbij NETBIOS is uitgeschakeld is het dus noodzakelijk om een(D)DNS server te hebben.

In een NETBIOS netwerk zal er altijd een WINS (Windows Inter­networkingName Server) server zijn, indien deze niet gekend is zullen de clients werkenmet UDP broadcasts om hun naam bekend te maken.  In het andere geval wordtde naam direct bij de WINS server geregistreerd.

Als er nog geen WINS server aanwezig is, zal één van de machines automatischWINS server worden. Als men zelf de WINS servers aanmaakt moet men er opletten dat er geen 2 WINS servers zijn op hetzelfde netwerk.Doordat DNS gebruikt wordt op het wereldwijde Internet, is op de meestecomputers DNS dan ook beschikbaar.  De Windowsversies 2000/XP en hogerkunnen hun hostname registreren bij een Dynamic DNS server, zodat de pc zelfbekend is in het netwerk.  Dit komt dus overeen met het principe van NETBIOS.

Page 18: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       18

5.6. Samba en Name servers

In het configuratiebestand van samba kan men enkele wijzigingen aanbrengenzodat deze gebruik gaat maken van de DNS server.  Het is mogelijk het gebruikvan NETBIOS binnen samba uit te schakelen maar dit kan niet gecombineerdworden met een samba Domain Controller.Op een windows client is het ook mogelijk om het gebruik van NETBIOS uit teschakelen, indien dit zo is ingesteld zal het niet mogelijk zijn om deze op onsdomein te joinen.

Page 19: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       19

6. Automatisatie

Voor een drukke netwerkspecialist die dikwijls nieuwe domeinen moet aanmakenzou het configureren van al deze services veel te veel tijd innemen.  Daaromwerd besloten om een enkele installatiescripts te schrijven in perl.  Deze scriptsgaan aan de hand van een aantal commandline argumenten alle nodigebestanden parsen.  Het resultaat is dat men dankzij onze scripts op enkeleseconden tijd een werkende directory service opgezet heeft met een draaiendesamba, Dynamic DNS en openldap.  Deze scripts zullen later opgeroepenworden door onze grafische java installer.

In totaal werden er 5 scripts geschreven:

– install_DIRECTORYSERVICES.plParst de samba en openldap configuratiebestanden en vult de ldapdatabankmet de nodige data.  Nadat men dit script uitgevoerd heeft kan menwindowsclients laten inloggen op het domein.

– install_PDC.pl en install_BDC.plDeze scripts moeten uitgevoerd worden op 2 verschillende servers, het steltde machines in als PDC of BDC met ldapreplicatie.

– install_DNS.plParst de configuratiebestanden van de DNS server, zorgt ervoor dat dynamicDNS werkt en dat SRV records beschikbaar zijn.

– install_RPM.plInstalleert de nodige RPM's nadat gecontroleerd werd welke er reedsgeïnstalleerd werden op het systeem.  

Page 20: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       20

7. RPM installatie script

Het install_RPM.pl script controleert of de nodige programma's en librariesaanwezig zijn en houdt zelfs rekening met de juiste versie. Als “juiste” versiebeschouwen we hier de versie dat geleverd wordt op de cd's van Fedora Core 3.

Als een bepaald programma nog niet geïnstalleerd is wordt het gedaan door hetscript.  Als er reeds een (oudere of nieuwere) versie aanwezig is wordt dezeeerst verwijderd waarna de juiste versie wordt geïnstalleerd.

Elke package heeft enkele afhankelijkheden of “dependencies”.  Deze werdenook toegevoegd aan het script om de meeste dependencyproblemen tevoorkomen.  Hierdoor is de lijst van te installeren packages groter dan het aantalservices.

Voor bind worden 3 pakkettengeïnstalleerd. 

* bind­libs­9.2.4­2* bind­utils­9.2.4­2* bind­9.2.4­2

Voor samba worden 2 pakkettengeïnstalleerd.

*samba­common­3.0.8­0.pre1.3*samba­3.0.8­0.pre1.3

Voor ldap worden 2 pakketten geïnstalleerd.

*openldap­clients­2.2.13­2*openldap­servers­2.2.13­2

Voor smbldap worden 6 pakkettengeïnstalleerd.

*perl­Digest­MD5­M4p­0.01­1.1.fc3.rf*perl­Digest­SHA1­2.10­1.1.fc3.rf*perl­Crypt­SmbHash­0.02­1.1.fc3.rf*perl­Convert­ASN1­0.18­0.1.fc3.r*perl­Net­LDAP­0.2701­1.1.fc3.rf*smbldap­tools­0.8.5­1.1.fc3.rf

Page 21: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       21

8. ACL's

Acl's zijn een onmisbaar onderdeel van de Windows beveiliging.Ze zorgen ervoor dat op een bestand per gebruiker kan gedefinieerd wordenwelke rechten deze heeft.  Als men in een situatie komt waarbij bijvoorbeeld 15gebruikers een bestand mogen editeren, 6 groepen dit bestand mogenuitvoeren, 9 gebruikers het bestand mogen uitvoeren en editeren, 8 gebruikersgeen rechten erop hebben en de rest enkel leesrechten krijgt, dan kan het eenredelijk complexe situatie worden om dit te verwezelijken zonder ACL's.  Vooral voor het gebruik van Samba komen deze ACL's van pas.

8.1. Implementatie

Als men een vrij recente kernel ­ het hart van het besturingssysteem ­ terbeschikking heeft (in ons geval de 2.6 kernel van Fedora Core 3), heeft menreeds alles ter beschikking.  Indien er van een oudere kernel gebruik gemaaktwordt, zijn er patches beschikbaar op het internet.  Het enige dat moet gedaan worden is het keyword 'acl' toevoegen aan /etc/fstab:

LABEL=/home            /home                  ext3    defaults,acl        1 2

Remounten of de computer heropstarten zorgt ervoor dat de acl's gebruiktkunnen worden.

We gaan de ACL's opvragen met het commando: getfacl

De output hiervan is de volgende: 

# file: test# owner: root# group: rootuser::rw­group::r­­other::r­­

Page 22: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       22

Om de gebruiker 'fred' het read/write recht te geven gebruiken we het volgendecommando: setfacl ­m fred:rw test

Een voorbeeldsituatie met verschillende gebruikers: de gebruiker ftp heeftreadrechten, de gebruiker squid heeft alle rechten en de gebruiker fred heeftread en write rechten.

# file: test# owner: root# group: rootuser::rw­user:ftp:r­­user:squid:rwxuser:fred:rw­group::r­­mask::rwxother::r­­

8.2. Besluit

Hoewel de ACL's zeker hun nut hebben zagen we het niet direct noodzakelijkom een extra wrapper ervoor te schrijven.  In grote netwerken waarbij men veleverschillende gebruikers en groepen heeft kunnen de ACL's eventueel wel goedvan pas komen.  Ons eindwerk richt zich echter eerder tot kleinere netwerkenen de standaardpermissies van Unix samen met alle extra beveiliging vansamba en smbldap­tools bieden genoeg mogelijkheden om een degelijkbestandsbeheer te implementeren zonder dat ACL's noodzakelijk zijn.  

Page 23: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       23

9. Policies

9.1. Poledit

De tool dat we zullen gebruiken om policies te specifiëren is poledit.Zaken zoals: toegang tot opties in het control panel, uitzicht van de desktop,netwerkmogelijkheden en andere,  kunnen ingesteld worden.Alles wat ingesteld wordt in de policies, wordt toegepast op de registry.De tool zelf wordt geleverd bij windows NT4 of kan gratis gedownload wordenvan het internet.

9.1.1. De werking

Als een gebruiker aanlogt op het domein, of als een userprofile wordt geladen,wordt uit de NETLOGON map het NTConfig.POL bestand gehaald.  Aangeziende NETLOGON map zowel in Windows NT als in Samba bestaat, kan Sambaook met de policies om.

In dit bestand kunnen 4 soorten policies voorkomen.Policies op USER

­> de instellingen worden opgeslaan in de registry in:     HKEY_CURRENT_USER

1. Policies op GROUP­> de instellingen worden net als in de USER policies opgeslaan in de      registry in: HKEY_CURRENT_USER

2. Policies op COMPUTER­> de instellingen worden opgeslaan in de registry in:     HKEY_CURRENT_MACHINE

3. Default policies­> deze instellingen worden pas geladen als er geen andere policies     gedefinieerd zijn  en werken op dezelfde manier als de USER­ en     GROUP policies.

Page 24: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       24

9.1.2. Modes

Er zijn 2 modes: de registry mode en de policy mode.Met de registry mode, kan men op de computer waarop poledit draait,rechtstreeks de registry gaan aanpassen.De policy mode dient om een NTConfig.POL bestand aan te maken. Dit ishetgene dat we zullen gebruiken.

9.1.3. ADM bestanden

De ADM bestanden zijn te vergelijken met LDAP of XML schema's dat bepalenwelke elementen er mogen voorkomen in de policy.

Deze zijn de belangrijkste:– Winnt.adm: deze bevat instellingen voor Win NT en varianten 

(niet voor Win 95 – 98 – ME) – Common.adm: deze bevat settings zowel voor Win NT als voor Win95 – 98– cpanel.adm: deze werd na lang zoeken gevonden op het internet en bevat

opties voor het restricteren van het control panel.

De volgende screenshots illustreren het gebruik van Poledit:

In deze menu's kan men 'users' en 'groups' gaan toevoegen aan de policy.

Page 25: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       25

Per gebruiker of groep kan men een scala aan opties instellen.

9.1.4. Zwakheden

De grootste zwakheid is dat poledit enkel beschikbaar is voor NT4 computers.Vele registrysettings zijn sinds Windows 2000 dezelfde gebleven maar sommigezijn ook veranderd.  Dat wil zeggen dat deze settings niet meer toepasbaar zijn.Ook hangt het ervan af welke service packs op de clientcomputers geïnstalleerdzijn.

9.1.5. Test

Als test werden 2 nieuwe groepen aangemaakt. De restricted group heeft geenrechten tot het control panel, geen 'run' tool en geen rechten tot 'regedit'. Denonetwork group heeft geen rechten om in het lokale netwerk te browsen.

Page 26: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       26

De gebruiker Jeff kan alles doen met zijn computer, behalve browsen in hetnetwerk.  De gebruiker Patrick kan daarentegen wel browsen in het netwerk,maar heeft geen rechten tot het control panel, de 'run' tool en 'regedit'.De gebruiker Jane, heeft geen rechten tot netwerkbrowsing en geen rechten tothet control panel, de 'run' tool en 'regedit'.

9.1.6. Conclusie

We hebben ondervonden dat de policies meestal goed werden toegepast, maarniet altijd.  Bij één clientcomputer leken de policies niet te werken, bij de tweeandere wel. 

Ook werd opgemerkt dat een werkende configuratie die getest werd op pc Asoms na een tijdje niet meer bleek te werken.  Toen pc B aangesloten werd alsclient, bleek de configuratie wel te werken.  Toen opnieuw pc A aangeslotenwerd, bleek de configuratie terug opnieuw te werken.  We hebben niet kunnenverklaren hoe dit kwam.

In de poging om specifieke windows XP policies te kunnen instellen, werden de .adm bestanden die in windows XP gevonden werden geladen.Poledit crashte echter aangezien deze bestanden vanaf windows ME uit eenander formaat bestaan.

Het algemeen besluit is dat als policies toegepast moeten worden, deze besteerst grondig getest worden alvorens ze grootschalig te gaan toepassen.Mensen met een goede kennis van de registry kunnen eventueel in staat zijnbepaalde policies te omzeilen.

Page 27: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       27

9.2. Nitrobit Group Policy

De Nitrobit group policy is een alternatief voor het Microsoft Group Policysysteem dat gebruikt wordt in Microsoft Active Directory.  Het heeft echter hetvoordeel dat het gebruikt kan worden in combinatie met Samba domeinen.Nitrobit raadt ook aan om Samba te combineren met LDAP, maar in principehoeft het niet.Het is wel noodzakelijk om extra software te installeren op de windows clients inhet netwerk.

Het systeem kan ongeveer hetzelfde doen als de Microsoft group policies.  Hetheeft ook nog enkele extra tools die dienen om de connectie met LDAPmakkelijker te maken.

Op onderstaande screenshot valt op te merken dat het hier om een exacte kloongaat van de group policy console van Microsoft.

De group policy console van Nitrobit

Page 28: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       28

9.2.1. Prijskaartje

We hebben een mail gestuurd naar Nitrobit met de vraag naar de prijzen.Deze tabel hebben we gekregen:

quantity: price per client License1 $1625 $1450 $12100 $10500 $91000 $8over 1500 on request

Per Upgrade moet er nog een extra kost van 20 tot 40 % betaald worden

Om dit even toe te passen op een netwerk van 200 computers:200 x $10 = $2000.

9.2.2. Conclusies

We hebben met de trial versie wat geëxperimenteerd en zijn tot de conclusiegekomen dat Nitrobit Group Policy zeer degelijke software is.Het grote probleem is echter dat deze software betalend is.  Dit is tevens dereden waarom we niet met deze software verderwerken in ons eindwerk.  Als men de prijs bekijkt die men betaalt voor 200 clients, kan men ervan uitgaandat het beter is om een echte Microsoft Domain controller aan te kopen bij eengroter netwerk, aangezien deze behalve de group policies nog vele anderemogelijkheden heeft.

Page 29: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       29

10. Beveiliging

In een hedendaags netwerk is beveiliging heel belangrijk.  Daarom werdbesloten om ons systeem te onderzoeken op gaten.Als een windows client inlogt op het domein worden er zo'n 10000 pakettenverstuurd.  Het duurde slechts 5 minuten of we hadden met behulp van packetsniffers (ethereal en ettercap) het manager paswoord (het paswoord dat Sambagebruikt om te communiceren met Openldap) in cleartext van het netwerkgehaald.

Daarom hebben we besloten dat het netwerkverkeer beveiligd moest worden.We hebben 2 mogelijkheden geprobeerd: Kerberos en TLS/SSL.Onze eerste keuze viel op Kerberos omdat Microsoft dit protocol gebruikt in hunActive Directory.

10.1. Kerberos

Kerberos is een authenticatieprotocol (MIT) met als voornaamste doel: veiligheiden “single sign on”.  

10.1.1. Werking

In tegenstelling tot vele andere authenticatieprotocollen authenticeert kerberoselke gebruiker niet opnieuw voor een bepaalde netwerkservice.  Kerberosgebruikt encryptie en een vertrouwde derde partij (trusted third party): de KeyDistribution center (KDC).  Eenmaal een gebruiker zich authenticeert bij de KDC,zendt deze een specifiek ticket terug dat ervoor zorgt dat de gebruiker zich voorelke service authenticeert.  Dit principe heet “single sign on”.

Page 30: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       30

Met behulp van onderstaande tekening wordt de werking in stappen uitgelegd:De terminologie wordt later uitgelegd.

Als een gebruiker inlogt op een netwerk dat Kerberos als authenticatie gebruikt,moet hij eerst een request zenden naar de KDC voor een ticket (1).Dit kan gezonden worden door het login programma of door kinit als degebruiker ingelogd is.De KDC checkt de principal in zijn database (2).  Indien deze gevonden is, geeftde KDC de TGS opdracht om een TGT aan te maken (3).  Deze isgeëncrypteerd met de key van de gebruiker (afgeleid van het paswoord).  DeTGT wordt vervolgens naar de gebruiker gestuurd (4).De login of het kinit programma op de client machine decrypteert de TGT met dekey van de gebruiker.  Deze key wordt overigens nooit over het netwerkverstuurd.De TGT wordt opgeslaan in de cache van de client en wordt na een bepaaldeperiode ongeldig (meestal na 10 uur).  Voor deze periode moet de gebruikernooit meer zijn paswoord opnieuw geven aan de KDC (tenzij hij uitlogt).Telkens de client een nieuwe service wil gebruiken (5), gebruikt de clientsoftwarede TGT om een nieuw ticket aan de TGS voor deze service aan te vragen (6­8).Het is ook belangrijk te weten dat de klok tussen client en servergesynchroniseerd moet zijn (5 mins max is de standaard).

Page 31: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       31

10.1.2. Terminologie

­ ciphertext: geëncrypteerde data­ credential cache / ticket file: bestand dat de key bevat om data te decrypteren­ KDC: (key distribution center): server dat kerberos ticket uitdeelt­ principal: een gebruiker/service dat zich met kerberos kan authenticeren­ key table /keytab: tabel van de principals en hun keys­ ticket: identificeert een client­ TGS (ticket granting service): een service dat tickets levert aangebruikers/programma's ­ TGT (ticket granting ticket): een ticket dat ervoor zorgt dat clients bijkomendetickets kunnen krijgen zonder hen te moeten vragen aan de KDC.­ kinit: commando, zorgt ervoor dat een ingelogde principal de TGT (ticketgranting ticket) kan krijgen en cachen­ realm: een netwerk dat kerberos gebruikt

10.1.3. Pogingen om Kerberos te integreren in ons eindwerk

Het eerste probleem waarmee we te kampen hadden was dat de Microsoftimplementatie van Kerberos verschilt van de implementatie die we onder linuxgebruiken namelijk Kerberos V.  Het is onduidelijk hoe een windows clientgebruik maakt van dit protocol.Op een forum werd wel volgende informatie gevonden:

benodigdheden voor een samba domaincontroller voor windows 2000authenticatie:– een Kerberos V KDC dat de win 2000 PAC kan uitdelen (deze is echter niet

gedocumenteerd)– Ldap server dat Kerberos V gebruikt als authenticatie– een CIFS server (samba)

Er werd geprobeerd om verschillende manuals te volgen.  Het authenticeren vanlinux clients werkte perfect.  De tool authconfig werd hiervoor gebruikt.  Daarnahebben we geprobeerd met behulp van forums en man pages een windowsclient te laten authenticeren. 

Page 32: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       32

10.1.4. Hoe zijn we te werk gegaan

We hebben de openldap admin guide op www.openldap.org strikt gevolgd.

– Er werd een service key aangemaakt met de principal:ldap/[email protected].

– Slapd, de LDAP server, moet toegang hebben tot de key.  Dit wordt gedaandoor de key in keytab te plaatsen met kadmin.

– De permissies van ldap.keytab werden gewijzigd zodat LDAP leesrechtenheeft.

– Openldap.conf werd aangepast.  De entries 'sasl­realm' en 'sasl­host' werdentoegevoegd.  Daarna werd de variabele KRB5_KTNAME geset op deldap.keytab file.

– Er werd een SRV record toegevoegd in de DNS.

Dit leverde echter geen succes op.  Met ethereal konden we zien dat dekerberos authenticatie overgeslaan werd door de windows client.  Er werden dusenkel maar SMB en  LDAP requests uitgevoerd.  Dit betekende voor ons dat wemoesten zoeken naar een andere beveiliging.

Page 33: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       33

10.2. TLS/SSL

TLS staat voor “transport layer security” en is een open IETF standaardgebaseerd op de SSL (Secure Socket Layer) standaard.SSL is een transportlaag dat door andere protocollen kan gebruikt worden.  Demeest bekende is HTTP.  De termen SSL en TLS zullen hier door elkaar gebruiktworden afhankelijk van de situatie.

10.2.1. Werking (illustraties: www.solidium.nl)

De versleuteling van SSL/TLS is bijzonder complex. Eerst en vooral moet menweten dat er 2 types versleuteling zijn.  De symmetrische en de asymmetrischeversleuteling.

Symmetrisch versleuteling: Zowel encryptie als decryptie gebeurt met dezelfdesleutel.  Deze heet de “sessie  sleutel”.

Asymmetrische versleuteling: Een publieke sleutel encrypteert een tekst,enkel de private sleutel is in staat deze tekst te decrypteren.  De omgekeerdesituatie is ook mogelijk, nl: het encrypteren met een private sleutel endecrypteren met een publieke sleutel.

Page 34: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       34

SSL werkt met de voordelen van beide types versleuteling:Symmetrische versleuteling is zeer snel, terwijl het voordeel van asymmetrischeversleuteling is dat er geen geheime sleutel afgesproken moet worden.

Als de server bij het opzetten van de SSL verbinding zijn publieke sleutel naarde client stuurt kan men niet 100% zeker zijn dat deze wel afkomstig is van dejuiste server.  Om zeker te zijn dat de sleutel niet door iemand onderweg werdvervangen, wordt deze verpakt in een certificaat dat werd uitgegeven door eencertificaatverstrekker zoals VeriSign.  Het is ook mogelijk om zelf een certificaataan te maken.

De 3 functionaliteiten van deze beveiliging zijn:

– vertrouwelijkheid: client en server beschikken over de nodige sleutels zodatze in staat zijn berichten naar elkaar te sturen die enkel zij kunnen lezen.

– authenticatie: de authenticatiedienst bestaat uit twee varianten.  Deeenzijdige authenticatie (server is bekend bij de client door zijn certificaat) ende tweezijdige authenticatie (beiden zijn bekend bij elkaar).

– integriteit: SSL/TLS biedt garantie dat gegevens niet gewijzigd wordentijdens het transport.

Page 35: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       35

10.2.2. Hoe zijn we te werk gegaan

Aangezien TLS het standaard beveiligingsprotocol is voor Openldap, leek dit onsde aangewezen keuze voor de tweede test.

Eerst en vooral maken we een certificaat en private key aan met het commando:openssl req ­new ­x509 ­nodes ­out server.pem ­keyout server.pem ­days 365

De private key wordt hiermee automatisch aangemaakt en weggeschreven in hetbestand server.pem.  Vervolgens worden enkele vragen gesteld waarvan deantwoorden verwerkt worden in het certificaat, dat ook weggeschreven wordt inserver.pem.  

Het bestand server.pem wordt gekopiëerd naar /etc/openldap.

In slapd.conf worden 3 regels toegevoegd:TLSCACertificateFile, TLS CertificateFile en TLSCertificateKeyFile.  Deze verwijzen allemaal naar het server.pem bestand.

10.2.3. Conclusie

Het opzetten van een TLS ­ beveiligde LDAP server duurt slechts enkeleminuten.  Bij het packet sniffen werd vastgesteld dat geen paswoorden incleartext over het netwerk verstuurd werden.

Page 36: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       36

11. Replicatie

We vonden het belangrijk dat ons eindwerk bruikbaar zou zijn in een echtnetwerk.  Dit betekent dat er redundantie moet zijn.  Als er een server uitvalt,mag dit niet betekenen dat de windows clients niet meer kunnen aanloggen.Samba 3 beschikt over de mogelijkheden om als BDC te fungeren.Met dit in het achterhoofd beschikken we over de volgende oplossingen:

PDC Backend BDC Backend Conclusie

smbpasswd file smbpasswd file Niet aan te raden.  We zoudenrsync/cron moeten gebruiken.  Dit isgeen elegante oplossing.

centrale LDAPserver

centrale LDAPserver

Elegante oplossing, echter doetzich hier het probleem voor dat alsde LDAP server crasht, er ook geenbackup is.

master LDAP server slave LDAP server Dit is de oplossing die wij hier zullenbespreken aangezien dit eenvolledige backupstrategievertegenwoordigt.

We zullen één machine gebruiken om de PDC en de master LDAP server op teinstalleren.  Een andere machine zullen we gebruiken om de BDC en de slaveLDAP server te installeren.De LDAP slave server is een kopie van de LDAP master server.  Echter, zaldeze enkel read requests beantwoorden.  Als deze een write request krijgt, zaldeze de request doorsturen naar de master server.Elke wijziging aan de master server zal ook doorgevoerd worden naar de slaveserver.

Page 37: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       37

11.1. Werking (openldap.org)

Slurpd zorgt voor de replicatieservice:

1. De client wijzigt iets aan de master ldap server.2. De master ldap server voert de wijziging uit en schrijft de wijziging naar dereplicatie logfile en returnt een success code naar de client.3. Het slurpd proces verneemt dat er een nieuwe entry toegevoegd werd aan dereplicatielogfile, leest deze en stuurt de wijziging door naar de slave server.4. De slave server wijzigt zijn database en stuurt een success code door naarhet slurp proces.

11.2. Configuratie

Configuratie van de master en slave LDAP servers:

Eerst moeten de databankbestanden in de directory van de master server,vermeld bij 'directory' in de slapd.conf file, gekopieerd worden naar dezedirectory in de slave server.Bij deze actie is het aan te raden de services op beide machines te stoppen.Daarna moet de master server als eerste opgestart worden, vervolgens de slaveserver.

configuratie van slapd.conf:

#masterreplogfile /var/lib/ldap/replogreplica uri=ldap://10.0.0.20:389binddn="cn=Manager,dc=test6,dc=be"bindmethod=simple credentials=secret

#slaveupdatedn "cn=admin,dc=example,dc=org"

updateref ldap://10.0.0.1

Page 38: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       38

Zoals op de tekening te zien is, werken op die manier samba en ldaponafhankelijk.

Als de eerste machine met de samba PDC en de master LDAP server uitvalt, zalde tweede machine dat beschikt over de samba BDC en de slave LDAP serverervoor zorgen dat de clients toch kunnen aanloggen op het domein.

Een andere mogelijkheid zou zijn dat zowel in het configuratiebestand van dePDC als van de BDC, de beide LDAPservers gespecifieerd worden.  Hetvoordeel is dat als de LDAP server het begeeft op de PDC, de PDC niet downgaat, aangezien de PDC de slave LDAP server zal gebruiken als backend.In onze situatie gaan we er echter van uit dat samba en LDAP één geheelvormen en dat elke sambaservice zijn eigen LDAP backend toegewezen krijgt.Dit is ook de manier waarop Microsoft Domain Controllers werken.

Page 39: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       39

12. De analyse en programmatie van de software

Het gebruiksgemak van de software was één van de belangrijkste zaken.  DeLDAP structuur en commando's zitten voor leken te ingewikkeld in elkaar.  Dit isdan ook de reden waarom ervoor gekozen werd om een userinterface te makendie eenvoudig te bedienen is en waar geen kennis van LDAP voor vereist is.

Doordat er een userinterface geschreven moest worden, werd er een keuzegemaakt van hoe deze interface aan de gebruiker zou voorgeschoteld worden.

Er werd besloten dat de userinterface gemaakt zou worden als webinterface.Hiervoor was er de keuze tussen JSP, ASP en PHP.  De taal die hiervoor hetbeste leek was JSP (JAVA server pages) aangevuld met servlets. 

De aanpak die gehanteerd werd, was eerst het ontwikkelen van een frameworken daarna het schrijven van de userinterface.De ontwikkeling van het framework gebeurde synchroon met de ontwikkeling vande directory services, beschreven in voorgaande hoofdstukken.

12.1. JNDI

Er bestaat voor java een API die ervoor zorgt dat een LDAP databank kanaangesproken worden. Deze API heet JNDI (Java Naming and DirectoryInterface).

JNDI bevindt zich in het pakket javax.naming en javax.naming.directory.

Om een verbinding met de LDAP databank te maken moet er een “DirContext”geïnstantieerd worden.  Deze DirContext moet daarna opgevraagd worden aande hand van enkele properties. 

Page 40: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       40

Verklaring van de properties:

Property Verklaring

PROVIDER_URL Dit zal de hostnaam zijn van de ldap databank,gevolgd door de rootcontext. Deze rootcontext isde distinguished name (DN).Bijvoorbeeld: ldap://localhost/dc=test,dc=com

SECURITY_PRINCIPAL De inlognaam van de manager (LDAPadministrator), gevolgd door de DN.Bijvoorbeeld: cn=Manager,dc=test,dc=com

SECURITY_CREDENTIALS Het wachtwoord van de manager. 

SECURITY_AUTHENTICATION

Dit is om aan te geven of de wijze van inloggenin de LDAP databank moet gebeuren via eenbeveiligde verbinding of niet. 

In de volgende stap worden objecten aangemaakt in de LDAP databank.

Dit gaat via de bind methode of de “createSubContext” van de DirContext.  Hetverschil tussen de twee methodes is eenvoudig.  De bind methode koppelt eennaam aan een object en de createSubContext koppelt een object aan een naam.

Er bestaan 3 methodes om een object in een LDAP databank aan te maken viaJNDI:

• Het Java object zelf opslaan• Een referentie naar het object opslaan• De informatie als attributen opslaan

12.1.1. Het Java object zelf opslaan

De eerste manier is het object zonder meer binden aan de LDAP structuur. 

Page 41: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       41

12.1.2. Een referentie naar het object opslaan

In plaats van de volledige geserialiseerde status van een object op te slaan, kanook de referentie naar dit object opgeslagen worden. 

De referentie naar een object bevat volgende informatie:• De klassenaam van het gerefereerde object.• Een vector van javax.naming.RefAddr objecten die de adressen

representeren.• De naam en locatie van de object factory die gebruikt zal moeten worden

voor de reconstructie.

De javax.naming.RefAddr abstracte klasse, zoals hieronder weergegeven, bevatinformatie die toelaat om het object op te vragen. De klasse definieert eenassociatie tussen inhoud en type. De inhoud slaat informatie op benodigd voorhet herbouwen van het object en het type identificeert het doel van de inhoud. 

Page 42: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       42

12.1.3. De informatie als attributen opslaan

De laatste methode is het opslaan van de attributen van een object.  Dezemethode wordt ook gebruikt in ons systeem.  Met deze methode slaat men geenjava geserialiseerde data of referenties op. Het object dat aan de LDAP structuur gebonden moet worden zal eerst en vooralde interface DirContext moeten implementeren.  Als men dan dit object zalbinden aan de LDAP structuur, zal deze de attributen opvragen en gebruiken.

Nu objecten toegevoegd kunnen worden moeten deze ook gewijzigd ofverwijderd kunnen worden.

Om dit te verwezenlijken moet het object uit de databank gehaald worden.

De “lookup” methode zal het object teruggeven indien het gevonden is.  Nadienwordt het object gecast naar het type object dat gewijzigd moet worden.

Eenmaal dit object verkregen is, zullen methodes aangeroepen worden diegeïmplementeerd zijn in het object zelf om de gegevens aan te passen.Nadien moeten deze gebonden worden aan de LDAP structuur. Om een objectterug te binden hebben wordt de “rebind” methode gebruikt.

Om een object te verwijderen biedt de “DirContext” ook enkele eenvoudigemethodes aan. Deze methodes zijn respectievenlijk “unbind” en“destroySubcontext”.

Het volledige framework zal dus geïmplementeerd worden volgens deze manier.

Page 43: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       43

12.2. Analyse

Voor de beheersoftware is er keuze uit genoeg programmeermodellen die elkhun eigen nut al bewezen hebben.  Hier werd gekozen voor een 3­lagen model.Eerst wordt de tweede laag gemaakt en als deze volledig operationeel is, zal dederde laag aangemaakt worden.

Het 3­lagen model zal er als volgt uitzien.

1. JNDI2. De laag met de denklogica3. De grafische laag

De software moet volgende zaken kunnen:

• Gebruikers toevoegen• Gebruikers wijzigen• Gebruikers verwijderen• Gebruikers voorzien van een ander wachtwoord• Gebruikers in groepen toevoegen• Gebruikers uit groepen verwijderen• Gebruikers in een OU verplaatsen• Gebruikers uit een OU verwijderen• Groepen toevoegen• Groepen verwijderen• Groepen in een OU verplaatsen• Groepen uit een OU verwijderen• Computers verwijderen• Computers in een OU verplaatsen• Computers uit een OU verwijderen• Status van de services weergeven• Services kunnen starten, stoppen of herstarten

Page 44: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       44

12.3. De use case

Page 45: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       45

12.4. Programmatie van de software

12.4.1. Connectie maken

Om de connectie tot stand te brengen wordt er een klasse geschreven die deconnectie regelt met LDAP en in deze klasse zullen ook de methodes wordenvoorzien die de use case vermeld staan.

12.4.2. Gebruikers toevoegen, aanpassen en verwijderen

In het verhaal over JNDI werd gezien dat er 3 mogelijkheden bestaan om eenobject aan de LDAP structuur te binden.  Eveneens werd er vermeld dat enkelde derde methode wordt gebruikt in ons eindwerk.De reden is dat als er gebruikers inloggen, er gegevens uit LDAP moetenopgehaald kunnen worden.   Deze gegevens moeten leesbaar, een java objectof een gerefereerd object zijn.

De beheersoftware maakt gebruik van een zelfgeschreven klasse “SambaUser”die overerft van “DirContext”.

Deze klasse beschikt over de volgende attributen:

Page 46: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       46

Hieronder worden de belangrijkste attributen verklaard:

Attribuut Verklaring

DisplayName Loginnaam die wordt getoond in het windowsstartmenu

ObjectClass Hierin wordt gedefinieerd van welke LDAP schema'shet object gebruikt maakt

UserPassword Het wachtwoord van de gebruiker, dit is een SSHAhashwaarde

SambaLogonTime De laatste keer dat de gebruiker ingelogd was

SambaHomeDrive De gemapte homedrive

Cn De canonical name van de gebruiker

SambaLogoffTime De laatste keer dat de gebruiker werd uitgelogd

SambaPwdLastSet De laatste keer dat het paswoord geset werd

SambaAcctFlags Dit zijn een reeks waarden die aangeven wat degebruiker kan.Bv: U = User      W = Workstation      D = Disabled

SambaProfilePath Het pad naar de map met het gebruikersprofiel in

SambaPwdMustChange Geeft aan of een gebruiker al dan niet zijn paswoordmoet wijzigen

SambaPwdCanChange Geeft aan of het al dan niet mogelijk is het paswoordte wijzigen

Gecos Extra informatie over de gebruiker

HomeDirectory Hierin zal gekeken worden naar de home directoryvan de gebruiker. vb: “/Adhomes/user”

SambaKickoffTime De tijd alvorens een gebruiker gekickt wordt van hetsysteem

Sn surname, meestal gelijk aan de gebruikersnaam

Page 47: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       47

12.4.3. Groepen toevoegen, aanpassen of verwijderen

Voor groepen wordt opnieuw een eigen object aangemaakt die van de interface“DirContext” overerft.

Hieronder worden de belangrijkste attributen verklaard:

Attribuut Verklaring

ObjectClass Hierin wordt gedefinieerd van welke LDAP schema'shet object gebruik maakt

GidNumber Het groepsnummer

Description De beschrijving van de groep. 

Memberuid Het uid van de gebruiker van de groep.

Hiermee is het mogelijk om in de “LDAPConnect” klasse methodes te voorziendie:

* groepen aanmaken en verwijderen* toevoegen en verwijderen van gebruikers in/uit een groep* opzoeken van de groepsnaam aan de hand van het GID nummer* opvragen van een lijst van alle groepen* opvragen van een lijst van alle groepen waarvan een gebruiker lid is

Page 48: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       48

12.4.4. Computers verwijderen

Als een computer zich voor de eerste keer aanmeldt in het domein zal dezeworden toegevoegd in de OU “Computers”.  Dit wordt door samba uitgevoerdwaardoor het niet mogelijk is handmatig een computer toe te voegen.

Een “computer” object is hetzelfde als een “SambaUser” object.   Hierdoor kaneen deel van de functionaliteit van de “SambaUser” klasse gebruikt worden voorde computer klasse.

Om een computer te verwijderen is er in de “LDAPConnect” klasse een methode“removeComputer” bijgekomen.  Tevens is er een methode voorzien om allecomputers in de LDAP structuur op te vragen.

Page 49: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       49

12.4.5. OU's aanmaken en verwijderen

Een OU (organizational unit) is een middel om de overzichtelijkheid tegaranderen. 

Wanneer men bijvoorbeeld 2 groepen van gebruikers heeft, is hetoverzichtelijker om voor elk groep een aparte OU aan te maken. 

Een OU aanmaken in de LDAP structuur zal moeten gebeuren met een“SambaOU” klasse die overerft van de DirContext interface.

Om een OU aan te maken werd een methode in “LDAPConnect” voorzien dieaan de hand van de OU­naam een OU zal aanmaken.  Deze methode heet“addOU”.

Een OU verwijderen zal gebeuren met de methode “removeOU” die voorzien isin de “LDAPConnect”.

Tevens kan een lijst opgevraagd worden van alle OU's met de methode“getAllOUs”.

De standaard OU's die reeds van in het begin aanwezig zijn in de LDAPstructuur zijn de volgende: “ou=Users”, “ou=Groups” en “ou=Computers”.

Page 50: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       50

12.4.6. Elementen toevoegen of verwijderen aan/uit een OU

Gebruikers, groepen en computers kunnen reeds aangemaakt worden in destandaard OU's van de directory.  Nu moet er voor gezorgd worden datgebruikers, groepen en computers kunnen toegevoegd worden in een nieuweOU.

De eerste poging daartoe was niet geslaagd.  Computers konden niettoegevoegd worden.  Er werden namelijk exceptions geworpen die weergavendat sommige velden niet voldeden aan de objectClass. 

Een volgende poging werkte wel.  Hierbij werd gebruik gemaakt van“DirContext”.  Via “rename” kon men een object van de ene OU naar de andereOU verplaatsen.

Er werden eveneens nog enkele extra methodes in de LDAPConnect klassetoegevoegd.Zo zijn er methodes voor het toevoegen van computers, gebruikers en groepenin een OU, namelijk “addComputerToOU”, “addUserToOU” en “addGroupToOU”.Om deze computers, gebruikers en groepen weer te verwijderen kan mengebruik maken van: “removeComputerFromOU”, “removeUserFromOU” en“removeGroupFromOU”.

Page 51: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       51

12.4.7. SambaUser

Ten eerste werd van elk attribuut een private variabele gemaakt die voorzienwerd van getters en setters.

Om het SID te bekomen dat de Domain Controller heeft verkregen, kan gekekenworden in de standaard LDAP structuur, deze bevat een OU waarin de SIDwordt weergegeven.

Dit wordt verwerkt in een klasse die via “toString” de SID weergeeft.

Net zoals het SID kan men het groepsnummer en gebruikersnummer ophalen uitde LDAP structuur.

Page 52: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       52

Om het wachtwoord te wijzigen wordt gebruik gemaakt van een perl script.  Ditomdat perl een kant en klare module bevat voor het encrypteren van dezepaswoorden.

De attributen die veranderd moeten worden bij het wachtwoord zijn de volgende:

● sambaLMPassword● sambaNTPassword● userPassword

Het script zet de 3 geëncrypteerde wachtwoorden in een bestand dat achterafdoor java kan uitgelezen worden.

12.4.8. SambaGroup

Deze klasse krijgt ook weer private variabelen en de nodige getters en setters.

Hier is ook het sambaSID vereist.  Aangezien voor de SambaUser al reeds de“SambaSID” klasse geschreven werd, kunnen we deze weer hergebruiken.  HetgidNumber kan opgehaald worden uit de LDAP structuur.

Aan een groep kunnen we een gebruiker toevoegen.  We moeten dus allereersthet attribuut “memberuid” gaan ophalen en er dan een waarde aan toevoegen. 

12.4.9. SambaOU

Een OU kent maar 2 attributen.  Deze zijn de naam van de OU en deobjectclass.

Page 53: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       53

12.4.10. Services

In het programma zullen ook enkele methodes worden voorzien om de serviceste starten, stoppen of herstarten.  Deze zijn voorzien in de klasse“ServiceStatus”.  Met services worden de ldap service, de bind service, en desamba service bedoeld. 

In de klasse ServiceStatus zijn er methodes voorzien die een booleanteruggeven.  True wanneer de service draait of false indien deze niet draait.

Om te zien of een service draait, openen we een socket naar de desbetreffendepoort.  Kan er geen connectie tot stand gebracht worden, dan draait de serviceniet.

De klasse ServiceStatus ziet er in dit geval als volgt uit:

Page 54: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       54

12.4.11. De grafische userinterface

Voor de grafische userinterface was het eerst de bedoeling te werken met JSPen servlets.  Aangezien de tijd te beperkt was om dit te volbrengen, werd ergekozen om te blijven verder werken aan de hand van de voorlopige interface.Hiervoor werd de code volledig herschreven en werd er gebruik gemaakt vanswing.

Dialogen werden gemaakt om de operaties op LDAPConnect te volbrengen. Dit werd onder andere gebruikt bij het toevoegen van gebruikers, verwijderenvan groepen en computers, ...

De “default button” staat ingesteld op de OK button, zodat wanneer men op'enter' drukt hetzelfde gebeurt als bij het klikken op de OK knop.

Voor het weergeven van de gebruikers, groepen, computers en OU's wordenJtree's gebruikt.  Na het wijzigen van een object worden de boomstructurenvernieuwd zodat altijd de laatste informatie zichtbaar is.

Page 55: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       55

12.4.12. Installer

Voor de volledigheid werd ook voor de installatie van “Active Directory emulatie”een grafische interface gebruikt.  Ook hier wordt gebruikt gemaakt van een javaswing applicatie.  Deze applicatie stelt de gebruiker vragen zoals 'gewenste IPadres','administrator paswoord',...

Voor het programmeermodel van de grafische installer werd weer gekozen vooreen 3­lagen model.  Waarin de 3de laag dan de grafische interface is en de 2delaag de perl scripts.  De eerste laag zal het systeem zelf zijn.

Voor de installer werd een pattern geschreven.  Dit pattern is gebasseerd op deLinked List.

Page 56: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       56

Elke vraag word in een aparte Jpanel gestoken.  Deze panels erven over van deinterface “Installable”.  Deze beschikt over de “next”, “previous” en “check“methodes.

Doordat in elk panel een verwijzing naar het vorig panel wordt bijgehouden, ishet zeer eenvoudig om naar ander een panel terug te keren.

In de Data klasse zullen de gegevens bewaard worden.

Dit systeem biedt een aantal voordelen:

* Niet alles wordt in 1 klasse geprogrammeerd   => Dit zorgt voor duidelijke en overzichtelijke code

* De data wordt op een centrale plaats bijgehouden   => Dit zorgt voor een betere opslag   => Er hoeft geen ingewikkeld opzoekingswerk te gebeuren

De installer maakt ook gebruik van een Thread, dit om de output van deuitgevoerde perl scripts te laten verschijnen in een textbox.

Page 57: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       57

13. De Grafische tool

Er moet als hoofdgebruiker (root) van het systeem aangemeld worden.  Nadienzal er zich een venster openen met een boom en enkele knoppen.  Dit venster isde sectie van de gebruikers.  Zoals te zien op de afbeelding hieronder:

Page 58: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       58

13.1. Services

In dit venster zal een menubalk te zien zijn. In deze balk zal de status van deservices kunnen bekeken en eventueel aangepast worden.  Als de 'view statusservices' aangeklikt wordt, zal dit venster zich openen. 

Hierin kunnen de 4 services waarvan het eindwerk gebruik maakt bekeken enaangepast worden.  Wanneer er in het blauw “Active” verschijnt betekent dit datde service draaiende is.  Bij het in het rood verschijnen van “Down” is de serviceniet draaiende.

Legenda

De service starten

De service herstarten

De service stoppen

Page 59: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       59

13.2. Gebruikers

Een gebruiker toevoegen aan het systeem kan gedaan worden door op de knop te drukken.  Nadien zal deze dialoog zich openen:

Hierin kunnen de gegevens van een gebruiker ingevuld worden. Degebruikersnaam (username), de weergavenaam (displayname) en debeschrijving (description).Eveneens kan de gebruiker op niet actief gezet worden door het vinkje naast'user active' uit te schakelen.  De gevolgen hiervan zijn dat een gebruiker nietmeer aanmelden kan in het systeem. De mogelijkheid bestaat er ook in een gebruiker zijn wachtwoord te latenwijzigen bij zijn volgende aanmelding, hiervoor moet het selectievakje naast'user must change password at next logon' aangevinkt worden. 

Page 60: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       60

De mogelijkheid om een gebruiker het recht af te nemen om zijn wachtwoord tewijzigen zal gedaan worden door het selectievakje naast 'user can changepassword' uitgevinkt te laten.

Nu moet enkel nog een standaard groep herkozen worden.  Deze wordt gekozenin de boomstructuur naast 'default group'.  Hierna kan de 'ok' knop aangekliktworden.  Nu zal een dialoog tevoorschijn komen dat een wachtwoord vraagt voorde gebruiker hierjuist aangemaakt.

Na het indrukken van de 'ok' knop zal de boomstructuur in het hoofdprogrammaautomatisch  geupdated zijn met de juiste informatie.

Er zal ook een homedirectory worden gecreëerd die zal bestaan uit /ADhomes/ +de naam van de gebruiker.  Indien de gebruiker “redantd” zal toegevoegdworden zal automatisch de map “/Adhomes/redantd“ er bijkomen.

Het wachtwoord kan achteraf ook nog aangepast worden door in degebruikerssectie van het programma de gebruiker te selecteren en daarna de knop in te drukken.  Hierna zal het dialoogvenster van hierboven terugtevoorschijn komen.

Page 61: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       61

Er zal bij het selecteren van een gebruiker, een sectie naast de boomstructuur,automatisch de belangrijkste gegevens van een gebruiker weergeven.  Ook zaler in deze sectie een overzicht worden gegeven van de bestanden in dehomedirectory van de gebruiker.  Indien er dan op een bestand gedubbelkliktwordt, zal het bestand geopend worden met de teksteditor “gvim”.

Page 62: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       62

Een gebruiker editeren, dus de gegevens van die gebruiker wijzigen, doet mendoor op de   knop te drukken.  Daarna zal dit venster te zien zijn:

Hierin zullen de gegevens van de gebruiker te zien zijn en kunnen waardesgewoon opnieuw ingegeven worden.  Daarna zullen deze waardes gebruiktworden als nieuwe gegevens voor de gebruiker.

Page 63: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       63

Een gebruiker die aangemaakt werd kan terug verwijderd worden door de knop in te drukken.  Vervolgens zal er volgend dialoog te voorschijn komen:

Hierin kan nog gekozen worden om de homedirectory van de gebruiker tebehouden of te verwijderen.

Page 64: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       64

13.3. Groepen

De sectie die gewijd is aan de groepen ziet er in de applicatie als volgt uit:

Er is een boomstructuur te zien waarin een groep geselecteerd kan worden.Indien er een groep geselecteerd is komen in de boomstructuur ernaast degebruikers te voorschijn die lid zijn van deze groep.  Een gebruiker kan men danook selecteren en kunnen de gegevens zoals de groepen waarvan de gebruikerlid is, bekeken worden.  

Ook zal de beschrijving van de groep te zien zijn bovenaan.  Naast de knoppenom een groep aan te maken en groep te verwijderen.

Page 65: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       65

Een groep aanmaken zal gebeuren door op de   knop te drukken.  Hiernawordt deze dialoog getoond:

Een groep verwijderen gebeurt dan weer door de   knop in te drukken. Hiernawordt dan deze dialoog getoond:

Page 66: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       66

Een gebruiker toevoegen aan een groep zal gedaan worden door de   knopnaast 'users in group' in te drukken.  Het dialoogvenster dat te voorschijn zalkomen is het volgende:

Na de 'ok' knop ingedrukt te hebben en de groep en gebruiker geselecteerd tehebben zal dit te zien zijn:

Page 67: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       67

De gebruiker die geselecteerd is uit de groep verwijderen zal gebeuren door de knop naast 'users in group' in te drukken. Nadien wordt dit venster afgebeeld:

Na de 'ok' knop ingedrukt te hebben zal de gebruiker uit de groep verwijderd zijn.

Page 68: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       68

13.4. Computers

De sectie van de computers is vrij eenvoudig.  Er is namelijk enkel demogelijkheid om computers te verwijderen van het systeem.  Een computeraanmaken op het systeem is niet nodig.  Dit komt doordat wanneer deAdministrator een computer lid maakt van het domein, de computer in hetsysteem automatisch toegevoegd wordt.

Page 69: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       69

Een computer verwijderen zal ook hier gebeuren door de   knop in te drukken.Waarna dit dialoogvenster verschijnt:

Page 70: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       70

13.5. Ou

De sectie OU's ziet er uit als volgt:

In de linkerboom zullen alle OU's te zien zijn.  Als een OU geselecteerd is zullende objecten van de geselecteerde OU tevoorschijn komen in het kader naast deOU.

De objecten die zich in een OU kunnen bevinden zijn de volgende:• Gebruikers• Groepen• Computers

Page 71: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       71

Een nieuwe OU aanmaken gaat simpelweg door op de   knop te drukken.Daarna zal dit dialoogvenster tevoorschijn komen:

Wanneer een OU verwijderd moet worden kan op de   knop gedrukt worden.Het volgend venster zal zich dan openen:

Page 72: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       72

Om een object aan een OU te kunnen toevoegen zal op de   knop naast'Objects in OU' gedrukt moeten worden.  Dan zal zich volgend venster openen:

Wanneer een object aan een OU toegevoegd is zal dit object veplaatst zijn. Hetvenster van de OU's zal er nu uitzien als volgt:

De gegevens zullen ook automatisch in de rest van de applicatie zijn toegepast.

Page 73: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       73

14. Gelijkaardige Projecten

We zijn natuurlijk niet de enige die een Active Directory service maken op eenlinux server. Hier worden 3 producten besproken die in dezelfde lijn staan als ons eindwerk. 

Samba, de service die instaat voor het authenticeren, file­ en printsharen tusseneen linux en windows client, wil met zijn nieuwste versie een volledige ActiveDirectory Domain Controller nabootsen.  Dit is echter nog toekomstmuziekomdat deze versie nog steeds in ontwikkeling zit.  Toch zullen we kort besprekenwat hiervan de nieuwe mogelijkheden zijn.

Novell eDirectory biedt een Directory structuur aan dat installeerbaar is op eengroot aantal platformen, waaronder zowel Linux als Windows.

Suse Linux Enterprise 9 bevat een groot deel van de elementen dat onseindwerk ook bevat, een combinatie van Samba, openLDAP en Dynamic DNS,verstopt achter een mooie userinterface.

14.1. Samba 4

Sinds geruime tijd werkt men aan de nieuwe versie van samba. Deze versiebelooft heel wat goeds... 

De code van samba wordt helemaal herschreven.  Dit is omdat de code vansamba 3 nog steeds verder bouwde op de allereerste samba code.  In die tijdwas er nog niet zoveel bekend over de gebruikte Windows protocollen. In samba 3 werden sommige elementen van de protocollen pasgeïmplementeerd nadat men een programma had gevonden dat er gebruik vanmaakte.  In samba 4 gaat men het volledige protocol implementeren.

In de vorige versie was de communicatie tussen 2 unix systemen via sambaonmogelijk, enkel Windows <­> Unix was mogelijk.  In samba 4 zal ditveranderen, dit komt omdat men gebruik gaat maken van CIFS (CommonInternet File System).

Page 74: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       74

Via Unix CIFS extensions zal men gebruik kunnen maken van hard­links,symlinks, devices maar ook zal het hernoemen en verwijderen van geopendebestanden mogelijk zijn.Nieuw is ook de LDB (LDAP like Database), deze is toegevoegd zodat sambaniet meer afhankelijk is van openLDAP.  De LDB biedt een LDAP­like API enondersteunt de LDAP search expressions.  Het kan gebruik maken van een TDB(Trivial Database, reeds gebruikt in vorige versie van samba) of LDAP backend.

Eén van de doelen van Samba 4 is de volledige Active Directory DomainController, alsook een volledige NT4 Domain Controller nabootsen. Het gebruik van LDB en de volledige implementatie van het CIFS/SMB protocolzijn hier belangrijke elementen.Het stadium van “Active Directory Domain Controller” is nog maar in het begin,maar de basis ziet er reeds goed uit.

Kerberos is ook een deel van Samba 4.  Het CIFS protocol biedt reedsondersteuning voor Kerberos, maar de koppeling van Kerberos en LDB is nogniet werkende.

De reeds voltooide elementen van samba 4 zijn al veelbelovend, ook deelementen die nog in ontwikkelingsfase zijn, zijn het wachten waard. 

14.2. Novell eDirectory

Novell eDirectory biedt buiten een directory service de mogelijkheid omgebruikers en hun toegangsrechten te koppelen aan resources, devices, ...

Het softwarepakket is compatibel met verschillende open standaarden zoalsLDAP, XML (eXtensible Markup Language), DSML (Directory Services MarkupLanguages), ...Het is ook beschikbaar voor een tal van platformen zoals Linux, Windows,Solaris, Aix, NetWare, ..

De toegangsrechten van de gebruikers worden in real­time gecontroleerd.  Bijelke request zal de controle opnieuw gebeuren zodat elke aanpassingonmiddellijk wordt doorgevoerd. 

Page 75: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       75

Kleine errors worden onmiddellijk gedetecteerd en opgelost, de data wordt ookautomatisch gerepliceerd en ook backups kunnen gemaakt worden zonder dathet systeem wordt onderbroken.  Deze elementen zorgen ervoor dat Novell'seDirectory een grote betrouwbaarheid en beschikbaar heeft.

14.3. Suse Linux Enterprise Server 9

Suse is een Linux distributie waarbij men de mogelijkheid heeft om deze serverte configureren als een Windows Domain Controller.

Tijdens de installatie van Suse wordt de LDAP server reeds opgezet, dit gebeurtdan al omdat de LDAP database gebruikt wordt voor de authenticatie van degebruikers.

De configuratie van de Domain controller gebeurt via YaST (Yet another SetupTool). Dit houdt de configuratie van samba in, het koppelen van samba met ldapen de configuratie van Dynamic DNS.

Ook het beheer van de gebruikers en de groepen gebeurt via YaST.  Vanaf datde gebruikers daar zijn toegevoegd kan men daarmee inloggen vanop windowsclients.  Doordat de gegevens in een LDAP database worden opgeslagenkunnen ook linuxclients deze gegevens gebruiken om in te loggen.

In een vergelijking van Suse Linux Enterprise Server (SLES9) met Windows2003 server zou volgens Novell SLES9 het beter en sneller doen op dezelfdehardware. Ook qua kosten wint Suse, het kost namelijk maar één tiende van dewindows oplossing.  Volgens ons is deze vergelijking echter een marketingstuntaangezien beide producten over andere toepassingen beschikken en SLES9niet beschikt over group policies.

Page 76: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       76

15. Besluit

Na deze maanden van onderzoeken, testen en programmeren, kan beslotenworden dat het goed mogelijk is om een werkende opensouce directoryserviceop te zetten die in staat is windows machines te authenticeren en die eventueelprofessioneel gebruikt kan worden.  Aangezien Microsoft zijn technologie nietvrijgeeft is het echter onmogelijk om hun Active Directory exact na te bouwen.Met de komst van Samba 4 zal dit eventueel wel mogelijk zijn.  

Het allergrootste probleem om de Microsoft Active Directory te vervangen, zelfsmet de  toekomstige samba 4, is dat de “group policies” geen waardigeopensource tegenhanger hebben.  Ook hier is het zo dat er zeer weiniginformatie te vinden is over hoe deze toegepast worden op de windowsclients.  

Wat onze beheersoftware betreft kunnen we stellen dat deze geschikt is omgebruikt te worden door mensen die niets over Linux of Java weten.  Allemogelijkheden werden verschillende keren getest en alles bleek goed te blijvenwerken na de nodige “bugfixes”. 

Voor onszelf kunnen we stellen dat we ons doel bereikt hebben.  We hebbenveel bijgeleerd, mooie zaken gerealiseerd en er op de koop toe veel werkgenotaan gehad.

Page 77: Eindwerk: Linux Active Directory Emulatie 1users.telenet.be/lade/Linux Active Directory thesis.pdfEindwerk: Linux Active Directory Emulatie 5 2. Wat is Active Directory Als men het

Eindwerk: Linux Active Directory Emulatie                       77

16. Bijlage en literatuurlijst

Het grootste deel van onze bijlagen, de zelfgeschreven howto's en tutorials,bevinden zich op de cdrom die bij het verslag zit. 

Literatuurlijst:

– Red Hat Linux 8– Red Hat Linux Networking and System Administration– Red Hat Linux Internet Server– Beheer van netwerken ­ windows 2000– MCSE Active Directory– DNS and Bind– Configuratie van de Bind 9 DNS­server– Samba 3– Using samba, 2nd Edition– Java cookbook 

Lijst van veelgebruikte website:

– www.openldap.org– www.samba.org– www.sambaxp.org– www.bind9.net– www.isc.org– web.mit.edu/kerberos/www– www.solidium.nl– www.openssl.org– java.sun.com– www.microsoft.com