Integratie van Linux in een Windowsomgeving met behulp van Samba.
2
Inhoudsopgave 1
Wat is Samba? __________________________________________________ 3
2
Installatie van Samba ___________________________________________ 3
3
Configuratie van Samba _______________________________________ 4 3.1 3.2 3.3 3.4
Ons denkbeeldig netwerk .............................................................................4 Gebruikers...............................................................................................................4 Een eerste configuratie................................................................................ 5 Een tweede configuratie ................................................................................7
4
Starten en stoppen van Samba ______________________________ 8
5
Shares benaderen _____________________________________________ 8 5.1 5.2 5.3 5.4
6
Grafische configuratie tools ____________________________________ 11 6.1 6.2
7
Configuratie smb.conf.................................................................................... 13 Directories, accounts en identificatie ................................................ 18 Configuratie Cliënts......................................................................................... 21
Bijlagen _________________________________________________________ 24 8.1
9
Samba Server Configuration Tool ......................................................... 11 Samba Web Administration Tool (SWAT) .......................................... 11
Samba als PDC gebruiken ____________________________________ 12 7.1 7.2 7.3
8
Locaal .......................................................................................................................... 8 Van windows naar linux ................................................................................ 8 Van linux naar windows .................................................................................9 smbclient vs Nautilus .......................................................................................9
Vervangingsvariabelen...............................................................................24
Bibliografie _____________________________________________________ 25
3
1
Wat is Samba? Samba is een implementatie van een SMB (Server Message Block) protocol server. Met behulp van Samba kan je linux systemen toevoegen aan een windows netwerkomgeving. De linux computers gedragen zich als gewone windows computers, waardoor ze resources kunnen aanbieden aan de andere computers in het netwerk (de SMB clients). Samba wordt dan ook het meest gebruikt om Linux schijven en printers te delen met windowsmachines.
2 Installatie van Samba Samba was vroeger een ramp om te installeren en te configureren, maar sinds versie 2 is daar veel verandering in gekomen. Bij de meeste linux distributies wordt Samba meegeleverd, en het enige wat we nog moeten doen is de juiste configuratiefile aanmaken. In het andere geval moet je eerst de source code gaan afhalen, deze uitpakken, configureren, compileren en uiteindelijk installeren. Wanneer dit je iets te moeilijk lijkt, kan je altijd gaan kijken bij de maker van uw distributie of er geen voorgecompileerde pakketen bestaan voor jouw systeem. Op http://ftp.easynet.be/samba/ftp/Binary_Packages/ vind je bijvoorbeeld voorgecompileerde pakketen voor de meeste voorkomende linux distributies. Om Samba op je Red Hat Linux systeem te installeren volstaat het om de CD’s van je Red Hat Linux distributie te mounten, naar de directory met alle rpm’s te navigeren en daar de het commando rpm te gebruiken om de nodige pakketten te installeren.
mount –t iso9660 /dev/hdc /mnt/cdrom rpm -i samba-common-2.2.7a-7.9.0.i386.rpm rpm -i samba-2.2.7a-7.9.0.i386.rpm rpm -i samba-client-2.2.7a-7.9.0.i386.rpm umount /mnt/cdrom
4
3 Configuratie van Samba 3.1 Ons denkbeeldig netwerk Om de configuratie uit de doeken te doen gaan we uit van een denkbeeldige situatie. We hebben enkele machines in een goed geconfigureerd TCP/IP netwerk. Onze windows-machine noemt “winserver1”, de linux-machine “linuxserver1”. De windows computer zit in de werkgroep “server1”.
3.2 Gebruikers Vanaf NT met SP3 gebruikt Microsoft enkel vercijferde wachtwoorden om NetBios resources te benaderen. Samba gebruikt standaard plain text paswoorden, aan dit probleem kan je op 2 manieren een mouw passen: •
Paswoorden in de windows registry op plain text zetten
•
Samba configureren zodat het wel encrypted paswoorden gebruikt.
Windows-side Als je het onveilig en op de eerste manier wil oplossen: klik Start, dan Run, tik regedit en dan enter. Ga naar HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / lanmanworkstation / parameters en maak (of pas aan) enableplaintextpassword en geef een DWORD value van 1. Samba-side Een veiligere oplossing is natuurlijk het vermijden van plain text paswoorden! Eerst even deze stappen ondernemen: Je moet het passwoord-file smbpasswd voor Samba maken, gebaseerd op /etc/passwd waarin je paswoorden en users van heel Linux staan.
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
Voor iedere windows-gebruiker moet een linux-account bestaan. De gebruikers moeten echter niet kunnen inloggen op de linux-machine. Men kan dus allemaal gelockte accounts gebruiken voor de windowsgebruikers. Stel dat we de gebruiker “nathalie” willen toelaten om onze shares te gebruiken, dan maken we eerst een linux-account aan voor Nathalie, en daarna voeren we het commando “smbpasswd –a nathalie” uit om Nathalie aan de samba-gebruikers toe te voegen. We nemen aan dat deze account werd aangemaakt, en dat we de gebruiker “nathalie” dus kunnen gebruiken.
smbpasswd –a nathalie
5
3.3 Een eerste configuratie Voor je Samba kan starten, moet je het configuratiebestand “smb.conf” instellen. Wanneer het Samba pakket geïnstalleerd is vind je dit terug in “/etc/samba/”.
Als eerste voorbeeld passen we het smb.conf bestand aan zodat een directory en de home directory geshared worden (eventueel kan je het originele smb.conf bestand hernoemen en starten vanaf een nieuw leeg smb.conf bestand).
mv /etc/samba/smb.conf /etc/samba/smb.conf.tmp touch /etc/samba/smb.conf vi /etc/samba/smb.conf
Type het volgende in smb.conf en bewaar:
[global] workgroup = SERVER1 netbios name = LINUXSERVER1 server string = Mijn Samba Server security = share encrypt passwords = yes [homes] guest ok = no read only = no [share-lin] path = /share writable = yes browseable = yes
Het smb.conf bestand kan je opdelen in 2 secties : •
Globale eigenschappen (gemeenschappelijke eigenschappen van de shares)
•
Share definities: hier worden de verschillende shares gedefinieerd. Deze sectie heeft 3 subsecties: -
Homes
-
Printers
-
Shares
6
Bovenstaand smb.conf bestand begint met de globale instelling voor de NetBIOS parameters:
workgroup
SERVER1
Geeft aan in welke windows werkgroep/domein je de linux machine zal toevoegen
netbios name
LINUXSERVER1
De naam waaronder de linux machine zal verschijnen in de windows werkgroep/domein. Wanneer je geen netbios name specificeert zal automatisch de hostname van de linuxmachine gebruikt worden
server string
Samba Server
Via de server string kan je de samba server beschrijven
Na de NetBios parameters volgen de globale security parameters:
security
share
De parameter security heeft 4 mogelijke waarden: share, user, server of domain
encrypt passwords
yes
Zorgt ervoor dat Samba een versleuteld paswoord protocol zal gebruiken
Een heel belangrijk punt is het kiezen van je security. Deze parameter bepaalt een groot stuk van het gedrag van Samba en de clients die verbinden met de Samba server. • User:
wanneer een client probeert te verbinden naar een share, zendt hij een combinatie van username/password naar de server. De server kan daaruit niet uitmaken welke share de client probeert te benaderen. Het enige wat kan gecontroleerd worden is de geldigheid van de login en het passwoord, en de cliëntmachine (het IP, de hostname of de netbios-name). De client gaat ervan uit dat met een bepaalde username/password-combinatie alle shares op een server beschikbaar worden. We zien gemakkelijk in dat dit een vrij zwakke implementatie is van shares. We kunnen bijvoorbeeld geen 2 shares gebruiken die een andere username/password-combinatie nodig hebben.
• Share:
Deze mode is de logische verbetering op user-level. Bij iedere share wordt telkens een username/password-combinatie meegestuurd, en per share kan deze verschillen. Zo kunnen we meerdere shares benaderen met verschillende username/password. Share-mode is de meest gebruikte mode.
• Server:
Deze configuratie zorgt ervoor dat de samba-server aan de clients meld dat hij in user-mode draait, maar eigenlijk gaat hij alle passwoord-controle doorspelen aan een andere server die in user-mode draait. Een extra parameter password server moet ook meegegeven worden.
7
• Domain: Deze optie is pas beschikbaar gekomen vanaf versie 2. Sinds deze release kan een linux machine met behulp van Samba ook deel uitmaken van een NTdomain, waar alle passwoorden en logins gecontroleerd worden door een NTserver. De share definitie van de subsectie Homes wordt gebruikt voor alle home directories, zodat het niet nodig is aparte shares voor elke user te maken. Belangrijk is de inhoud van het smb.conf te valideren met het testparm programma. Testparm zal het configuratiebestand doorlopen en fouten rapporteren op onbekende parameters of onjuiste syntax.
testparm /etc/samba/smb.conf
Valideer smb.conf na elke wijziging.
3.4 Een tweede configuratie De printers delen tussen linux en windows is vrij gemakkelijk. Wanneer we deze correct hebben ingesteld onder linux moeten we enkel de juist parameters inschakelen in het configuratiebestand van Samba. Om op een windows-printer te printen vanuit linux wordt een programma voorzien, nl smbprint.
8
4
Starten en stoppen van Samba Samba is een server, en is dus een service die je kan opstarten, herstarten en stoppen. De server kan je op 2 manieren starten, namelijk als daemon of uit inetd.conf. Als er heel veel connecties gemaakt worden over een bepaalde tijd, kan je opteren voor de daemons, anders kies je voor de inetd-optie. Hier gaan we samba als daemon opstarten. We starten de twee samba-daemons op door de commando’s “nmbd –D” en “smbd –D” uit te voeren.
nmbd –D smbd -D
Nmbd verzorgt NetBIOS name service requests en network browsing functies Smbd verzorgt file and print service requests.
5 Shares benaderen 5.1 Locaal Met smbclient kunnen we al eens kijken of we de shares kunnen zien op onze eigen machine. Om een lijst van alle beschikbare shares op de server (gebruik NetBIOS name, localhost of het OP-nummer) te tonen, voer je het volgende commando uit:
smbclient –L linuxserver1
Normaal wordt er ook gevraagd om een passwoord, en dan geef je gewoon een leeg passwoord. Een andere controle is dan het proberen gebruiken van een share:
smbclient //linuxserver1/nathalie
Hiermee proberen we de homedirectory van de gebruiker ‘Nathalie’ te gebruiken. In de man-pages van smbclient zien we dat we ook parameters kunnen meegeven die de username en het passwoord bepalen:
9
smbclient //linuxserver1/share-lin –U nathalie
5.2 Van windows naar linux Daarna gaan we op een windows-machine proberen de shares te benaderen. Na het starten van de nmbd daemon, krijg je de “linuxserver1” te zien in het domein “server1” (netwerkomgeving). Dan is het enkel een kwestie van dubbelklikken, en de juiste login + wachtwoord intikken. Windows probeert eerst de user + pass uit waarmee je op windows lokaal bent ingelogd. Als deze kloppen moet je dus geen verdere informatie meer ingeven. Als alles lukt, zie je nu de directories en/of bestanden staan die je in Linux dmv smb.conf hebt geshared. Mogelijk moet je de firewall op linux uitzetten wanneer je een “not accessible, the network path was not found” foutmelding krijgt:
iptables –P INPUT ACCEPT iptables –F
5.3 Van linux naar windows Share een map op je windows-machine als “share-win”.
In onderstaand voorbeeld benader je de gedeelde map op de windows computer onder de gebruiker ‘Jo’ . Jo is een gebruiker aangemaakt via Active Directory of via Control Panel Users and Passwords (indien je geen active directory hebt).
smbclient //winserver1/share-win –U jo
5.4 smbclient vs Nautilus Wanneer je de smbclient opstart krijg je de “smb: \>” prompt op het scherm en kan je commando’s intypen. De backslash geeft de huidige werkdirectory weer, en zal veranderen indien je van directory wisselt.
10
Enkele commando’s ([] zijn optionele parameters):
? [commando]
Wanneer een commando gespecificeerd is, zal een kort
help
informatief berichtje over het commando weergegeven worden. Is geen commando gespecificeerd, dan krijg je een lijst van alle beschikbare commando’s.
cd [directory name]
Wijzig huidige directory of geef de huidige directory weer.
del <mask>
Bestanden verwijderen die aan het mask voldoen.
exit
Beëindig connectie met server en sluit het programma.
quit get
[local file]
Kopieer een bestand vanop de server naar de machine
mget <mask>
waarop de smbclient draait.
ls <mask>
Geef de bestanden weer in de huidige directory.
md
Maak een nieuwe directory aan.
mkdir put [remote file]
Kopieer een bestand vanop de machine waarop de
mput <mask>
smbclient draait naar de server
queue
Toon de print queue
Nautilus is een filemanager waarmee je de shares op een grafische wijze kan bekijken:
cd /usr/bin ./nautilus
Als locatie geef je bijvoorbeeld “smb://server1” in.
11
6
Grafische configuratie tools
6.1 Samba Server Configuration Tool De Samba Server Configuration Tool is een grafische interface om Samba shares, gebruikers en server instellingen te beheren. Het past het configuratiebestand in de “/etc/samba” directory aan. Om deze tool te gebruiken, moet je het X Windows System draaien, root privileges hebben en moet het redhat-config-samba RPM pakket geïnstalleerd zijn. Starten doe je door “redhat-config-samba” aan de shell prompt in te typen of via Main Menu Button System Settings Server Settings Samba Server te klikken.
6.2 Samba Web Administration Tool (SWAT) SWAT is een web-based Samba Configuration Tool. Hiervoor moet SWAT RPM pakket geïnstalleerd zijn en moet een webserver draaien. SWAT bereik je door in je favoriete webbrowser naar “http://localhost:901” te gaan. Als alles correct verloopt, zal je een loginscherm te zien krijgen. Vul root en je root wachtwoord in.
12
7
Samba als PDC gebruiken In dit hoofdstuk gaan we Samba als een Primary Domain Controller opzetten. Om dit succesvol te doen, moeten in hoofdzaak volgende stappen doorlopen worden: •
Samba installeren (indien dit nog niet gedaan is);
•
Het smb.conf bestand configureren;
•
De nodige directories aanmaken op de server (wanneer logon scripts of roaming profiles gebruikt zullen worden);
•
De gebruikers- en computeraccounts aanmaken;
•
De configuratie starten en de Samba server starten;
•
Tenslotte elke cliënt configureren en toevoegen aan het nieuwe domain.
13
7.1 Configuratie smb.conf NetBios instellingen
# /etc/samba/smb.conf # Samba als PDC configuratie bestand # last updated: 13/02/2004 door Davy [global] ;NetBIOS instellingen workgroup = server1 netbios name = oliserver1 server string = Linux met Samba %v als PDC
Bij een domain controller geef je het nieuwe domein een naam met de “workgroup” parameter. De FQDN van de Samba server wordt bijgevolg “oliserver1.server1”.
PDC en master browser instellingen Vervolgens moeten we Samba vertellen dat we de machine als een PDC willen gebruiken. Voeg hiervoor volgende parameters toe aan smb.conf:
[global] … ;PDC en master browser instellingen os level = 64 preferred master = yes local master = yes domain master = yes …
Eén machine in elk subnet houdt een lijst bij van alle op dat moment actieve machines. Deze lijst wordt de “browse list” genoemd en de server die deze lijst bijhoudt de “local master browser”. Wanneer computers aan- en afmelden op het netwerk, zal de local master browser de browse list updates. Andere machines raadplegen deze lijst. Wanneer de local master browser zelf niet beschikbaar is, bepaalt een routine welke computer deze functie kan overnemen.
Het bepalen van deze computer met de meest accurate local
master browse list hangt af van verschillende factoren (election protocol, os level, preferred master instelling, de tijd gedurende de computer reeds online is en tenslotte een alfabetische sortering op basis van de NetBIOS name). De “domain master” parameter is de instelling die Samba als PDC instelt.
14
Security instellingen
[global] … ;Security en logging instellingen security = user encrypt passwords = yes domain logons = yes log file = /var/log/samba/log.%m log level = 2 max log size = 50 hosts allow = 127.0.0.1 172.16.101.0/255.255.0.0 …
Voor een Samba PDC moet je de “security” op user zetten! Ook het encrypteren van wachtwoorden is noodzakelijk voor een Samba PDC. De “domain logons” parameter zorgt ervoor dat Samba domain logons ondersteunt (anders staat Samba enkel in voor de identificatie van de gebruikers en moeten ze voor logon scripts en home directories naar een andere computer doorverwezen worden). De volgende parameter geeft het pad aan waar het logbestand zal worden weggeschreven (%m is een vervangingsvariabele en zal vervangen worden door de NetBIOS naam van de machine die verbinding maakt). Welke soort informatie in het logbestand komt, bepaal je met de “log level” parameter (level 1 t.e.m. 10). Een log level hoger dan 3 instellen is afgeraden tenzij heel gedetailleerde debugging informatie nodig is. Om de logbestanden klein en overzichtelijk te houden stellen we een “max log size” van 50 in, wat wil zeggen dat elk logbestand maximum 50 kilobytes groot kan worden. Wordt deze grootte bereikt, dan worden de oudste logmeldingen vervangen door nieuwe. Tenslotte kunnen we ervoor zorgen dat enkel computers binnen het lokale 192.16.101 subnet verbinding kunnen maken met de Samba server. Localhost voeg je ook best toe, zeker wanneer je gebruik wil gaan maken van SWAT.
15
Zwervende profielen en home directories Vervolgens gaan we roaming profiles gebruiken. Hierdoor worden de bestanden en instellingen van iedere gebruiker bewaard op de harde schijf van de PDC ipv locaal. Het voordeel hiervan is dat de gebruikers op eender welke computer kunnen aanloggen en toch beschikken over hun persoonlijke instellingen en bestanden.
[global] … ;gebruikersprofielen en home directory instellingen logon home = \\%L\%U\.profile logon drive = H: logon path = \\%L\profiles\%U … # === Shares === [homes] comment = Home directories browseable = no writeable = yes [profiles] path = /home/samba/profiles browseable = no writeable = yes create mask = 0600 directory mask = 0700
Belangrijk om op te merken aan de hierboven globale instellingen sectie is dat de vernoemde directories een overeenkomstige share moeten hebben (in dit geval profiles). Bestaat de share niet of is de schrijfwijze verschillend dan krijgen de gebruikers geen toegang tot de PDC. Daarenboven moet je ervoor zorgen dat je die directory aanmaakt en de juiste permissies eraan toekent. Het “logon path” gebruikt vervangingsvariabelen en maakt dus gebruik van de [profiles] share. Veronderstel dat je gebruikersnaam tom is en je probeert te connecteren met PDC oliserver1, dan zal het logon path “\\oliserver1\profiles\tom” worden. Op oliserver1 zelf vind je het profiel terug in de “/home/samba/profiles/tom” map (Samba maakt zelf de tom directory aan bij de eerste login). Om veiligheidsreden maken we de [profiles] share niet browseable (wat wil zeggen dat je de share verbergt in Network Neighborhood), writeable (noodzakelijk om het gebruikersprofiel aan te passen wanneer wijzigen worden aangebracht), create mask krijgt een 0600 waarde (rwx-xxx-xxx—zodat enkel de gebruiker zelf bestanden kan lezen of wegschrijven), en we zorgen ervoor dat elke nieuw aangemaakte directory de waarde 0700 krijgt. OPM: Windows NT/2000 cliënts implementeren profielen anders dan Windows 9x/ME cliënts, vandaar de 2 verschillende toegangen naar het logon path. De “logon home” is Win9x/ME afhankelijk, het “logon path” is voor Windows NT/2000.
Wanneer je geen Win9x computers in
je netwerk hebt, kan je gerust de logon home parameter weglaten.
16
De [homes] share is één van de drie speciale secties in het Samba’s configuratie bestand (de andere twee zijn [global] en [printers]). Wanneer een cliënt een verbinding probeert te maken met een share die niet bestaat, en een [homes] share bestaat in smb.conf, zal Samba de gebruiker automatisch proberen doorverwijzen naar zijn home directory. De gebruikersnaam wordt ingevuld in de logon home parameter in de globale sectie (bijvoorbeeld “\\oliserver1\tom”). Heb je geen logon home parameter in de globale sectie, dan kijkt Samba of je een path ingesteld hebt bij de share [homes]. Wanneer ook geen path gedefinieerd werd bij [homes] in het configuratie bestand wordt de “/home/username” gebruikt. De share wordt toegewezen aan een stationsletter adhv de “parameter logon” drive.
Netlogon instellingen Het laatste wat we gaan toevoegen aan smb.conf is het logon script.
[global] … logon script = netlogon.bat … # === Shares === [netlogon] comment = Network Logon Service path = /home/netlogon read only = yes browseable = no write list = @admins-grp
De [netlogon] share wordt voornamelijk gebruikt voor administratieve doeleinden zoals cliëntmachines updaten met register patches, antivirus updates, …. Daarenboven kan je een system policy laten toepassen op de client(s) of een back-up nemen van bepaalde bestanden telkens wanneer een gebruiker aanlogt.
Meer informatie over samba scripting kan je vinden op
samba.org of via google. Enkele punten waarop je moet letten: •
Het bestand waarnaar je verwijst met “logon script” kan je eender welke naam geven, zolang Windows het bestand maar herkent als een uitvoerbaar bestand;
•
Met de “write list” parameter kan je verantwoordelijkheid delegeren aan bepaalde
•
Stel permissies in als executable op de linux computer.
gebruikers of gebruikersgroepen (@ geeft aan dat het om een groep gaat).
17
Het volledige smb.conf bestand
# /etc/samba/smb.conf # Samba als PDC configuratie bestand # last updated: 13/02/2003 door Davy [global] ;NetBIOS instellingen workgroup = server1 netbios name = oliserver1 server string = Linux met Samba %v als PDC ;PDC en master browser instellingen os level = 64 preferred master = yes local master = yes domain master = yes ;Security en logging instellingen security = user encrypt passwords = yes domain logons = yes log file = /var/log/samba/log.%m log level = 2 max log size = 50 hosts allow = 127.0.0.1 192.16.101.0/255.255.255.0 ;gebruikersprofielen en home directory instellingen logon home = \\%L\%U\.profile logon drive = H: logon path = \\%L\profiles\%U logon script = netlogon.bat # === Shares === [homes] comment = Home directories browseable = no writeable = yes [profiles] path = /home/samba/profiles browseable = no writeable = yes create mask = 0600 directory mask = 0700 [netlogon] comment = Network Logon Service path = /home/netlogon read only = yes browseable = no write list = @admins-grp
18
7.2 Directories, accounts en identificatie Nu we het PDC configuratie bestand klaar hebben, moeten we nog op de server de directories aanmaken zoals we die beschreven hebben in smb.conf, de juiste permissies toewijzen op deze directories en de nodige machine- en gebruikersaccount creëren. Creëren van 2 groepen om het domein te beheren
groupadd –g 200 admins-grp groupadd –g 201 computers-grp
Het eerste commando creëert een administrator groep met een GID van 200, die gebruikers zal bevatten die bepaalde aspecten van de PDC mogen beheren. De groep computers is een handige manier om computeraccounts te ordenen. Aanmaken van de 2 directories
mkdir chown mkdir chmod
–m 0775 /home/netlogon root.admins-grp /home/netlogon /home/samba /home/samba/profiles 1757 /home/samba/profiles
Correcte permissies en ownership instellen op deze directories is een belangrijke stap bij het beveilingen van je server. Wanneer een cliënt aanlogt op de server, zal immers elk bestand in de “/home/netlogon” directory (netlogon.bat in ons voorbeeld) automatisch gedownload en uitgevoerd worden. Het “chown” commando op “/home/samba/profiles” zet de directory permissie zo dat enkel de gebruiker zijn eigen profile directory kan gebruiken en niet naar de bovenliggende map kan navigeren om zo aan de profile directories van andere gebruikers te komen.
Machine en gebruikersaccounts Tijd om computer- en gebruikeraccounts aan het domein toe te voegen. Zoals reeds beschreven in vorig hoofdstuk ligt het probleem aan het feit dat Windows wachtwoorden anders gecodeerd worden dan Linux wachtwoorden. De ‘brug” tussen deze 2 formaten is het Samba password bestand. Noodzakelijk is dat er voor elke account in dit smbpasswd bestand een overeenkomstige linux account bestaat.
Gebruikersaccounts De methode om gebruikers toe te voegen werd reeds besproken in vorige hoofdstukken. Merk wel op dat een root gebruikersaccount moet bestaan om windows machines aan het domein toe te kunnen voegen.
19
Computeraccounts Computeraccounts zijn ook wel gekend als trust accounts en worden gebruikt om veilige communicatie tussen de cliënt en de domain controller op te zetten en zo niet bevoegde computers met dezelfde NetBIOS naam verbieden het domein binnen te dringen.
Hiervoor wordt
een “secret” gebruikt dat automatisch bij de creatie van een trust account of computeraccount wordt gegenereerd (ongeveer hetzelfde principe als een unieke computernaam/wachtwoord combinatie). Cliënts die Windows NT/2000/XP als OS draaien ondersteunen volledig het concept van trust accounts, Windows 9x/ME cliënt daarentegen niet. Daarom zijn Windows 9x/ME cliënts niet echt geschikt om gebruikt te worden in domain-type netwerken. Je kan op 2 manieren trust accounts of computeraccounts aanmaken op de PDC: •
Manueel ingeven in linux en Samba
•
Automatisch via een “add user” script in smb.conf
Manueel Eerst een linux account aanmaken in /etc/passwd:
useradd –g computers-grp –d /dev/null oliws1$ passwd –l oliws1$
Het eerste commando creëert de gebruiker “oliws1” (het dollarteken identificeert de account als een trust account) als lid van de groep “computers-grp” (-g) en met geen home directory (-d /dev/null). Optionele parameters zoals een omschrijving (-c “oliws1 client pc”) kan je eventueel ook toevoegen. Het tweede commando maakt het “secret” waarop je de machine kan identificeren. Nu de linux account bestaat, kan je “oliws1” toevoegen aan /etc/samba/smbpasswd:
smbpasswd –a –m oliws1
OPM: Wanneer je Samba geïnstalleerd hebt op een andere plaats dan de default locatie, dan zul je het volledige path moeten opgeven om smbpasswd uit te kunnen voeren. Ook is het niet nodig om bij smbpasswd een dollarteken te gebruiken bij de NetBIOS naam. Van zodra de account op de PDC aangemaakt werd, wordt het aangeraden om zo snel mogelijk te connecteren met de cliënt (dit zal het wachtwoord van de machine wijzigen en het “secret” tussen de server en de cliënt synchroniseren). Zolang dit niet gebeurt is, is het domein kwetsbaar doordat andere machines met dezelfde NetBIOS naam kunnen toetreden.
20
Automatisch Hierbij laat je Samba accounts aanmaken wanneer een cliënt voor het eerst toetreed tot het domein (linux trust account en overeenkomstige account in smbpasswd). Dit bewerkstellig je door een add user script parameter toe te voegen aan smb.conf.
[global] … add user script = /usr/sbin/useradd –d /dev/null –g computers-grp –M %u …
Merk op dat het bovenstaande commando kan verschillen tussen OS’s onderling en/of distributies.
Gebruikersaccounts synchroniseren Als laatste punt in dit hoofdstuk wordt kort het synchroniseren van wachtwoorden besproken. De instellingen hieronder zorgen ervoor dat een gebruiker zijn Samba wachtwoord kan wijzigen vanuit een windows cliënt, waarna automatisch hun linux wachtwoord zal aangepast worden zodat dit identiek is aan het nieuwe Samba wachtwoord. Omgekeerd kan niet, wanneer het linux wachtwoord gewijzigd wordt dan zal het samba wachtwoord manueel gesynchroniseerd moeten worden.
[global] … ;Synchronisatie linux wachtwoorden unix password sync = yes passwd program = /usr/bin/passwd $u passwd chat = \*huidig*wachtwoord* %o\n *nieuw*wachtwoord* %n\n *nieuw*wachtwoord* %n\n *aangepast*
Merk het verschil op dat sommige parameters password gebruiken en andere passwd. De “passwd chat” parameter bevat vervangingsvariabelen waarbij %o voor het oude staan en *n voor het nieuwe wachtwoord (let niet op de automatisch regelovergang in het voorbeeld hierboven, de waarde van passwd chat schrijf je op één lijn).
21
7.3 Configuratie cliënts Uiteindelijk kan je de windows cliënts aan je nieuwe domein toevoegen, de werkwijze verschilt jammer genoeg van versie tot versie. Alhoewel dit Microsoft en niet Samba gerelateerd is, volgt toch een beknopt overzicht per versie:
Client configuration: Windows 95/98/ME To join a Windows 95/98/ME client to the domain: 1.
First check that Client for Microsoft Networks is installed; if not, install it (Control Panel Network Client for Microsoft Networks). To install, place your Windows CD in the drive and select Add from the afforementioned dialog, then: Client Add... Microsoft Client for Microsoft Networks.
2.
Make sure Client for Microsoft Networks is the primary network protocol (Control Panel Network Primary Network Logon).
3.
Next, go to Control Panel Network Client for Microsoft Networks Properties Logon to NT Domain.
4.
If you've employed the add user script option, select the checkbox Create a Computer Account in the Domain; otherwise you'll need to ensure a machine account already exists for the client.
5.
Fill in the domain, and click OK.
Client configuration: Windows NT/2000 Under Windows NT: 1.
Go to Control Panel Network Identification Change option. If the machine is currently configured under the Workgroup option, select the Domain radio button and enter the domain name.
2.
Select Create a Computer Account in the Domain as necessary.
3.
Now, logon to the domain using the username root and the appropriate password. This is necessary to initialize the "secret" between the server and client machines. From here forward, any authenticated user can logon from this machine.
4.
A message should appear welcoming you to the domain_name domain.
The steps are the same for Windows 2000 except the network settings are found under Control Panel System Network Identification (or right-click the My Computer icon on your desktop, choose Properties, Computer Name, and select the Change button).
22
Client configuration: Windows XP Enter Windows XP, and the most complex beast of the lot. But first a word of warning for those unaware: Windows XP Home Edition cannot join a Windows domain. For domain functionality, you must use Windows XP Professional. Second, sometimes joining an XP machine to a Samba PDC involved all the steps below; on other occasions, however, you can get away with just the registry patch. Don't ask--I haven't a clue. To join a Windows XP machine to a domain: 1.
Open the Local Security Policy editor (Start All Programs Administrative Tools Local Security Policy).
2.
Locate the entry "Domain member: Digitally encrypt or sign secure channel (always)". Disable it.
3.
Locate the entry "Domain member: Disable machine account password changes". Make sure it's disabled as well.
4.
Locate the entry "Domain member: Require strong (Windows 2000 or later) session key". Disable it.
5.
Next, download the WinXP_SignOrSeal registry patch from www.samba.org or collect it from other resources.
6.
Now join the domain the same as you would for Windows NT or 2000. Right-click My Computer, select Properties, Computer Name, and Change. Or click the Network ID button and run the Network Wizard.
23
8 Bijlage 8.1
Vervangingsvariabelen
Name
Meaning
%a
Client's architecture (Samba, WfWg, WinNT, Win95, or UNKNOWN)
%d
Current server process's process ID
%D
User's Windows NT Domain
%f
Printer spool file as a relative path (printing only)
%f
User from which a message was sent (messages only)
%G
Primary group name of %U (requested username)
%g
Primary group name of %u (actual username)
%H
Home directory of %u (actual username)
%h
Samba server’s (Internet) hostname
%I
Client’s IP address
%j
Print job number (printing only)
%L
Samba server’s NetBIOS name (virtual servers have multiple names)
%M
Client’s (Internet) hostname
%m
Client’s NetBIOS name
%N
Name of the NIS home directory server (without NIS, same as %L)
%n
New password (password change only)
%o
Old password (password change only)
%P
Current share’s root directory (actual)
%P
Current share’s root directory (in an NIS homedir map)
%P
Print filename (printing only)
%R
Protocol level in use (CORE, COREPLUS, LANMAN1, LANMAN2 or NT1)
%S
Current share’s name
%s
Name of the file in which the message resides (messages only)
%s
Printer spool filename (printing only)
%T
Current date and time
%t
Destination system (messages only)
%U
Requested username for current share
%u
Current share’s username
%v
Samba version
%$name
Value of environment variable name
24
9
Bibliografie Using Samba, 2nd Edition Publisher:
O’Reilly & Associates
Pub Date:
Februari 2003
ISBN :
0-596-00256-4
Using Samba, Second Edition is a comprehensive guide to Samba administration. This new edition covers all versions of Samba from 2.0 to 2.2, including selected features from an alpha version of 3.0, as well as the SWAT graphical configuration tool. Updated for Windows 2000, ME, and XP, the book also explores Samba's new role as a primary domain controller and domain member server, its support for the use of Windows NT/2000/XP authentication and filesystem security on the host Unix system, and accessing shared files and printers from Unix clients.
Samba, een inleiding Publisher:
Zeus WPI publicatie
Pub Date:
December 2000
URL:
http://www.zeus.ugent.be/pubs/linux/samba.pdf
Samba Step-by-Step Guide Publisher:
Ying Zhang
Pub Date:
September 1999
URL:
www.zippydesign.com/ying/linux/samba/samba-howto.pdf
Instructions on setting up Samba 2.0.3 to share out resources on your Linux box to SMB clients (i.e. Windows).
25
Using Samba as a PDC Publisher:
IBM developerWorks
Pub Date:
April 2002
URL:
www-106.ibm.com/developerworks/eserver/tutorials/samba/
Open-source Samba turns a Unix or Linux system into a file and print ... a juicy tutorial that shows you how to configure Samba as the primary domain controller.
Samba PDC mini-HOWTO Publisher:
Daniel Fiser, Damir Horvat
Pub Date:
Juli 2001
URL:
http://daniel.fiser.cz/?go=samba
This mini-HOWTO explains setting up samba 2.2.0 as Win PDC and adding Windows NT/2000 machines into domain. The mini-HOWTO might also apply to samba 2.0.7 though it was not tested. Version prior to 2.0.7 do not support Win2k domain members.