Interoperabiliteit beperkt tot eenrichtingverkeer

Het duurt misschien nog een decennium, maar als we de analisten mogen geloven is er straks nog maar plaats voor twee grote operating systems: Microsoft Windows en Linux. Integratie van deze twee platforms is lastig. Ze zijn niet alleen compleet verschillend in idee, ontwerp en ontwikkeling, maar ook twee uitersten in achtergrond en cultuur, en dus in gebruikers en liefhebbers. Bovendien maakt Microsoft noodgedwongen weliswaar wat vaker gebruik van open standaarden, maar bemoeilijkt tegelijkertijd de integratie door deze een beetje te veranderen, en de aanpassingen vervolgens (juridisch) ontoegankelijk te maken.

Nu Linux, geholpen door de commerciële Unix leveranciers, snel volwassen wordt, is de inzet van dit operating system steeds vaker een volwaardig onderdeel van de ICT strategie. En daarmee wordt voor een heleboel ondernemingen ook de problematiek rond integratie actueel.

Enerzijds is er de klassieke toepassing van Linux, waarbij deze fungeert als file & print server voor Windows desktop clients. Daarvoor wordt de Samba server gebruikt, ook door commerciële Unix leveranciers. Grootste voordeel hier zijn natuurlijk de besparingen op licenties.

Maar nu Linux ook regelmatig op desktop systemen wordt ingezet, en Windows vanaf versie 2000 veel beter te gebruiken is als server operating system, kunnen we ook het omgekeerde aantreffen: Windows servers die niet alleen Windows maar ook Linux clients bedienen. Met name de mogelijkheden die Active Directory (AD), Kerberos en LDAP bieden om ook de authenticatie te integreren, en daarmee bijvoorbeeld het beheer van gebruikers en accounts te vereenvoudigen, zijn interessant.

File & print services

Samba biedt de klassieke NT file & print services voor Windows. Ondersteund worden het oude proprietary SMB protocol (Server Message Block) van Microsoft, maar ook de daarop gebaseerde nieuwe CIFS standaard. Via de SNIA (Storage Networking Industry Association) wordt deze laatste door de hele storage en netwerk industrie gedragen. SMB en CIFS zijn vergelijkbaar met bijvoorbeeld NFS, AppleTalk en Novell Netware NCP. Waar SMB van origine gebruik maakt van het NetBEUI transport protocol en dus niet routeerbaar is, geldt dat niet voor de Samba implementatie, die gebruik maakt van TCP/IP.

Samba kan niet alleen fungeren als een stand-alone machine, maar ook als lid van een NT domein (security domain member, gebruikmakend van een andere Domain Controller), of zelfs als een authentication server ((Primary) Domain Controller).

Samba is open source software die valt onder de GPL licentie. Behalve bij alle grote Linux distributies wordt deze server - of hierop gebaseerde server software - ook geleverd bij andere en commerci\"ele Unix systemen. Voorbeelden daarvan zijn HP-UX, SGI Irix, alle drie Unix smaken van SCO, de Sun Cobalt systemen, FreeBSD en de Veritas File Server. Maar ook voor VMS, MVS, MPE/iX en Novell kan Samba worden gecompileerd.

Andersom, om Windows shares te kunnen lezen, is voor de Windows en OS/2 operating systems natuurlijk niets extra's nodig. En hoewel bij de Samba software ook een FTP-achtige client wordt meegeleverd, kan ook Linux zonder; smbfs, waarmee shared Windows partities als SMB file system kunnen worden gemount, is een standaard onderdeel van de kernel. Ook voor andere operating systems zijn er ge\"integreerde of losse clients beschikbaar. Maar ook gateways waarmee SMB shares bijvoorbeeld weer via NFS kunnen worden aangeboden.

SWAT, de web-gebaseerde management tool van Samba
SWAT, de web-gebaseerde management tool van Samba.

Versie 3

De laatste versie van Samba was op moment van schrijven 2.2.8a. Versie 3 is op dit moment weliswaar in alpha – dat wil zeggen dat deze officieel nog niet geschikt is om door een breed publiek uitgeprobeerd te worden – maar de geluiden over features en stabiliteit zijn goed.

Naast CIFS (de standaard voor Windows 2000 en XP, en meegeleverd vanaf de volgende versie van de Linux kernel) en Unicode, ondersteunt versie 3 ook Windows 2000 clients (in stand-alone modus, die gebruik maakt van de oude NTLM authenticatie). Aan de ondersteuning van authenticatie met behulp van Microsoft's Active Directory (AD) wordt gewerkt.

Windows 2000 Kerberos

Tot zover was er niet echt iets nieuws onder de zon. Veel interessanter wordt het als we zien hoe Windows 2000 niet alleen LDAP maar ook Kerberos 5 ondersteunt, zij het zoals altijd op een niet compatibele/interoperabele manier.

Een Windows 2000 Server kan in zijn rol als Domain Controller ook fungeren als een Kerberos KDC (Key Distribution Center, zie kader Kerberos). Deze authenticatie server is een onderdeel van de Security Support Provider (SSP) API's. Daarin zijn wel de officiële Kerberos General Security Service (GSS) tokens geïmplementeerd, maar niet de bijbehorende API's zoals gedefinieerd in RFC 1964. Applicatie ontwikkelaars moeten dus gebruik maken van de Windows specifieke Security Support Provider Interface (SSPI) API's.

