• Aucun résultat trouvé

SAMBA. partager des fichiers sous Linux par un protocole compatible Microsoft

N/A
N/A
Protected

Academic year: 2022

Partager "SAMBA. partager des fichiers sous Linux par un protocole compatible Microsoft"

Copied!
23
0
0

Texte intégral

(1)

SAMBA

Objectif:

partager des fichiers sous Linux par un protocole compatible Microsoft

Contenu:

Configuration et administration d'un serveur SAMBA sur un serveur Unix avec des clients Windows/Unix:

partage des systèmes de fichiers

partage d'imprimante

contrôleur de domaine Windows 2000/NT

serveur WINS (Windows Internet Name Service)

Configuration d'un client SAMBA et montage distant

Durée:

½ journée

(2)

protocole SMB

SMB (Server Message Block) est un protocole de communication

implémenté par IBM et modifié par Microsoft (qui l'a renommé en CIFS):

permet de partager diverses ressources (fichiers, imprimantes, etc.) entre ordinateurs équipés de Windows.

SAMBA est l'implémentation libre de ce protocole:

smbd est un daemon qui prend en charge le partage de fichiers, d'imprimante, et l'authentification des clients SMB

nmbd est un daemon qui supporte les services NetBios et WINS

SAMBA peut également agir comme Contrôleur Principal de Domaine

Le développement de la version 4 implémente un serveur Active Directory

(3)

NetBIOS

Le protocole (1984 par IBM) est une simple API qui permet aux

applications de se connecter et de partager des données entre elles de manière rudimentaire.

Lorsqu'un ordinateur se connecte, il effectue une requête d'enregistrement de son nom NetBIOS, soit auprès d'un NetBIOS Name Server, soit par broadcast auprès de chaque ordinateur du réseau

Il utilise les ports :

135: Service de localisation pour les appels de procédure à distance

udp 137: netbios-ns - NETBIOS Name Service

udp 138: netbios-dgm - NETBIOS Datagram Service

tcp 139: netbios-ssn - NETBIOS Session Service

445: versions récentes de Windows : 2000, XP, Vista

(4)

NetBIOS (suite)

NetBIOS indique aussi le type de service fourni en ajoutant un 16ème octet à la fin du nom de machine (maxi 15 caractères)

00: workstation service name

01: MSBROWSE : machine collectant les infos de ses voisines

03: messenger service name

1B: domain master browser name

1C: domain group name (contrôleur de domaine)

1D: network master browser name (ou serveur WINS)

1E: normal group name (workgroup)

20: server service name (serveur de fichiers)

BE: network monitor agent

BF: network monitor utility

nmblookup -S « nom de machine »

(5)

Exploration du domaine

l'exploration se fait d'abord par diffusion (ne passe pas les routeurs):

nmblookup -B 192.168.0.255 « * », ou findsmb (ne trouve pas les postes XP)

une machine est élue « Maître Explorateur » (master browser) pour tenir à jour la liste des machines sur le groupe de travail (code 0x1D)

toutes les 12 minutes, les ordinateurs annoncent leur présence au nom NetBIOS <domaine>[1D] (cf note1), c'est à dire au maître explorateur

l'exploration du voisinage réseau par un client se fait par découverte des maîtres explorateurs pour ensuite les interroger directement

le maître explorateur du Domaine fusionne les listes d'exploration de

chaque sous-réseau en une seule grande liste (Contrôleur de Domaine

ou serveur WINS)

(6)

Élection du maître explorateur

paramètres jouant sur les élections de maître explorateur ou permettant à un serveur Samba de servir des listes d'exploration

announce version = 4.2 par défaut. Win2K s'annonce à 5.0, on peut donc avoir besoin de le rendre supérieur.

local master = Yes par défaut. permet de rendre Samba éligible.

os level = 33 par défaut. WinNT Server vaut 32, WinNT Station vaut 16, Win9x et WfWg valent 1

prefered master = No par défaut. La positionner à Yes provoquera une élection à chaque démarrage du démon smbd.

domain master = No par défaut. À positionner À Yes UNIQUEMENT si le serveur Samba est Contrôleur Principal de Domaine, et qu'il doit donc aussi être le maître explorateur du domaine. À éviter absolument s'il

existe déjà un autre CPD sur le domaine.

browse list = Yes par défaut. Permet à Samba de distribuer des listes d'exploration.

(7)

serveur WINS

Le serveur WINS est un autre moyen, centralisé, de résoudre les noms

# Windows Internet Name Serving Support Section:

wins support = yes : indique à nmbd de devenir serveur WINS

wins server = w.x.y.z : indique à nmbd de devenir un client WINS du serveur spécifié:

ATTENTION: ne peut être les 2 à la fois !

dns proxy = no : empêche nmbd de résoudre les noms NetBIOS par DNS

name resolve order = lmhosts host wins bcast : liste des services de noms à utiliser dans l'ordre pour résoudre les noms en adresse IP

On peut diffuser l'adresse sur serveur WINS par dhcp:

option netbios-name-servers w.x.y.z; dans dhcpd.conf

/etc/samba/lmhosts

est une alternative statique au serveur WINS

(8)

Lenteurs du voisinage réseau

une machine allumée n'apparaît pas immédiatement dans le voisinage réseau, ou une machine qu'on éteint ne disparaît pas immédiatement non plus. Il y a plusieurs explications:

une élection de maître explorateur a peut-être eu lieu, et toutes les listes d'explorations sont à refaire.

les ordinateurs viennent peut-être tous d'envoyer leur nom NetBIOS au maître explorateur, il va donc s'écouler 12 minutes avant qu'il ne reçoive la mise à jour comportant l'allumage de la machine.

avant de considérer un ordinateur comme éteint et avant de le supprimer de la liste d'exploration, le maître explorateur attend 3 mises jours de cette liste (elles ont lieu en moyenne toutes les 12 minutes).

éteindre proprement l'ordinateur n'accélère pas les choses. Il n'y a que dans le cas où la résolution se fait par WINS que l'ordinateur notifie son serveur WINS qu'il va se déconnecter

(9)

Installation

samba: LanManager-like file and printer server for Unix.

samba-common: Samba common files used by both the server and the client.

smbclient: LanManager-like simple client for Unix.

swat: Samba Web Administration Tool

samba-doc: Samba documentation.

smbfs: Mount and umount commands for the smbfs

libpam-smbpass: pluggable authentication module for SMB password database

libsmbclient: Shared library that allows applications to talk to SMB servers

libsmbclient-dev: libsmbclient shared libraries

winbind: Service to resolve user and group information from WinNT servers

python2.4-samba: Python bindings that allow access to various aspects of Samba

(10)

Démarrage

Pour démarrer Samba, il suffit de lancer smbd et nmbd

en utilisant init et un script de démarrage des deux daemons

en utilisant xinetd:

/etc/services contient les services netbios

/etc/xinetd.d gère les 2 démons

démarrer xinetd

permet de démarrer Samba par xinetd uniquement lorsqu'un client tentera de se connecter au serveur

Il ne faut utiliser xinetd que pour les serveurs ayant une faible charge

(11)

Configuration

/etc/samba/smb.conf contient la configuration de Samba

par défaut Samba vérifie son fichier de configuration toutes les 60 secondes et active immédiatement les changements

divisé en différentes sections, chacune contenant des paramètres:

La section [global] définit la configuration de base du serveur

La section [homes] définit les répertoires partagés des utilisateurs

La section [printers] permet de partager les imprimantes

Les autres sections définissent les autres répertoires partagés

syntaxe:

Les commentaires commencent par # ou ;

[nom_de_section]

parametre = valeur

parametre2 = valeur2

(12)

section [global]

Exemple:

netbios name = kiwi

workgroup = LABO-UNIX

server string = jewom-samba-server log file = /var/log/samba/%m.log lock directory = /var/lock/samba

autres paramètres principaux:

hosts allow : classes d'IP autorisées à se connecter

encrypt passwords = true

guest account = nobody

invalid users = root

passdb backend = {smbpasswd | tdbsam | ldapsam}[:path]

(13)

la directive security

détermine le mode de connexion des clients

security = share, user, domain, server, ads

share: tous les utilisateurs ont les mêmes droits, un mot de passe est éventuellement associé à chaque ressource

user (défaut): à chaque ressource est associée une ACL qui définit les permissions de chaque utilisateur et groupe à la ressource

domain: indique que l'authentification est réalisée par un contrôleur de domaine (autre). NE REND PAS LE SERVEUR SAMBA

CONTRÔLEUR DE DOMAINE.

server: indique que l'authentification est réalisée par un autre serveur Samba ou NT

ads: samba se comporte comme un serveur membre d'une forêt ADS.

Kerberos doit être installé et samba doit être joint à la forêt ADS. NE

REND PAS LE SERVEUR SAMBA SERVEUR ACTIVE DIRECTORY

(14)

partages de répertoires

Partage de répertoires utilisateurs:

[homes]

comment = Home Directories browseable = no

read only = yes guest ok = no

Chaque utilisateur ayant un compte sur la machine aura donc accès à son répertoire.

Partages d'autres répertoires:

[public]

comment = Public Stuff path = /home/samba public = yes

writable = yes

(15)

section [printers]

permet de partager les imprimantes:

[printers]

comment = All Printers path = /var/spool/samba browseable = no

guest ok = no writable = no printable = yes

il faut ajouter quelques paramètres dans la section [global] :

load printers = yes permet de charger la liste des imprimantes pour ne pas avoir à les définir manuellement

printcap name = cups indique l'emplacement de la liste des imprimantes

printing = CUPS définit le système d'impression utilisé

(16)

Gestion des Utilisateurs

Les utilisateurs doivent avoir un compte unix sur le serveur

Samba gère sa propre liste de mots de passe chiffrés

Pour ajouter un utilisateur Samba, il faut donc le recréer

La commande smbpasswd:

lancée par root: créer des utilisateurs

lancée par un utilisateur: change son mot de passe

La commande mksmbpasswd transforme les entrées passwd en entrées smbpasswd:

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

(17)

Permissions des Utilisateurs et Groupes

admin users: users who will be granted administrative privileges

force group: Specifies a UNIX group name that will be assigned as the default primary group

force user: Specifies a UNIX username that will be assigned as the default user

guest ok: if set no password is required. Privileges of the guest account.

invalid users: users not be allowed to connect

read list: users that are given read-only access

valid users: users that should be allowed to login to this service.

write list: users that are given read-write access

on peut spécifier des groupes unix en les préfixant de @

(18)

Définition du Contrôleur de Domaine

modifications de la section [global] du fichier smb.conf :

domain logons = yes # active le service PDC security = user

domain master = yes local master = yes

preferred master = yes os level = 65

time server = yes

script de connexion

logon script = logon.bat

cas win 95/98/Me

logon home = \\%L\profiles\%U logon drive = H:

cas NT/2000/XP

logon path = \\%L\profiles\%U

(19)

partages du Contrôleur de Domaine

nouveaux partages à placer après la section [global] :

[netlogon]

path = /var/lib/samba/netlogon writable = no

browsable = no write list = admin

[profiles]

path = /var/lib/samba/profiles browsable = no

writable = yes

create mask = 0600 directory mask = 0700

[homes]

read only = no browsable = no guest ok = no

map archive = yes

(20)

permissions

création d'un compte d'administration pour joindre les machines Windows au domaine:

smbpasswd -a root

le répertoire netlogon peut appartenir à root:root en lecture seule pour tout le monde

le répertoire profiles doit être en lecture-écriture aux utilisateurs samba:

il peut donc appartenir à root:smb et 775 où les utilsateurs sont membres du groupe smb

exemple de logon.bat:

REM pour monter le home de user sur H:

NET USE H: \\%L\homes

REM exécuter des clés de registre regedit /s \\%L\netlogon\aqs.reg

(21)

joindre les machines au domaine

Pour participer à un domaine, un système WinNT/2000/XP doit être membre de ce domaine

L'appartenance d'une machine à un domaine s'implémente en utilisant des comptes machine:

semblables à des comptes utilisateurs

permettent au contrôleur de domaine de reconnaître les machines pouvant s'authentifier sur le domaine

useradd -g machines -c Machine -s /dev/false -d /dev/null 'nom_machine$'

smbpasswd -m -a 'nom_machine$'

section [global] de /etc/smb.conf

add machine script = /usr/sbin/useradd -g machines -c Machine -d /dev/null -s /bin/false %u

(22)

modification de la base de registres

pour un client Windows 98:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Vx D\VNETSUP]

