samba
DESCRIPTION
SAMBA. Les grandes Jorasses. SAMBA. La première version stable de Samba, créée par Andrew Tridgell, date de 1994 (Samba 1.7). La version 2 apparaît en 1999, la version 3 en 2003. - PowerPoint PPT PresentationTRANSCRIPT
Yonel GRUSSON 1
SAMBA
Les grandes Jorasses
Yonel GRUSSON 2
SAMBALa première version stable de Samba, créée
par Andrew Tridgell, date de 1994 (Samba 1.7). La version 2 apparaît en 1999, la version 3 en 2003.
Samba est un logiciel serveur permettant à des stations Unix (Linux), Windows, OS2 et Mac de se connecter sur un serveur Unix (Linux) pour accéder à différents services.
Logo officiel de Samba
Documentation
• Le site officiel de samba : www.samba.org
• De nombreux sites consacrés à Linux, par exemple : www.linux-france.org
• Toute la documentation fournie avec les distributions de Linux qui contiennent Samba
Yonel GRUSSON 3
SAMBA
Yonel GRUSSON 4
SAMBA
Samba, installation et mise en œuvre
par EcksteinEdité par O'Reilly
• Petite biographie :
Samba, précis et concispar Jay Ts, Robert Eckstein David Collier-BrownEdité par O'Reilly
Samba : Installation, mise en œuvre et administration
par Michel Dutreix Edité par Eni
Un serveur Samba offre les services suivants :• partage de fichiers et de répertoires• partage d'imprimantes• exécution de scripts de connexion• serveur Dfs (voir cours Windows)• exploration de réseau pour le client• d'authentification des clients se
connectant sur un domaine Windows• serveur de noms WinsYonel GRUSSON 5
SAMBA
Yonel GRUSSON 6
SAMBACes services sont rendus en respectant :
• les comptes d'utilisateur (authentification)
• les permissions d'accès
SAMBA s'appuie sur le protocole SMB (Server Message Block).
SMB s'appelle maintenant CIFS (Common
Internet File System – RFC 1002-1002) Note : SAMBA = SaMBa
Yonel GRUSSON 7
SAMBA
SAMBA s'appuie sur le protocole SMB (Server Message Block)
Rappel sur les réseaux Microsoft :
• Les workgroups (ou groupe de travail)
• Les domaines avec un PDC (Primary Domain
Controller) qui gère la base SAM (Security Account
Manager) et les BDC (Backup Domain Controller) qui en détiennent une copie.
• L'Active Directory qui s'appuie sur LDAP et DNS
Yonel GRUSSON 8
SAMBA
Yonel GRUSSON 9
SAMBAUn serveur SAMBA peut être :
• membre d'un workgroup
• serveur principal (PDC) d'un domaine
• serveur secondaire (BDC) d'un domaine si le PDC est un serveur Samba (impossible si le
PDC est une serveur Microsoft)
• serveur membre d'un domaine Active Directory (avec Samba 3)
Yonel GRUSSON 10
SAMBA
UTILISATION ET LANCEMENTDu côté client Windows
TCP/IP doit être installé etNETBIOS (NetBT ou NBT) doit être
activé (à vérifier dans les propriétés réseau)
(NETBEUI est inutile)Note 1 : SMBCLIENT est un client SMB pour système UnixNote 2 : Ce cours est basé sur la distribution Suse Enterprise
Server 10
Yonel GRUSSON 11
SAMBA
Yonel GRUSSON 12
SAMBA
Du côté serveur
Concrètement Samba s'appuie sur 2 "démons" (services)
• smbd le serveur proprement dit
• nmbd service de résolution des
noms NetBios
Il existe également le service …..
• winbindd Service permettant
l'intégration d'un serveur Samba dans un domaine
possédant déjà un PDC
Windows (récupération des comptes)
De nombreuses commandes et utilitaires sont associés à Samba, en voici quelques unes :
Yonel GRUSSON 13
SAMBA
• smbstatus Pour obtenir l'état des connexions
• smbpasswd Gestion des mots de passe
• testparm Vérification de la configuration
• pbedit (version 3) Gestion des comptes dans une base de
données SAM
• net (version 3) Semblable à la commande Windows
• smbcals Gestion des ACL (Access Control List)
• smbspool Gestion des imprimantes
• testprns Vérification des imprimantes
• smbtar Utilitaire de sauvegardeYonel GRUSSON 14
SAMBA
• nmlookup Interrogation du serveur de noms
Netbios• swat Utilitaire Web de configuration• smbclient Client Unix pour utiliser Samba• smbgroupedit (version 3) Pour faire la correspondance
entre les groupes Unix et windows• smbcontrol pour envoyer des commandes à smb
et nmb en cours d'exécution• findsmb Obtenir des informations sur smb
Chaque utilitaire possède de nombreuses optionsYonel GRUSSON 15
SAMBA
Yonel GRUSSON 16
SAMBA
Pour la distribution Suse Enterprise Server 10
• Les démons sont dans /usr/sbin
• Utilisation des scripts : [/bin/sh] /etc/rc.d/smb et /etc/rc.d/nmb
– Lancement des serveurs : nmb start puis smb start (ou /usr/sbin/rcnmb start puis rcsmb start)
– Arrêt : idem avec stop (smb stop)
– Vérification : idem avec status (smb status)
Lancement au démarrage du système :
• Par l'interface graphique
• En ligne de commande
la distribution Suse Enterprise Server 10 utilise le "super-démon" xinetd pour gérer les services réseau (super-démon dans la mesure ou il gère d'autres
démons).
La commande xinetd utilise soit le seul fichier xinetd.conf soit ce fichier et le répertoire xinetd.d (cas le plus général)
Yonel GRUSSON 17
SAMBA
Un seul fichier de configuration Un fichier de configuration par service
/etc/xinetd.conf defaults { ... } service nom-service1 { ... } service nom-service2 { ... }
/etc/xinetd.conf defaults { ... } includedir /etc/xinetd.d/etc/xinetd.d/nom-service1 service nom-service1 { ... }/etc/xinetd.d/nom-service2 service nom-service2 { ... }
Yonel GRUSSON 18
SAMBA
Fichier /etc/xinet.conf# xinetd.conf
defaults
{
log_type = FILE /var/log/xinetd.log
log_on_success = HOST EXIT DURATION
log_on_failure = HOST ATTEMPT
# only_from = localhost
instances = 30
cps = 50 10
interface = 127.0.0.1
}
includedir /etc/xinetd.d
Yonel GRUSSON 19
SAMBA
Les services Samba dans /etc/xinetd.d
Note : Service swat voir plus loin
Yonel GRUSSON 20
SAMBA
Fichier netbios-ssn Fichier netbios-ns Fichier swat
service netbios-ssn{ socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/smbd disable = no}
service netbios-ns{ socket_type = dgram protocol = udp wait = no user = root server = /usr/sbin/nmbd disable = no}
service swat{ port = 901 socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/swat only_from = 127.0.0.1 log_on_failure += USERID disable = no}
Il faut vérifier que les services sont déclarer dans le fichier /etc/services
netbios-ns 137/tcp # NETBIOS Name Service
netbios-ns 137/udp # NETBIOS Name Service
netbios-ssn 139/tcp # NETBIOS Session Service
netbios-ssn 139/udp # NETBIOS Session Service
swat 901/tcp
Yonel GRUSSON 21
SAMBA
Yonel GRUSSON 22
SAMBA
CONFIGURATION DE SAMBA
Les fichiers de configuration de SAMBA se situent en général dans le répertoire :
/etc/sambaCe répertoire contient essentiellement les
fichiers suivants (noms par défaut) :smb.conf (pour la configuration de Samba)
smbpasswd (pour les mots de passe)
Yonel GRUSSON 23
SAMBA
Le fichier smb.conf contiendra toutes les informations pour le fonctionnement du serveur :• Les informations générales• Répertoire personnel des utilisateurs• Répertoires partagés collectivement• Les imprimantes partagées• Les droits d'accès.• etc.
Yonel GRUSSON 24
SAMBA
Après une modification du fichier smb.conf
• Détecter les erreurs de syntaxe et tester
la cohérence du fichier avec l'utilitaire :
testparm
• Arrêter et relancer le serveur :
smb stop puis smb start
ou smb restart
Le fichier smb.conf se décompose en sections dont les principales sont :
• [global]
Contient la configuration générale du serveur• [home]
Description des répertoires personnels• [nom_rep_partagé]
Description d'un répertoire collectif• [netlogon]
Pour les scripts de connexionYonel GRUSSON 25
SAMBA
Le fichier smb.conf se décompose en section dont les principales sont :
• [profiles]
Pour les profils utilisateur• [nom_imprimante]
Pour le partage d'une imprimante• [printers]
Description des imprimantes partagées par le système
Yonel GRUSSON 26
SAMBA
Yonel GRUSSON 27
SAMBA
UTILSATEURS DU SERVEUR SAMBA
Un utilisateur de Samba est avant tout un utilisateur Linux, il devra donc être déclaré sous Linux puis sera récupéré par Samba qui doit faire la correspondance entre les systèmes Linux et Windows
Les utilisateurs sont gérés classiquement avec le fichier : /etc/samba/smbpasswd
(d'autres méthodes sont possibles : Annuaire, tdb (trivial data base), NIS)
Yonel GRUSSON 28
SAMBA
• Une fois l'utilisateur Linux créé :
useradd nom_user –m
• Ajouter cet utilisateur dans le fichier
smbpasswd en exécutant la commande :
smbpasswd -a nom_user mot_de_passe
-d pour désactiver ; -e pour activer
(voir les autres options dans l'aide)
Yonel GRUSSON 29
SAMBA
• Exemple de fichier smbpasswd :# This file is the authentication source for Samba if 'passdb backend' is set
# to 'smbpasswd' and 'encrypt passwords' is 'Yes' in the [global] section of # /etc/samba/smb.conf
# See section 'passdb backend' and 'encrypt passwords' in the manual page of
# smb.conf for more information.
roger:2002:C21EF1ABF1B94EC3AAD3B435B51404EE:4ACD250DD63564CBDA6D4989E7DA259C:[U ]:LCT-477A788C:
keith:2004:C21EF1ABF1B94EC3AAD3B435B51404EE:4ACD250DD63564CBDA6D4989E7DA259C:[U ]:LCT-477A7B17:
pete:2003:C21EF1ABF1B94EC3AAD3B435B51404EE:4ACD250DD63564CBDA6D4989E7DA259C:[U ]:LCT-477A7B24:
john:2005:C21EF1ABF1B94EC3AAD3B435B51404EE:4ACD250DD63564CBDA6D4989E7DA259C:[DU ]:LCT-477A7B4A:
• Structure d'une ligne de ce fichier :nom_user : uid (de /etc/passwd) : mot de passe crypté (95/98/Me) : mot de passe crypté (NT/2000/XP) : flags : date de la dernière modification du mot de passe :
Flags (11 caractères) : U utilisateur ; D utilisateur désactivé ; N utilisateur sans mot de passe ; W compte d'ordinateur
Yonel GRUSSON 30
SAMBAConfiguration du serveur Samba comme PDC d'un domaine :[global]
domain master = yes
Ce serveur est un PDC
workgroup = pinball
Nom du domaine
netbios name = toundra
Nom netbios du serveur (par défaut le nom de la machine)
encrypt passwords = yes
Les mots de passe sont cryptés (obligatoire dans ce contexte - valeur par défaut)
passdb backend = smbpasswd
La gestion des utilisateurs se fait à l'aide du fichier /etc/samba/smbpasswd (valeur par défaut)
security = user
La sécurité se situe au niveau de l'utilisateur (obligatoire dans ce contexte). Les utilisateurs devront
fournir un login et un mot de passe à la connexion (autres valeurs : share, server, domain, ads)
domain logons = yes
Force Samba à offrir des ouvertures de session sur ce domaine (obligatoire dans ce contexte).
Yonel GRUSSON 31
SAMBAConfiguration du serveur Samba comme PDC d'un domaine :[global]
local master = yes
Autorise Samba à participer aux élections de l'explorateur de réseaux
preferred master = yes
Ce serveur est l'explorateur de réseau préféré. Il provoque une élection d'explorateur en
démarrant
os level = 255
Définit le niveau de candidature de ce serveur lors d'une élection d'un maître d'exploration (valeur
par défaut 20). Attention s'il existe plusieurs serveurs sur le réseau.
server string = Samba %v sur %L
Commentaire pour décrire ce serveur
time server = yes
Fournit au client une synchronisation horaire SMB
Yonel GRUSSON 32
SAMBAConfiguration du serveur Samba comme PDC d'un domaine :[global]
host allow = 172.16. EXCEPT 172.16.42.15
Permet d'autoriser certains réseau, ici le réseau 172.16.0.0 (attention au point final) – Par défaut le
réseau auquel appartient le serveur. La clause EXCEPT permet d'écarter des machines de cette
autorisation. Il existe également sur le même schéma "host deny = …"
log level = 1
Niveau de détail des messages dans les fichiers log (valeur par défaut 1)
log file = /var/log/samba/log.%m
Emplacement et nom du fichier trace
max log file = 4000
Taille du fichier log en kilo-octets (valeur par défaut : 5000)
Notes : Il existe d'autres options en fonction du rôle joué par le serveur (voir documentation).
Des options sont obligatoires et d'autres facultatives ; ces dernières sont calculées en fonction des options obligatoires.
Yonel GRUSSON 33
SAMBA
Joindre un domaine géré par un PDC SambaComme avec un serveur Windows, pour que les
utilisateurs puissent se connecter sur le domaine*, il faut créer un compte pour la machine sur ce domaine.
Opération préliminaire. L'administrateur Linux (root) doit être administrateur de Samba :
smbpasswd –a root
* Cette opération ne concerne que les systèmes NT/2000/XP/Vista
Yonel GRUSSON 34
SAMBACréation manuelle du compte d'ordinateur
(comme pour l'utilisateur ce compte doit apparaître au niveau du système)
useradd A28-10$ –g nogroup –c "Compte machine" –s /bin/false(Le symbole $ pour distinguer ce type de compte)
smbpasswd –a –m A28-10$(-m pour indiquer qu'il s'agit d'un compte d'ordinateur)
Création automatiqueMettre dans la section [global]add machine script = /usr/sbin/useradd %m\$ –g nogroup
–c "Compte machine" –s /bin/false
Yonel GRUSSON 35
SAMBA
Résultats :Dans le fichier /etc/passwd (extrait)root:x:0:0:root:/root:/bin/bash
roger:x:2002:100::/home/roger:/bin/bash
pete:x:2003:100::/home/pete:/bin/bash
keith:x:2004:100::/home/keith:/bin/bash
john:x:2005:100::/home/john:/bin/bash
A28-10$:x:2006:65534:Compte machine:/home/A28-10$:/bin/false
Dans le fichier /etc/samba/smbpasswdroger:2002:C21EF1ABF1B94EC3AAD3B435B51404EE:4ACD250DD63564CBDA6D4989E7DA259C:[U ]:LCT-477A788C:
keith:2004:C21EF1ABF1B94EC3AAD3B435B51404EE:4ACD250DD63564CBDA6D4989E7DA259C:[U ]:LCT-477A7B17:
pete:2003:C21EF1ABF1B94EC3AAD3B435B51404EE:4ACD250DD63564CBDA6D4989E7DA259C:[U ]:LCT-477A7B24:
john:2005:C21EF1ABF1B94EC3AAD3B435B51404EE:4ACD250DD63564CBDA6D4989E7DA259C:[DU ]:LCT-477A7B4A:
root:0:9D3BAFFBC37BE6B8AAD3B435B51404EE:996D2A2C29AA30DA496BF533E319C106:[U ]:LCT-477CDAD1:
A28-10$:2006:XXXXXXXXXXXXXXXXXXXXXXXXXXX:C53B83F84A6893C8E141D0784394FB89:[W ]:LCT-477D2364:
Yonel GRUSSON 36
SAMBAJoindre le domaine depuis un client XP :
Yonel GRUSSON 37
SAMBA
Résultat dans l'explorateur :
Yonel GRUSSON 38
SAMBAConfiguration de smb.conf pour des répertoires personnelsDans cet exemple, les répertoires personnels Samba sont les
répertoires personnels Linux créés lors de la création de l'utilisateur (useradd … -m). Donc ici pas de problème de droit.
[glogal]logon drive = U:
Lettre affectée au répertoire personnel[homes]
comment = Répertoire personnel de %uCommentaire (%u = Nom de l'utilisateur)
browseable = noN'apparaît pas dans l'explorateur
read only = noN'est pas en lecture seule
Yonel GRUSSON 39
SAMBAConfiguration de smb.conf pour des répertoires personnels[homes]
writeable = yes
Autorise l'écriture dans le partage (idem : writable et write ok)
Inverse de "read only"
guest ok = no
Accès public interdit
create mask = 0700
Définition du masque pour la création des fichiers
directory mask = 0700
Définition du masque pour la création des répertoires
inherit acls = yes
Le fichier ou le répertoire créé hérite des droits du père.
Yonel GRUSSON 40
SAMBAConfiguration de smb.conf pour des scripts de connexion[global]
logon script = connect.vbsNom du script situé dans le path figurant dans le partage [netlogon]Il s'agit ici d'un script collectif. Il est possible de personnaliser un script pour chaque utilisateur avec "logon script = %u.vbs" ou selonl'appartenance au groupe primaire avec "logon script = %g.vbs"
[netlogon]path = /repsamba/connexion
Répertoire où sont situés les scripts. Les utilisateurs Samba doiventun droit en lecture sur ce répertoire.
writeable = noEcriture impossible
browseable = noN'apparaît pas dans l'explorateur
Yonel GRUSSON 41
SAMBAApplication avec le fichier "connect.vbs :
On Error Resume Nextset WshNet=CreateObject("Wscript.NetWork")WshNet.RemoveNetWorkDrive "S:"WshNet.MapNetworkDrive "S:", "\\Toundra\Echange",falseSet WshNet=Nothing
Yonel GRUSSON 42
SAMBA
Configuration de smb.conf pour des partages collectifs
Présentation de l'exemple :
• Les utilisateursroger:x:2002:2001::/home/roger:/bin/bash
pete:x:2003:2001::/home/pete:/bin/bash
keith:x:2004:2000::/home/keith:/bin/bash
john:x:2005:2000::/home/john:/bin/bash
• Les groupesusersamba:!:2000:roger,pete,john,keith
leaders:!:2001:roger,pete
members:!:20022:keith,john
Yonel GRUSSON 43
SAMBAConfiguration de smb.conf pour des partages collectifs
• Structure visée
/repsamba
connexion Propriétaire "root" ; en lecture pour tous
echange Propriétaire "root" ; en lecture/écriture
pour le groupe "leaders"
doc En lecture/écriture pour "roger"
(propriétaire). En lecture seule pour le
groupe "members" et "pete"
Yonel GRUSSON 44
SAMBA
Configuration de smb.conf pour des partages collectifs
• Les droits Linuxdrwxr-xr-x 5 root root 128 Jan 4 17:03 .drwxr-xr-x 23 root root 568 Jan 6 2008 ..drwxr-xr-x 2 root root 112 Jan 6 10:52 connexiondrwxr-x--- 2 roger usersamba 48 Jan 6 11:12 docdrwxrwx--- 3 root leaders 152 Jan 3 14:12 echange
• Fichier de smb.conf[echange] path = /repsamba/echange comment = Répertoire pour le groupe "leaders" browseable = yes writeable = yes valid users = @leaders
Yonel GRUSSON 45
SAMBAConfiguration de smb.conf pour des partages collectifs[doc]
path = /repsamba/doc
comment = Répertoire en consultation
browseable = yes
writeable = no
valid users = @usersamba
[admindoc]
path = /repsamba/doc
comment = administration du partage "doc"
browseable = no
writeable = yes
valid users = roger
Droits Samba/Linux/Windows
• Le fichier "testfic.txt" sous Linux
- rwx r- - r - - 1 roger leaders 4 Jan 6 11:30 testfic.txt
• Sa vision sous Windows
Yonel GRUSSON 46
SAMBA
Droits Samba/Linux/Windows
L'accès à un partage par un utilisateur :
• Doit d'abord satisfaire aux exigences de Samba ("writeable = no" ou "… = yes", "valid users = …")
• Puis dans un second temps être autorisé par les permissions du système Unix (ou Linux)
Yonel GRUSSON 47
SAMBA
L'outil swat
Un outil graphique permet de gérer un serveur Samba à partir d'un navigateur sous le port 901.
Yonel GRUSSON 48
SAMBA