Het vervangen van een Windows NT/2000 server door Linux en SAMBA

ArticleCategory: [Choose a category, do not translate this]

System Administration

AuthorImage:[Here we need a little image from you]

[Sebastian Sasias]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in es Sebastian Sasías

es to en Sebastian Sasías

en to nl Hendrik-Jan Heins

AboutTheAuthor:[A small biography about the author]

Hij heeft Linux nu al enkele jaren in gebruik als een gereedschap om technologische oplossingen te ontwikkelen.
Hij werkt aan apparaatbeheer met behulp van Linux, signaalverwerking, communicatie en netwerkbeveiliging.
Hij is een Professional in Electronica - Automatisering en Computer Wetenschappen.
Hij heeft enkele bijdragen geleverd aan Free Software ontwikkeling onder GNU/GPL.

Abstract:[Here you write a little summary]

Dit artikel is een aanvulling op enkele aspecten die al eerder zijn gepresenteerd in andere _LF_ artikelen over SAMBA en z'n gebruik van gedeelde bronnen in heterogene Unix-Windows netwerken. Het gaat vooral over een Linux systeem dat SAMBA draait om enkele services te kunnen draaien die meestal worden geleverd door Windows besturingssystemen.
Dit is niet alleen een demonstratie van de kracht en flexibiliteit van Linux, maar het heeft ook belangrijke economische gevolgen:

Een Linux server met een goed geconfigureerde SAMBA kan dienen als Windows NT/2000 server, hij deelt directories, bevat een active directory service (ADS), maar hij kan ook dienen als PDC (Primary Domain Controller). Ook de gebruikersauthenticatie voor Windows 2000/NT/98/95 clients neemt hij voor z'n rekening, en uiteraard is ook het delen van bronnen (directories en printers) mogelijk, en het aapassen van gebruiker-sessies.
Dit artikel gaat over slechts enkele van deze aspecten.

De Linux server met SAMBA kan in veel omgevingen waarin de bovengenoemde functies van belang zijn, alle functies van een Microsoft server overnemen, zonder dat de client computers anders hoeven te worden ingesteld.
Voor de stappen die hier worden uitgelegd, wordt er vanuit gegaan dat SAMBA al is geïnstalleerd en dat het werkt op de machine die als server gebruikt gaat worden. De lezer moet vertrouwd zijn met de basisconcepten wat betreft Linux en Windows servers.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Case Studie

Ga uit van een Linux/SAMBA server die dient als PDC, waarop alle geautoriseerde gebruikers ook toegang hebben tot twee gedeelde directories op de server: de een is publieke ruimte, de andere is een priv�-gebied. In dit artikel wordt er gekeken naar de toegang tot een privaat gegevens gebied zoals dat vaak wordt gebruikt, een soort persoonlijke map voor elke gebruiker.



Details waaraan gedacht dient te worden:

Linux/Samba NetBIOS Naam:SMBServer
Windows domainnaam (werkgroep): HETDOMEIN
Private partitie voor iedere gebruiker: H: (Windows) => /home/ (Linux server)
Publieke partitie: P: (Windows) => /home/public



Figuur 1 toont een eenvoudig netwerk met Windows clients die gebruik maken van de bronnen en diensten van de Windows NT/2000 server. Het is deze server die we gaan vervangen door SAMBA op Linux.

Network diagram
Fig. 1 – PDC en Bestands-server op Windows

Configuratie

Volg de stappen:

1) Maak de gebruikers aan die geautoriseerd moeten worden door de PDC server (Linux met Samba).
Gebruik het adduser commando, useradd of userconf, of kies voor een gebruikersbeheer-tool met grafische interface zoals Webmin, Linuxconf of Yast bijvoorbeeld.

Controleer of gebruikers enkel toegang hebben tot de Linux/Samba diensten en niks anders (als dat is wat je wilt), dit houdt in dat ze geen toegang hebben tot de Linux commandoregel. Om dit voor elkaar te krijgen, moet je /dev/null als home directory aangeven en /bin/false als shell (commandoregel).

