Outils pour utilisateurs

Outils du site


linux:samba

SAMBA : Server message block

Linux samba serveur Samba est un logiciel libre et une implémentation du protocole propriétaire SMB/CIFS sous GNU/Linux, initialement développée par l'australien Andrew Tridgell. Il est sous licence GNU GPL 31. Son nom provient du protocole SMB (Server message block), le nom du protocole standard de Microsoft, auquel ont été ajoutées les deux voyelles a : « SaMBa ».

À partir de la version 3, Samba fournit des fichiers et services d'impression pour divers clients Windows et peut s'intégrer à un domaine Windows Server, soit en tant que contrôleur de domaine principal (PDC) ou en tant que membre d'un domaine. Il peut également faire partie d'un domaine Active Directory. Il fonctionne sur la plupart des systèmes Unix, comme GNU/Linux, Solaris, AIX et les variantes BSD, y compris Apple, Mac OS X Server (qui a été ajoutée au client Mac OS X en version 10.2). Samba fait partie intégrante de presque toutes les distributions GNU/Linux.

Configuration de SAMBA

SAMBA

Les exécutables de SAMBA


Les outils exécutables de SAMBA :

  • /usr/sbin/smbd: Gestion des ressources partagées (authentifiaction)
  • /usr/sbin/nmbd: Parcours du voisinage réseau et service de nomcs NETBIOS
  • /usr/bin/nmlookup: Interrogation du serveur WINS
  • /usr/bin/smbpasswd: Gestion de mots de passe
  • /usr/bin/testparm: Outil de vérification du fichier de configuration

Le fichier de configuration smb.conf

  • /etc/samba/smb.conf

Toute la configuration de SAMBA y repose.
Lorsque SAMBA ne trouve pas les directives dans ce fichier,
il utilise les valeurs par défaut. Il est divisé en sections :

[global]

Comportement général de SAMBA.

[homes]

Partage des répertoires utilisateurs, sans les énumérer nominativement.

[printers]

Partage des imprimantes Unix sans avoir à les énumérer.

[Netlogon]

Partage créé pour l'utilisation de scripts de connexion pour les utilisateurs.

Utilisation des variables

SAMBA permet l'utilisation de variables dont les valeurs seront posées pour chaque connexion.
Il est donc possible d'utiliser ces variables dans le smb.conf pour constituer certaines options :

%a architecture du client
%I adresse IP du client
%M nom DNS du client
%m nom NETBIOS du client
%u identité de l'utilisateur
%U identité souhaité par l'utilisateur
%H répertoire de connexion de l'utilisateur
%g groupe principal de l'utilisateur
%S nom du partage
%P répertoire racine du partage
%d PID du processus courant
%h nom DNS du serveur SAMBA
%L nom NETBIOS du serveur SAMBA (%N aussi)
%v version de SAMBA
%T date et heure système
%var valeur de la variable var
  • Afficher toutes les valeurs utilisées par SAMBA :

testparm -sv

Méthode d’authentification

Il existe avec Samba plusieurs niveaux de sécurité concernant les connexions aux ressources partagées.
L'option security du fichier smb.conf permet de gérer le niveau de sécurité.
Par défaut, “security = user”.

security = user
  • Authentification depuis une liste de users et un mot de passe associé.
security = share
  • Les mots de passe sont associés aux partages.
security = domain
  • Précise l'utilisation d'un autre serveur pour l'authentification.
  • L'option password server précisera le nom de ce serveur.
security = ads
  • Permet l'authentification auprès d'un serveur Active Directory.
  • Le serveur doit être membre de l'AD.
  • L'option ads server permet de préciser le serveur d'authentification

Réalisation de partages réseaux

Samba partage réseaux

Les principales directives de partages de fichiers :

PARAMETRES VALEUR PAR DEFAUT DESCRIPTION
path = chemin du répertoire à partager
comment = texte visible dans le voisinage réseau
guest ok = yes/no no partage en accès libre sans authentification
valid users = tous liste des users autorisés à se connecter à la ressource
printable = true/false false partage un service d'impression et non de répertoire
writeable = yes/no no permet ou non l'écriture sur le répertoire (contraire de read only)
write list = tous les utilisateurs liste des users autorisés à écrire
browseable = yes/no yes visibilité du partage par tous, même les users non autorisés
create mode/mask = 0744 droits max accordés à un fichier créé dans la ressource (AND avec le UMASK)
directory mode/mask = 0755 droits max accordés à un repertoire créé dans la ressource (AND avec le UMASK)
force directory mode = 000 droits imposés lors de la création du répertoire
force group = impose un groupe propriétaire à la création de fichiers (pas de @ devant le groupe)
hide dot files = yes cache les fichiers cachés Linux (commençant par un point)
hide files permet de cacher des fichiers (* et ? sont utilisables, la casse doit être respecter)
hosts allow/deny = allow=toutes deny=aucune filtrage IP
max connections = 0 nombre de connexions à la ressource (0=illimité)

