Steeds vaker rijst de vraag of mensen die met windows computers een verbinding maken met een linux server via Samba op meerdere computers kunnen inloggen en werken. Daarnaast is het voor het beheer makkelijk om gebruikers aan te maken op een centrale plek. Dat kan heel goed een LDAP server zijn. Ik geef hier stap voor stap aan hoe je snel een werkende omgeving kan creeren.
Wat heb je nodig Ik ga er van uit dat je een werkende linux computer hebt waarvan ook het netwerk gedeelte volledig werkt. Ook neem ik aan dat de windows computer(s) op zijn minst de linux server kunnen pingen. Zo niet, zorg eerst dat dat op orde is. Verder maak ik gebruik van een debian distributie, maar ik probeer alles zo op te schrijven dat je niet te veel problemen moet hebben om het op je eigen linux variant te reproduceren. Op het moment van schrijven gebruik ik de volgende software packages: - samba (3.0.20b)
- samba-doc (3.0.20b)
- slapd (2.2.26)
- ldap-utils (2.2.26)
- libpam-ldap (178)
- libnss-ldap (228)
En voor de ldap admin tool - apache (1.3.34)
- php4 (4.4.0)
- php4-ldap (4.4.0)
- ldap-account-manager (0.5.1)
Een heel handige tool is phpldapadmin (http://phpldapadmin.sourceforge.net/) Installatie De structuur van de ldap database ziet er als volgt uit: - base: dc=kovoks,dc=nl
- admin: cn=admin,dc=kovoks,dc=nl
- gebruikers: ou=People,dc=kovoks,dc=nl
- groepen: ou=Groups,dc=kovoks,dc=nl
- computers: ou=Machines,dc=kovoks,dc=nl
- domeinen: ou=Domains,dc=kovoks,dc=nl
- passwords: crypt
Hiermee moet je de installatie wel kunnen doen. Uitgebreide uitleg volgt later. Configuratie Na de installatie gaan we eerst de ldap server configureren. Gebruik het programma 'slappaswd -h {crypt}' om een gecrypte versie te krijgen van het wachtwoord van de admin. Het configuratiebestand is: /etc/ldap/slapd.conf. - Toevoegen:
include /etc/ldap/schema/misc.schema include /etc/ldap/schema/samba.schema - Aanpassen:
suffix "dc=kovoks,dc=nl" - Toevoegen onder de optie suffix:
rootdn "cn=admin,dc=kovoks,dc=nl" rootpw "{CRYPT}het eerder gevonden wachtwoord" - Aanpassen:
access to attribute=userPassword by dn="cn=admin,dc=kovoks,dc=nl" write by anonymous auth by self write by * none - Aanpassen:
access to * by dn="cn=admin,dc=kovoks,dc=nl" write by * read We moeten nu nog de toegevoegde schema's installeren. Het samba schema vind je bij de documentatie van samba. - cd /usr/share/doc/samba-doc/examples/LDAP
- gunzip -c samba.schema.gz > /etc/ldap/schema/samba.schema
Voor de zekerheid is het handig om de volgende gegevens aan de ldap database toe te voegen. - Maak een bestandje eerste.ldif met de volgende inhoud:
version: 1 # Entry 1: dc=kovoks,dc=nl dn: dc=kovoks,dc=nl dc: kovoks objectClass: top objectClass: organization - Voeg dit aan dat ldap server met het volgende commando:
ldapadd -W -x -D "cn=admin,dc=kovoks,dc=nl" -f eerste.ldif Eindigd dit met een 'Already exists' dan is er niets aan de hand. Om e.e.a. te kunnen controleren is het nu de beurt aan phpldapadmin. De configuratie hiervoor kun je vinden in /var/www/ldap/config.php - Aanpassen:
$servers[$i]['host'] = 'localhost'; - Aanpassen:
$servers[$i]['base'] = 'dc=kovoks,dc=nl'; - Aanpassen:
$servers[$i]['auth_type'] = 'form'; - Aanpassen:
$servers[$i]['login_dn'] = 'cn=admin,dc=kovoks,dc=nl'; - Verwijderen:
$i++; $servers[$i]['name'] = 'Another server'; $servers[$i]['host'] = ''; $servers[$i]['base'] = 'dc=example,dc=com'; $servers[$i]['port'] = 389; $servers[$i]['auth_type'] = 'config'; $servers[$i]['login_dn'] = ''; $servers[$i]['login_pass'] = ''; $servers[$i]['tls'] = false; $servers[$i]['default_hash'] = 'crypt'; $servers[$i]['login_attr'] = ''; $servers[$i]['read_only'] = false; $servers[$i]['enable_auto_uid_numbers'] = false; $servers[$i]['auto_uid_number_mechanism'] = 'search'; $servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com'; $servers[$i]['auto_uid_number_min'] = 1000; $servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com'; Let op! Indien je in php ook de mcrypt module hebt ingesteld kan het zijn dat lam ontzettend langzaam werkt. Dit kun je oplossen door het volgende bestand aan te passen: /etc/php4/apache/php.ini Zoek daar de regel extension=mcrypt.so op en zet daar een ; voor dus: ;extension=mcrypt.so Herstart apache met /etc/init.d/apache restart. Nu kun je met je browser inloggen op http://servernaam/ldap/ met als gebruikersnaame cn=admin,dc=kovoks,dc=nl en het eerder opgegeven wachtwoord. Nadat je bent ingelogd zie je aan de linker kant 1 entry dc=kovoks,dc=nl klik er op om te kijken of er geen foutmeldingen ontstaan. Ldap account Manager (lam) - Ga met je browser naar http://server/lam en klik op 'Configuration login'
- Klik op 'Configuration Wizzard'
- Vul in:
Profile name: kovoks Password: <eerder verzonnen wachtwoord> Reenter password: zie boven Master Password: lam - Klik op next en vul in:
Server address: ldap://localhost:389 LDAP admin DN: cn=admin,dc=kovoks,dc=nl Password: <eerder verzonnen wachtwoord> Samba version: 3 - Klik op next en vul in:
UserSuffix: ou=people,dc=kovoks,dc=nl GroupSuffix: ou=groups,dc=kovoks,dc=nl HostSuffix: ou=machines,dc=kovoks,dc=nl DomainSuffix: ou=domains,dc=kovoks,dc=nl Password hash type: crypt Cache timeout: 5 - Klik op next en eventueel op 'create' om de suffix(en) te maken.
- Vul in bij de domain settings:
Domain: kovoks Domain sid: <dit kun je vinden door op de server in te loggen en het command 'net getlocalsid' in te tikken> Next rid: <leeg> Next User rid: <leeg> Next Group rid: <leeg> Algorithmic RID base: 1000 Suffix: ou=domains,dc=kovoks,dc=nl - Klik op next en eventueel op 'create' om de essentiele groepen aan te maken.
- Klik op 'back to login' om terug te gaan.
- Kies onderaan het nieuw aangemaakte profiel (kovoks) en klik op Change profile.
- Login met Username: admin en Password:<eerder opgegeven>
- Klik op 'Profile Editor'
- Selecteer: 'default' Edit User Profile, gevolgd door submit
- Pas aan:
Primary group: domainadmins Additional groups: <geen> Home directory: /home/$user Login shell: /bin/false Set unix password: yes Password warning: <leeg> Password expiry: <leeg> Maximum password age: <leeg> Minimum password age: <leeg> Account expires on: 1 1 2030 Unix workstations: <leeg> Account is deactivated: no Set samba password: yes Set Unix password for Samba: yes Password does not expire: yes Account is deactivated: no Home drive: h: Home path: servernaam$user Profile path: servernaamprofiles$user Logon script: <leeg> Workstations: <leeg> Domain: kovoks - Klik op save en dan op 'Users'
- Door op 'New User' te klikken kun je een nieuwe gebruiker aanmaken.
Als eerste moet er een Administrator account aangemaakt worden. Zet daarvoor de volgende informatie in een ldif: -------------------<administrator.ldif>-------------------- dn: uid=Administrator, ou=people, dc=kovoks, dc=nl objectClass: account objectClass: sambaSamAccount objectClass: posixAccount gecos: Samba Admin homeDirectory: / loginShell: /dev/null uidNumber: 0 gidNumber: 0 uid: Administrator sambaPwdLastSet: 1042526918 sambaLogonTime: 0 sambaLogoffTime: 0 sambaKickoffTime: 0 sambaPwdCanChange: 0 sambaPwdMustChange: 0 displayName: Administrator cn: Administrator sambaHomePath: %N sambaHomeDrive: H: sambaProfilePath: %Nprofile sambaSID: S-1-5-21-2656270644-2771678393-2525940785-500 sambaPrimaryGroupSID: S-1-5-21-2656270644-2771678393-2525940785-512 sambaLMPassword: 7DDDDD60A3BD71AAAAA65F36030673DD sambaNTPassword: 6417743DD60A3BD71AAAAA82F4CC21AA sambaAcctFlags: [UX ] -------------------<administrator.ldif>-------------------- Met het volgende commando's kun je dit dan invoeren en het wachtwoord aanpassen: - ldapadd -W -x -D "cn=admin,o=kovoks,c=nl" administrator.ldif
- smbpasswd Administrator <admin_wachtwoord>
Configuratie PAM en NSS Bij debian testing (17-03-2004) heeft men een goede stap gezet m.b.t. de authenticatie. Alle losse configuratie tools wijzen uiteindelijk naar deze drie bestanden - in /etc/pam.d/common-auth voor de bestaande auth regel toevoegen:
auth sufficient pam_ldap.so aanpassen: auth sufficient pam_unix.so try_first_pass - in /etc/pam.d/common-password voor de bestaande password regel toevoegen:
password sufficient pam_ldap.so aanpassen: password sufficient pam_unix.so md5 try_first_pass - in /etc/pam.d/common-session voor de bestaande session regel toevoegen:
session optional pam_ldap.so session required pam_mkhomedir.so skel=/etc/skel umask=0077 - in /etc/pam.d/common-account voor de bestaande account regel toevoegen:
account sufficient pam_ldap.so - in /etc/nsswitch.conf pas je de volgende settings aan:
passwd: files ldap group: files ldap shadow: files ldap - in /etc/libnss-ldap.conf pas je de volgende settings aan:
base dc=kovoks,dc=nl rootbinddn cn=admin,dc=kovoks,dc=nl Samba configureren: Dit zijn alleen de aanpassingen op een bestaande samba configuratie - in /etc/samba/smb.conf de volgende settings toevoegen:
domain logons = Yes os level = 33 ldap suffix = dc=kovoks,dc=nl ldap machine suffix = ou=machines ldap user suffix = ou=people ldap group suffix = ou=groups ldap admin dn = cn=admin,dc=kovoks,dc=nl De volgende setting aanpassen: passdb backend = ldapsam - Daarna moet je het admin wachtwoord nog opslaan met:
smbpasswd -w "<admin wachtwoord>" Computer aanmelden op het domein Voordat je een computer op een domein kunt aanmelden moet je eerst een computer account aanmaken: - Ga naar de LDAP Account Manager (http://server/lam) en log in
- Klik op Hosts
- Klik op 'New Host'
- Zet onder 'Host name' de naam van de COMPUTER die je aan wild melden
- Klik op 'Create Account'
Daarna moet je de client computer nog aanmelden op het netwerk. Dit dien je te doen onder het Administrator account op de client computer. Om e.e.a soepel te laten verlopen is de volgende actie het makkelijkst. Ik ga wel uit van windows XP: - Klik rechts op 'Deze computer' en kies voor beheren
- Klik op 'lokale gebruikers' -> 'Gebruiker'
- Klik rechts op 'Administrator' en voor 'Wachtwoord instellen'
- Vul dan het <admin wachtwoord> in.
- Opnieuw opstarten en tijdens het opstarten in de veilige modus met netwerkondersteuning gaan (tijdens het opstarten F8 en kiezen, of F5)
- Log in met Administrator
- Klik rechts op 'Deze computer' en kies voor eigenschappen
- Selecteer het tabblad 'Computernaam' en kies voor 'Wijzigen'
- Geef de domeinnaam 'kovoks' aan
- Log in met de administrator naam en <admin wachtwoord>
- Na de welkom melding opnieuw opstarten en je aanmelden op het domein. Vergeet niet voor 'Opties' te kiezen en bij domeinnaam voor Kovoks te kiezen.
{mos_sb_discuss:3}
|