2) Converteer de UNIX gebruikers naar Linux/Samba/Windows gebruikers, met behulp van het smbpasswd bestand.

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

Een andere manier om dit voor elkaar te krijgen is de volgende: voer de volgende SAMBA commando's uit voor het maken van gebruikers en om wachtwoorden aan te geven:

smbadduser
smbpasswd

Deze commando's werken op dezelfde manier als de adduser en passwd commando's.

3) Bewerk het SAMBA configuratiebestand (smb.conf), en zet of verwijder de commentaartekens als volgt:

netbios name = SMBServer
workgroup = HETDOMEIN
server string = Linux Samba NT Server
log file = /var/log/samba/%m.log
max log file = 0
security = user
encrypt password = yes
smb password file = /etc/samba/smbpasswd
ssl CA certificate = /usr/share/ssl/... (verwijder het commentaarteken)
socket options = (verwijder het commentaarteken)
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
logon script = logon.bat
wins support = yes


Opmerking:
Vervang de login scripts door %U.bat als u een specifieke login voor iedere gebruiker wilt, dan heeft iedere gebruiker een login script met z'n eigen gebruikersnaam, %u mag hier ook. Als je het login script wilt bepalen aan de hand van de groep waartoe de gebruiker behoort, dan kan je ook %g of %G gebruiken. De betekenis van deze en andere parameters kan worden gevonden in de handleiding (man smb.conf)
.

4) Maak de gedeelde bronnen aan
Bewerk het smb.conf bestand en becommentarieer alle "share" voorbeelden, breng de volgende wijzgingen aan:

[netlogon]
comment = Initialization Scripts
path = /home/netlogon
read only = yes
guest ok = yes
browseable = no

[home]
comment = User Directory
path = /home/%U
browseable = yes
writable = yes

[public]
comment = Public Directory
path = /home/public
browseable = yes
writable = yes
guest ok = yes
create mask = 0777
force create mask = 0777


Bewaard deze smb.conf

5) Je kunt testen of het smb.conf correct is door gebruik te maken van het volgende commando:

testparm

Dit commando analyseert het smb.conf bestand en rapporteert de gevonden fouten.

6) Maak de directories /home/netlogon en /home/public aan met de rechten 0754 (netlogon) en 0777 (public).

7) Bewerk het Login script: logon.bat.
Belangrijk: Gebruik een tekst editor voor DOS/Windows (zoals Notepad of Edit) om het bestand logon.bat aan te maken (zodat het bewaard wordt als tekstbestand in een MS compatibel formaat), je kunt dit ook doen door gebruik te maken van een tekst editor onder Linux en daarna het bestand te converteren naar het juiste formaat. Je kunt bijvoorbeeld gebruik maken van het "set textmode" commando in vim om een bestand met MS regeleinden te krijgen.

net time \\SMBServer /y (je kunt ook gebruik maken van: /yes in plaats van /y )
net use H: \\SMBServer\home -y
(Je kunt ook gebruik maken van: /yes of /y in plaats van -y )
net use P: \\SMBServer\public -y

8) Voeg SMBServer informatie toe aan het lmhosts bestand
Bewerk het /etc/samba/lmhosts bestand (of /etc/lmhosts) en voeg een regel toe met je SMBServer informatie.

SMBServer, dus: 192.168.0.10 SMBServer

9) Start of herstart de Samba daemon (smbd)

service smb restart

Wanneer dit niet goed werkt in jou Linux distributie, kun je ook gebruik maken van:
ps -auxgx | grep smb
kill -9 <ID van het smb proces>
smbd

10) Gebruik smbclient om te controleren of de bovenstaande configuratie werkt.

smbclient -L //SMBServer

Zodra "Password:" wordt weergegeven, druk je op "Enter" en de gedeelde bronnen op de server worden getoond.

11) Doe een client login via een Windows 95/98/NT computer in HETDOMEIN, gebruik daarvoor één van de hiervoor aangemakte Linux/Samba gebruikers (zie stap 1 en 2).

Op Windows 95/98/ME zou dat als volgt moeten worden ingesteld:

