Les niveaux de sécurité de Samba

 
 
 
 


  Introduction  -  Security = share  - Security = user  -  Security = server  -  Security = domain
 
 

Samba utilise quatre modèles de sécurité, un choisir un va affecter le comportement utilisé par Samba pour valider une connection venant d'un client. Il faut savoir que lors de l'établissement d'une connection entre un client et un serveur SMB (NetBIOS), le serveur informe tout d'abord le client du mode de sécurité dans le quel il se trouve. C'est alors le job du client de s'adapter à ce mode.

Les quatre niveaux de sécurités reconnus par Samba porte les noms suivants : share (partage), user (utilisateur), server (serveur) et domain (domaine). Le paramètre global security permet de définir le mode à utiliser.

Il n'est possible d'utiliser qu'un seul mode par serveur.

!!Avant la première version 2.0.0, la valeur par défaut du paramètre security était share, maintenant cette valeur par défaut est devenue user.

Introduction
Premièrement, quelques mots à propos de la façon dont Samba accède aux fichiers et répertoires quand un utilisateur s'y connecte.

Quand vous faites une connection au serveur Samba, vous lui passez, par quelque moyen que ce soit (voir après), un nom d'utilisateur. C'est le nom d'utilisateur Windows. Samba va alors chercher pour le même nom d'utilisateur dans la base de données des mots de passe Unix, donc habituellement le fichier /etc/passwd. S'il le trouve, le serveur Samba utilisera cette entrée pour avoir, au moins, un ID utilisateur Unix valide pour accéder les répertoires et les fichiers. Il peut aussi utiliser le fichier /etc/passwd pour valider le mot de passe reçu. Mais seulement s'il n'est pas configuré pour utiliser les mots de passe encryptés. Auquel cas il validera la mot de passe avec un autre fichier, par exemple /usr/local/samba/private/smbpasswd.

Donc, la conclusion est simple, pour chaque utilisateur Windows, vous avez besoin d'un compte Unix avec le même nom.

Mais il existe cependant certaines méthodes pour se débarrasser de cette contrainte. Voyez le mode partage  ou la correspondance des noms d'utilisateurs .

Security = share
Une conséquence directe de ce mode de sécurité est que vous n'êtes pas obligé de créer un utilisateur Unix pour chaque utilisateur Windows suceptible de se connecter au serveur Samba.
Security = user
Ce mode de sécurité est beaucoup plus simple que le précédent. Quans le serveur dit au client qu'il fonctionne en mode de sécurité utilisateur, alors le client envoit tout d'abord une commande contenant un nom d'utilisateur et un mot de passe. A ce moment de la connection, le serveur n'a aucune idée du service que le client veut accéder. Donc il doit baser sa procédure d'authentification uniquement sur ces deux éléments, le mot de passe et le nom d'utilisateur ou le nom de machine.
Une fois que l'accès a été autorisé au client, alors celui-ci peut se connecter à n'importe quel  share sans pour autant devoir réenvoyer une nouvelle fois le mot de passe. Avec Windows NT, vous pouvez envoyer plus d'une paire mot de passe/nom d'utilisateur : vous devez remplir le champ "Connection en tant que :" présent dans chaque boîte de dialogue pour établir une connection réseau, alors vous pouvez envoyer une deuxième paire de mot de passe / nom d'utilisateur.

Pour valider la paire nom d'utilisateur / mot de passe, Samba va utiliser les mecanismes standard d'authentification de Unix (/etc/passwd, /etc/shadow ou n'importe quel autre système d'authentification activé sur votre serveur). Si vous exécuter Samba en mode mot de passe encryptés (encrypt password = yes), alors il va utiliser le fichier smbpasswd pour vérifier le nom d'utilisateur et le mot de passe, mais vous avez toujours besoin d'un compte Unix valide identique au nom d'utilisateur Windows. Ceci, pour permettre l'accès au système de fichier de Unix au client.

Security = server
Lorsque le mode de sécurité est serveur, Samba continue malgré tout à dire aux clients qu'il fonctionne en mode utilisateur. Le client se connecte donc au serveur de la même façon qu'expliqué précédement (avec un mot de passe et un nom d'utilisateur). La seule différence réside dans la façon de valider la paire mot de passe / nom d'utilisateur.

Pour valider la connection, le serveur Samba va utiliser le nom d'utilisateur et le mot de passe pour se connecter à un serveur différent, appelé le serveur de mot de passe. Si la connection vers se serveur est réussie, alors le client est autorisé à ce connecté à Samba.
Le serveur de mots de passe doit être une autre machine SMB qui fonctionne en mode de sécurité utilisateur. Il peut donc être un autre serveur Samba, un serveur Windows NT ou tout autre implementation du protocol SMB comme Pathworks, LanManager, ... Le serveur auquel Samba doit se connecter (le serveur de mots de passe) est défini à l'aide du paramètre global password server. Ce paramètre prendra comme valeur soit le nom NetBIOS du serveur, soit son adresse IP.

Security = domain
Le mode de sécurité domaine est très similaire au mode de sécurité serveur.
La différence réside dans les mécanismes utilisés pour valider le mot de passe et le nom d'utilisateur avec le serveur de mot de passe. Dans ce cas, Samba va utiliser plainement toutes les capacités offertes par un domaine NT. Le serveur Samba va donc se comporter comme tout autre serveur NT ou Windows 9x en participant aux relations de confiances (trust relationships) du domaine.
Le serveur de mot de passe que l'on spécifie à l'aide du paramètre password server est donc le contrôleur du domaine et/ou ses backups.

Un avantage de ce genre d'authentification est que Samba ne doit plus maintenir une connection vers le serveur faisant la validation des mots de passe plus longtemps que le temps nécessaire à cette validation. Ce n'était pas le cas en mode de sécurité serveur où la connection  avec le serveur de mots de passe restait ouverte tant que l'instance du daemon smbd qui l'a ouverte reste active (autrement dit, tant que le client reste connecté à Samba). Ce qui pouvait conduire à un épuisement des ressources (license surtout) sur le serveur de mots de passe lorsque celui-ci est un NT.

Pour le configurer de la bonne façon (dans ce cas votre Samba doit devenir un membre d'un domaine où le serveur d'authentification est placé), lisez ma page à propos de la configuration  dans  le mode domaine .
 
 
 


Introduction - Security = share  - Security = user  -  Security = server  -  Security = domain

 
 
 
 
 
 

(c) Août 2000, par Benoit Gerrienne