Samba ou comment remplacer les serveurs NT
2
Plan
• Introduction
3
IntroductionQu’est ce que Samba
• Programmes permettant à une machine unix de fournir des services à des postes Wintel
• GPL
• Partage de fichiers et d’imprimantes
• Implémente SMB (CIFS) au-dessus de NetBIOS sur TCP/IP
• Joue le rôle de serveur WINs et PDC (contrôleur de domaine)
4
IntroductionSamba vs NFS
• Protocole avec état ( NFS ) = moins robuste• beaucoup plus d’instructions = plus de
complexité = plus de rapide• Plus de fonctionnalité
SMB= NFS+lpd+Login/Password
5
IntroductionPhilosophie
• Samba = Windows Networking "the unix way"
• Totale maîtrise des options du protocole– Options et fichiers de config. très complexes– Pas besoin de maîtriser tout d'un coup
• Il vaut mieux connaître le principe de fonctionnement
6
Architecture7
5
6
4
3
1
2
Application
Transport
Session
Présentation
Network
liaison
Physique
Application
TransportTCP/UDP
InternetIP
Physique
Application
SMB
N1N2
N3
SytémeOS
OSI TCP SMB
N1 = NetBIOS sur IPXN2 = NetBEUIN3 = NetBIOS sur TCP/IP
7
NetBIOS• Service de nommage
– espace plat– 15 caractères + type– master browser– WINS
• Service session
• Service datagramme
8
Workgroup vs Domain
• Mode workgroup: peer to peer– chaque machine a une base de comptes– elle fait elle même la validation
• Domain– validation par une base centrale PDC
• il y a toujours la notion peer to peer
9
Workgroup
Client
serveur 1partage de fichiers
serveur 2partage d'imprimante
Laser printer
Accésaux
fichier?
OUI OUI Accésà
l'imprimante
Data
10
Domain
Client
serveur 1partage de fichiers
Contrôleur de domain
Accésaux
fichier?
OUI
Data
Client a-t-il accésaux fichiers ?
OUI
11
Acteurs
fairuz mafatepixies
Master Browser
12
ActeursWins
fairuz mafatepixies
fairuz mafatepixies
fairuz mafatepixies
Router
Router
Router
DomainMaster Browser
Master Browser
Master Browser
Sous-réseau 1
Sous-réseau 2
Sous-réseau 3
13
Samba• nmbd service de nommage + 'browser'• smbd service de partage de fichiers• smbpasswd ajout d'utilisateur• addtosmbpass import de /etc/passwd• nmblookup cherche des noms NetBIOS• smbprint imprimer sur des imprimantes
Wintel• smbclient client ligne de command SMB• smbtar tar. un volume win. directement
14
Configuration
• Smb.conf– il y avait 165 paramètres dans la v 1.9.17– en version 2.0
• 130 paramètres globaux
• 100 paramètres de partage
• un man de ~ 8500 lignes
Tout est configurable
15
Smb.conf• [global]
– paramètres globaux
– valeurs par défaut pour les autres sections
• [homes]– permet d'avoir un service homes automatique
• [printers]– exporter les imprimante std (/etc/princap)
• [autres...]– définir d'autres services de partage disque ou
imprimante
16
Variables et macros• Macros toujours disponibles
%U = le username demandé par le client à l'ouverture de la session, passé par le client au serveur
%G = groupe primaire de l'utilisateur %U
%M = nom DNS de la machine cliente (en minuscules)
%I = adresse IP de la machine cliente
%m = nom NETBIOS de la machine cliente
%h = nom de l'hôte sur lequel tourne Samba
%L = le nom NETBIOS du serveur
%a = architecture de la machine cliente; sont reconnus : Samba, WfWg, Win95, WinNT; Tout le reste est "UNKNOWN".
%R = le niveau de protocole négocié : CORE, COREPLUS, LANMAN1, LANMAN2, NT1
%N = nom du serveur NIS
%T = date et heure courante
%d = PID du process serveur courant
%v = version de Samba
17
Variables et macros
• Macros disponible uniquement dans un contexte de "partage"
%u = username du service courant (si défini, par exemple avec force user = xxx)
%g = nom du groupe primaire de l'utilisateur %u
%H = le "home" directory de l'utilisateur %u
%P = root directory du service courant
%S = nom du service courant
18
[global]• Include = /usr/local/samba/lib/smb.conf.%M• netbios = barman• workgroup = inat• server string = commentaire• local master = yes• preferred master = no• os level = 33• domain master = yes
19
[gobal]
• wins server = nom.serveur.dns• wins support = yes• interfaces = 192.134.4.1 192.134.0.0/24• name resolver order = lmhosts hosts wins bcast• dead time = 15• log file = fichier.%m• max log file = 2000 (2M)
20
Sécurité
• Share– défaut pour V<= 1.19
• user– défaut pour V >= 2.00
• server
• domain– existe pour V >= 2.00
21
Security=Share
• Modèle Win95
• un password par partage
• authentification à chaque connexion
• méthode déconseillée avec samba
22
Security= Share
Client Sambasecurity=share
négocier protocole
protocole chosi
tree connexion
inclus passwd
réponse oui/non
23
Security= user
• Samba authentifie une paire (username/passwd)
• une seul authentification lors de la première connexion
• problème des MAJUSCULES
• Le plus utilisé
24
Security= user
Client Sambasecurity=user
négocier protocole
protocole chosi
session setup request
inclus user/passwd
UID si réponse oui
tree connexion request
inclus UID
TID si réponse oui
25
Security= server
• Même mode que user
• samba utilise une liste de serveurs pour vérifier (username/password)
• il est impératif d'avoir un UID-unix par utilisateur pour faire le contrôle d'accès– username uid:gid home– password=* shell=/bin/false
26
Security = domain
• Même principe que le mode user
• le serveur peut devenir membre du domaine NT
27
Sécurité: allow deny equiv
• Contrôle d'accès selon la machine cliente
• hosts allow = 192.134.4.47 \192.134.0 execpt 192.134.4.0.4
• hosts deny = mechan.fr
• hosts equiv = /etc/hosts.equiv
28
Exemple• Un partage projet accessible par malek et mas
• /etc/passwd– malek:zzzzzz:zzzzz:/home/malek:/usr/bin/bash– mas:zzz:zzzz:/home/mas:/usr/bin/bash
• /etc/group– projet:x:400:malek,mas
29
exemple#============== Global Definitions ===============
[global]
workgroup = tunis
server string = %h serveur Samba
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba/log.%m
max log size = 500
security = user
socket options = TCP_NODELAY
dns proxy = no
30
exemple#================= Share Definitions ================
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
31
exemple[projet]comment = répertoire commun pierre et jean;le texte ci-dessus apparait dans l'explorateurpath = /home/projetwritable = yesvalid users = @projet# les membres du group "projet" ont accèslocking = yes; modes par défaut à la création de fichiers:create mode = 0660directory mode = 0770force group = projet
32
Swat
• Interface graphique: web + cgi
• /etc/services– swat 901/tcp
• /etc/inetd.conf– swat stream tcp nowait.400 /usr/local/samba/bin/swat swa
• http://127.0.0.1:901/
33
Swat
34
Swat
35
36
37
38
39