Start => Setup (instellingen) => Control Panel (configuratiescherm) => Network (netwerk) =>Network Client for Microsoft Networks (netwerk client voor Microsoft netwerken) => Properties (eigenschappen).

Een Windows NT/2000 client (Workstation/Professional) kan op een soortgelijke manier worden ingesteld, maar de volgorde van handelingen is niet exact hetzelfde.

Klik op de optie "Start session in Windows NT/2000 domain" en geef het volgende domein op: HETDOMEIN (WORKGROUP).

Een voorbeeld configuratiebestand

Hier wordt een compleet SAMBA configuratiebestand weergegeven, dit bestand is getest op verschillende distributies. De lezer kan het aanpassen om de benodigde resultaten te verkrijgen. Iedere instructie is uitgebreid becommentarieerd.

Een laatste woord van advies voor degenen die de SAMBA configuratie graag wat handiger willen: installeer Webmin en/of SWAT, deze gereedschappen maken het configureren heel wat vriendelijker.

#============================================================#
# /etc/smb.conf
#------------------------------------------------------------------------------------------------------------#
# Algemeen SAMBA configuratiebestand
# Raamwerk voor configuratie, selecteer de
# gewenste parameters naar keus
#------------------------------------------------------------------------------------------------------------#
# Getest op de volgende systemen (Solaris en Linuxdistributies):
# RedHat 6.0, 7.0 en 7.1
# Solaris 7
# Slackware 7.x
# Mandrake 6.1, 7.0 en 8.1
# SuSE 7.2
#------------------------------------------------------------------------------------------------------------#
# Laatste wijziging: 08/12/2001
# Sebastian Sasias - sasias(at)linuxmail(dot)org
#============================================================#
#
# Dit bestand volgt de aanwijzingen uit de SABMA documentatie
# meerbepaald: de smb.conf(5) manual
#
# Test deze configuratie na het wijzigen met de opdracht "testparm"
#
#======================== Globale Opties =======================#
#
# Algemene configuratie
#
[global]
#......................................................................................................................................#
# workgroup = NT-Domeinnaam of werkgroepnaam, ie: HETDOMEIN
# PDC Domain
workgroup = HETDOMEIN
#......................................................................................................................................#
# De naam van deze machine, wordt gezien door de clients
netbios name = SMBServer
#......................................................................................................................................#
# Dit commentaar zal verschijnen in de "Netwerkomgeving' van Windows.
server string = Samba Server van het departement/bedrijf/netwerk
#......................................................................................................................................#
# Deze regel is belangrijk voor de veiligheid, het staat enkel
# verbindingen toe met bepaalde machines in het lokale netwerk.
# In dit voorbeeld is er enkel toegang mogelijk voor computers in het
# 192.168.8.0 bereik (klasse C netwerk) en van de "loopback" interface.
# Meer details in de smb.conf man pagina's.
# Dus: de gedeelde toegang is enkel te lezen voor machines met een IP adres
# dat begint met 192.168.8 of met 127
; hosts allow = 192.168.8. 127.
#......................................................................................................................................#
# Als je automatisch een printerlijst wilt laten genereren...
; load printers = yes
#......................................................................................................................................#
# Een alternatieve printcap locatie is mogelijk
; printcap name = /etc/printcap
#......................................................................................................................................#
# In SystemV moeten de printcap name properties voor lpstat
# het automatisch ophalen van een printerlijst via het spool-systeem toelaten.

; printcap name = lpstat
#......................................................................................................................................#
# Je moet geen printsysteem opgeven tenzij het niet-standaard is
# Ondersteunde printsystemen:
# bsd, sysv, plp, lprng, aix, hpux, qnx
; printing = bsd
#......................................................................................................................................#
# Activeer dit als je ook een 'guest' account wilt.
# Die moet je ook toevoegen aan /etc/passwd, anders wordt de user
# "nobody" hiervoor gebruikt