"EnablePlainTextPassword" = dword:00000001

pour un client WindowsNT4:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

Rdr\Parameters]

"EnablePlainTextPassword" = dword:00000001

pour un client Windows XP PRO (SP1):

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Netl ogon\Parameters]

"requiresignorseal"= dword:00000000

(23)

Commandes

winbindd, démon pour autoriser des utilisateurs dont le compte est stocké dans une base Windows NT/2000

findsmb, cherche toutes les ressources Samba d'un réseau

net, administre à distance des serveurs Samba.

nmblookup, trouver l'adresse IP d'une machine dont on connaît le nom NetBios

pdbedit, gére les comptes d'une base de donnée SAM

smbcacls, définit ou scrute les ACLs sur un système de fichier windows NT

smbclient, est client FTP-like pour partages Samba:

smbclient -L nom-de-machine

smbclient //nom-de-machine/ressource

smbgroupedit, mappe des groupes NT avec des groupes UNIX

smbmount/smbumount, monte / démonte des partages Samba

smbpasswd, change les mots de passe des utilisateurs de Samba

smbsh, fonctionne comme un shell dans un système de fichier distant.

smbspool, envoie des travaux d'impression à une imprimante partagée

testparm, vérifie la syntaxe du fichier de configuration de Samba

Références

Documents relatifs

Les paquets supplémentaires suivants seront installés : cifs-utils. Les NOUVEAUX paquets suivants seront installés :

samba programme de partage de ressources Linux pour Windows contrôleur de domaine contrôle d’un domaine.

Nous pouvons créer un fichier test qui comprend les infos de php...

• La compatibilité doit être respectée ( Sage, Antivirus, Suite Office ) - Installation d’un serveur de fichiers sous un système d’exploitation Linux. • La mise en

Si samba est lancé avec ce fichier de configuration, les postes windows du réseau local pourront voir dans le voisinage réseau qu’un ordinateur nommé (le nom de votre machine

[Partage de fichier sur Cerise] =&gt; configuration du dossier de partage path = /home/share =&gt; chemin du dossier de partage dans le dossier d’un utilisateur read only

tout d'abord, le réglage du comportement de Samba, ensuite, la gestion des acteurs du domaine (utilisateurs, groupes, machines) si Samba est voué à contrôler un

« Huit violoncellistes classiques (de très haut vol, précisons-le) pos- sèdent assez de ressources pour emplir à eux seuls tout le spectre sonore ave d'infinies nuances […] Car il