De Kerberos realms en principals worden beheerd via de normale Active Directory Management tool. Door een gebruiker een "Kerberos upgrade" te geven, kan deze toegang krijgen tot Kerberos authenticated services op bijvoorbeeld Linux/Unix systemen. Voor het opzetten van Kerberos op bijvoorbeeld een Windows XP client worden de commando's Ksetup en Ktpass gebruikt.

Interoperabiliteit?

Er kan een trust relationship worden opgezet tussen een Kerberos realm en een Windows 2000 domein als deze beide op Windows 2000 draaien. Tussen een Windows 2000 domein en een realm van een andere Kerberos server mag dat niet. Windows 2000 doet ook geen Kerberos replicatie, maar gebruikt de eigen multi-master replicatie om de achterliggende AD gegevens uit te wisselen.
Gebruikers kunnen via een account mapping met hun Kerberos credentials direct inloggen. Maar dit blijft beperkt tot een koppeling tussen een Kerberos realm en een account domein voor stand-alone werkstations, en fungeert dus uitsluitend als een single-sign-on. Een volwaardige aanmelding kan alleen via een Windows 2000 AD server omdat de PAC uitbreiding (Privilege Attribute Certificate, voor account en groep informatie, en voor smartcard logon's met PKI in plaats van shared secrets) van Microsoft op het Kerberos protocol interoperabiliteit met andere systemen verhindert. Omdat de AD Domain Controller en de Kerberos KDC in dezelfde krbtgt procesruimte zijn geïmplementeerd, vond Microsoft het niet nodig de specificaties van PAC bekend te maken, en hebben zij het MIT zo de kans ontnomen om deze te integreren in Kerberos 5, en te zorgen voor compatibiliteit met versie 4.
Hoewel er uitstekende LDAP servers zijn van Novell en iPlanet, is er geen enkele andere dan die van Microsoft die AD kan ondersteunen. Het enige initiatief in deze richting is het verderop besproken Quartet open source project.

Hoewel Windows 2000 Kerberos als standaard gebruikt, ondersteunt deze natuurlijk ook nog het oude NTLM protocol (NT LAN Manager). Behalve voor het aanloggen door oude Windows clients of het aanloggen bij NT4 domeinen wordt deze ook gebruikt voor de logon van stand-alone Windows 2000 werkstations.

AD authenticatie voor Linux/Unix

Voor wie zijn Linux/Unix accounts wil onderbrengen in AD is er MKS AD4Unix. Deze directory schema update plugin breidt AD uit met velden voor authenticatie en accounts van Linux/Unix gebruikers, dezelfde informatie die normaal gesproken in /etc/passwd, /etc/shadow en /etc/group files staat (naast het versleutelde password zijn dat bijvoorbeeld de shell en de home directory). Het installeren daarvan mag alleen op die Domain Controller die fungeert als Operations Master voor wijzigingen op de AD schema's, en deze ook naar de andere Domain Controllers distribueert. De administratieve tools kunnen op elke machine worden geïnstalleerd.

De betreffende Linux/Unix hosts moeten vervolgens worden geconfigureerd als een AD client voor LDAP authenticatie. Naast de OpenLDAP client moeten daarvoor de modules NSS_LDAP en PAM_LDAP worden gebruikt, die ook standaard worden meegeleverd bij de Red Hat distributies. De eerste doet alleen authenticatie, de tweede ook account informatie. Voor het veranderen van passwords vanaf de Linux/Unix host is ook nog SSL/TLS vereist om een veilige verbinding met de Windows AD server op te bouwen.  Door NSS_LDAP zo te configureren dat deze de AD server gebruikt als LDAP authenticatie server (bijvoorbeeld met authconfig) wordt niet alleen het beheer van gebruikers over verschillende platforms vereenvoudigd, maar hoeft men ook geen gebruik meer te maken van NIS of rsync voor het uitwisselen van user account informatie tussen Linux/Unix hosts onderling. Daarvoor moet dan men wel enig geworstel met de installatie en configuratie over hebben.

Op dit moment werkt deze oplossing in ieder geval op Linux en Solaris - aan HP-UX wordt nu gewerkt - maar in principe op elke Unix host die PAM/NSS ondersteunt. Voor de systemen die dat niet doen, kan gebruik worden gemaakt van een gateway waarmee de AD gegevens via LDAP kunnen worden binnengehaald in een NIS omgeving.

Quartet

Bovenstaande oplossing past natuurlijk erg goed in het Microsoft straatje, maar er is ook een pril initiatief om de boel om te draaien. Waar Samba versie 3 zich nu nog moet beperken tot NTLM voor de authenticatie, wil het onlangs opgestarte Quartet project de hele AD structuur van de Windows 2000 server producten nabouwen op de OpenLDAP server. Daarvoor zal daarnaast gebruik worden gemaakt van de BIND DNS server, Kerberos, GSSAPI en Cyrus SASL (Simple Authentication and Security Layer, een laag bovenop onder andere GSSAPI). Dezelfde mensen die zich bezig hebben gehouden met de reverse engineering van het NTLM protocol zijn nu bezig met het analyseren van de communicatie met de AD server. Daarmee komt een Windows 2000 client straks niet meer in stand-alone modus in een kale werkgroep terecht, maar wordt deze gewoon onderdeel van een AD domein. Integratie met Windows AD systemen, bijvoorbeeld opname in een forest, behoort expliciet niet tot de doelstellingen van dit project. Op dit moment is er echter alleen nog maar het idee en een eerste inventarisatie.

Plaats reactie

Security code Vernieuwen

Verstuur