; guest account = pcguest
#......................................................................................................................................#
# Dit is om het gebruik te forceren van een aparte logfile voor iedere
# client computer die een verbinding maakt.
log file = /var/log/samba/log.%m
#......................................................................................................................................#
# Een maximale grootte voor de logfiles, in Kb.
max log size = 50
#......................................................................................................................................#
# Lees security_level.txt voor meer info!
# Bepaalt het paswoord-beleid.
# User level security = elke gebruiker heeft zijn eigen paswoord (smbpasswd)
security = user
#......................................................................................................................................#
# Als security = server dan wordt een andere server gebruikt voor de
# authenticatie. Dan heb je deze optie nodig (geef het IP adres):
; password server = <NT-Server-Name>
#......................................................................................................................................#
# Als je wachtwoord-versleuteling wilt gebruiken. Lees zeker ENCRYPTION.TXT,
# Win95.txt en WinNT.txt uit de Samba documentatie.
# Gebruik deze optie enkel als je weet waar je mee bezig bent.
encrypt passwords = yes
#......................................................................................................................................#
# Met de volgende regel kan je de configuratie aanpassen voor elke
# client in het netwerk apart. De %m wordt daarbij vervangen door de netbios
# naam van de client.
; include = /usr/local/samba/lib/smb.conf.%m
#......................................................................................................................................#
# De documentatie en een populaire "tip" leert dat je met deze
# optie waarschijnlijk betere prestaties haalt. Proberen!
# Zie ook in speed.txt en de man pagina's voor meer details.
socket options = TCP_NODELAY
#......................................................................................................................................#
# Samba configuratie om meerdere netwerkkaarten te gebruiken.
# Als je meerdere netwerkkaarten hebt dan moet je ze hier opgeven.
# Lees de man pagina voor de details.
; interfaces = 192.168.8.2/24 192.168.12.2/24
#......................................................................................................................................#
# Browser Control Opties:
# zet local master op 'no' als je Samba wilt beletten om de master browser
# te worden van je netwerk.
local master = yes
#......................................................................................................................................#
# OS Level bepaalt de prioriteit van deze server
# bij het kiezen van de master browser.
# Meestal is de standaardwaarde bruikbaar.

; os level = 33
#......................................................................................................................................#
# Domain Master specificeert of Samba de Domain Master Browser is.
# Dit maakt het mogelijk om Samba ook als PDC te gebruiken en om machines
# in andere TCP/IP subnetten te 'zien'
# Niet gebruiken als je al een andere PDC gebruikt!
domain master = yes
#......................................................................................................................................#
# Preferred Master maakt dat Samba bij elke herstart
# een 'local browser election' zal forceren, en geeft het
# aldus een hogere kans om die verkiezing te winnen.
# Als er meer dan één server aanwezig is, zal
# de 'preferred master' de 'favoriet' worden van de clients die
# naar een server zoeken een lijst.
preferred master = yes
#......................................................................................................................................#
# Gebruik dit enkel indien je een NT/2000 server
# in je netwerk hebt als PDC.

; domain controller = <NT-Domain-Controller-SMBName>
#......................................................................................................................................#
# Zet dit aan als je SAMBA wilt gebruiken als "domain logon
# server" voor Windows 9x/Me clients.
domain logons = yes
#......................................................................................................................................#
# Als je "domain logons" aan hebt staan, moet je voor
# elke machine of voor elke gebruiker in het Windows netwerk
# een logon script maken.

# Voor een logon batch file voor elk workstation

; logon script = %m.bat

# Of voor elke gebruiker
; logon script = %U.bat
#......................................................................................................................................#
# Dit is waar de 'roving profiles' (voor Win95 en WinNT)
# moeten opgeslagen worden
# %L staat voor de NetBIOS naam van de server, %U voor de username

# Je moet onderstaande [Profiles] share uitcommenten