Exemples de partage

  • Répertoire personnel

[homes]
comment = répertoire personnel      # commentaire affiché dans l'explorateur
browseable = no                     # partage caché   
writable = yes                      # accès en écrite
create mode = 600                   # permissions positionnées à la création

  • Répertoire public

[public]
path = export/public               # répertoire partagé (droits 777 pour écriture de tous)
public = yes                       # partage accessible de tous users authentifiés
writeable = yes                    # accessible en RW
create mode = 0755                 # fichiers créés en RO sauf pour le propriétaire

  • Partage pour un groupe uniquement

[compta]
path = /export/compta              # répertoire partagé (droits 770 pour écriture groupe)
public = no                        # partage non accessible de tous
valid users = @compta              # @ spécifie un groupe Unix mais les users doivent être dans la base samba
writeable = yes                    # accessible en RW pour les users autorisés
create mode = 0640                 # permissions par défaut des nouveaux fichiers

  • Partage avec authentification partagée

[global]
security = share

[test]
path = /export/test                # Les utilisateurs pourront 
guest ok = no                      # accéder à la ressource  
valid users = @compta              # en validant le mot de passe
writeable = yes                    # de user1
users = user1                      # 

Gestion des comptes utilisateurs de la base Samba

Pour créer un compte utilisateur Samba, le compte système doit impérativement existé (/etc/passwd)

  • Création d'un compte Samba:

useradd test

pdbedit -a test

smbpasswd test

  • Afficher les informations d'un compte:

pdbedit -Lv test

PDBEDIT

Le client Samba Linux

  • Installer le client samba qui gérera smb ou cifs:

aptitude install smbfs

Exemple de montage de ressource partagée:

mount -t cifs -o user=test,pass=PASSWORD,iocharset=utf8,uid=test //srv-lan/public /mnt/public

  • Voir les partages smb d'un serveur précis:

smbclient -L srv-lan -U root

smbclient

Exemple de configuration SAMBA

Fichier smb.conf configuré pour :

  • le partage de DISTRIB en RO public
  • le partage de ADMIN en RW pour les membres du groupe admin avec authentification
  • le serveur est contrôleur de domaine (PDC - serveur de temps - serveur WINS)

#======================= Global Settings =======================

[global]

        workgroup = aldebaran
        server string = srv-lan.aldebaran.local
        netbios name = srv-lan

        domain master= yes
        wins support = yes
        domain logons = yes
        time server= yes
        logon path = \\%h\%U\%U
        logon script = start.bat
        nt acl support = yes

#### Networking ####

   interfaces = 192.168.0.1/24 eth0

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
#   log file = /var/log/samba/log.%m

# Cap the size of the individual log files (in KiB).
#   max log size = 1000

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
   syslog only = yes
   syslog = 3
   panic action = /usr/share/samba/panic-action %d


####### Authentication #######

   security = user
   encrypt passwords = true
   passdb backend = tdbsam
   map to guest = bad user
   usershare allow guests = yes

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

[distrib]
   comment = Dossier distrib (public en ro)
   browseable = yes
   path = /export/distrib
   guest ok = yes
   guest only = yes
   read only = yes
   writeable = no
   #create mask = 0700

[admin]
  path = /export/admin
  comment = Dossier admin (privé en rw)
  browseable = yes
  public = no
  force group = admin
  valid users = @admin
  writeable = yes
  create mask = 0660
  #force directory mode = 750

[homes]
  path = /export/homes/
  comment = Home Directory NT
  browseable = no
  read only = no
  writeable = yes
  create mask = 0600
  directory mask = 0700
  profile acls = yes

[netlogon]
  path = /export/netlogon
  comment = Network Logon Service
  guest ok = yes
  browseable = no
  writeable = no
  read only = yes

linux/samba.txt · Dernière modification: 15/04/2016 à 21:15 (modification externe)

Outils de la page