; logon path = \\%L\Profiles\%U
#......................................................................................................................................#
# Ondersteuning voor Windows Internet Name Service:
# geeft NMBD de opdracht om zijn WINS Server in te schakelen.
# Het WINS protocol converteert machinenamen naar IP addressen,
# het werkt net als DNS via TCP/IP.
; wins support = yes
#......................................................................................................................................#
# WINS Server - vertelt de NMBD componenten van Samba om zich als WINS client
# te gedragen. De SAMBA Server kan ofwel WINS server zijn ofwel client, maar niet
# beide tegelijk. Geef hier het adres van de WINS server.
; wins server = 192.168.8.1
#......................................................................................................................................#
# WINS Proxy - vertelt Samba of hij name resolution queries moet beantwoorden
# voor clients die geen WINS ondersteunen. Hiervoor moet er op zijn minst
# 1 WINS server aanwezig zijn in het netwerk. De standaardwaarde is 'no'.
; wins proxy = yes
#......................................................................................................................................#
# DNS Proxy - vertelt Samba of hij al dan niet de NetBIOS namen
# moet opzoeken via DNS (resolving).
# De standaardwaarde was 'yes' tot versie 1.9.17, daarna 'no'.
# dns proxy = yes
# dns proxy = no (name resolution zal dan gebeuren via het bestand lmhosts )
#......................................................................................................................................#
# Als er geen logon-schijf is opgegeven, wordt Z: automatisch gemount
logon drive = P:
#......................................................................................................................................#
# Bij elke login wordt dit script uitgevoerd: /etc/samba/netlogon/SAMBA.BAT
logon script = SAMBA.BAT

#====================== Share Definitions ========================#

# Persoonlijke directory van elke gebruiker
# Unit P:

[homes]
comment = Home Directories
browseable = no
writable = yes
readonly = no
force create mode = 0700
create mode = 0700
force directory mode = 0700
directory mode = 700

#------------------------------------------------------------------------------------------------------------#
# Directory voor tijdelijke bestanden
# Unit T:

[tmp]
comment = Tempora Files
path = /tmp
readonly = no
public = yes
writable = yes
force create mode = 0777
create mode = 0777
force directory mode = 0777
directory mode = 0777

#------------------------------------------------------------------------------------------------------------#
# De CD-ROM in de server
# Unit L:

[cdrom]
comment = CD-ROM
path = /mnt/cdrom
public = yes
writable = no

#------------------------------------------------------------------------------------------------------------#
# Group, komt overeen met /home/grp.groepnaam
# /home/user/group is een link naar /home/grp.groepnaam
# grp.groepnaam heeft permissies 770
# Unit G:

[group]
comment = Directory of Group
path = /home/%u/group
writable = yes
readonly = no
force create mode = 0770
create mode = 0770
force directory mode = 0770
directory mode = 0770

#------------------------------------------------------------------------------------------------------------#
# Dit onderdeel dient om installatieprogramma's en software op te slaan
# permissies van /net en /net/install : 755, i.e: root is de eigenaar
# Unit N:

[net]
comment = Directory Net
path = /net
writable = yes
readonly = no
force create mode = 0750
create mode = 0750
force directory mode = 0750
directory mode = 0750

#------------------------------------------------------------------------------------------------------------#
[netlogon]
comment = Logon Services in the Network
path = /etc/samba/netlogon
guest ok = yes
writable = no
locking = no
public = no
browseable = yes
share modes = no

#------------------------------------------------------------------------------------------------------------#

#============================================================#

Laatste opmerkingen

Het SAMBA pakket en andere Linux gereedschappen zijn onderhevig aan een constante evolutie, daardoor is het mogelijk dat enkele details die hier beschreven worden, later niet meer werken. In de geschiedenis van SAMBA zijn enkele parameter namen in de configuratiebestanden enigszins veranderd, dit om een beter structuur te verkrijgen.

Als je tijdens de configuratie foutmeldingen krijgt over onbekende parameters, dan zijn er twee eenvoudige manieren om het probleem op te lossen:

Referenties: Bibliografie en software

Copyright Opmerkingen

SAMBA is een product verdeeld wordt onder de GPL Licentie.
Linux is een geregistreerd handelsmerk van Linus Torvalds.
Solaris is een besturingssyteem en geregistreerd handelsmerk van Sun Microsystems.
MS Windows is een besturingssysteem en geregistreerd handelsmerk van Microsoft.
Het gebruik van SAMBA levert grote besparingen op het gebied van licentie kosten die afgedragen dienen te worden aan Microsoft.