2. Type de serveurs Samba

La plus grande partie de la configuration de Samba passe par la modification du fichier /etc/samba/smb.conf (/usr/local/etc/samba/smb.conf sur FreeBSD). Elle regroupe plusieurs sections, permettant de définir le mode de fonctionnement du serveur, les partages réalisés, et les informations relatives à la gestion du réseau.

On peut regrouper les différents rôles d'un serveur Samba au sein d'un réseau en 3 groupes : serveur de fichier, controleur de domaine et serveur d'impression.

2.1. Serveur de fichiers

Par abus de langage, nous allons désigné par "serveur de fichier" une configuration où Samba est placé en tant que serveur d'un groupe de travail, ou membre d'un groupe de travail. Un serveur autonome n'est pas une contrôleur de domaine et ne joue aucun rôle dans un domaine,

2.1.1. Mode anonyme en lecture seule

Le fichier smb.conf suivant montre un extrait du fichier de configuration nécessaire pour permettre l'implémentation d'un partage de fichiers anonyme en lecture-seule. Le paramètre security = share rend un partage anonyme. Notez bien que les niveaux de sécurité pour un seul serveur Samba ne peuvent pas ~tre mélangés. La directive de sécurité (security) est un paramètre global pour Samba qui se trouve dans la section de configuration [global] du fichier smb.conf.

[global]
workgroup = FREMENS
netbios name = FREMENS_SRV
security = share

[data]
comment = Serveur de documentation
path = /export
read only = Yes
guest only = Yes

Avec une telle configuration, le serveur Samba est accessible par un poste Windows, sans besoin de mot de passe. Le répertoire est en lecture seule.

2.1.2. Mode anonyme en lecture / écriture

Dans le cas du fichier de configuration suivant, on obtient un partage réseau accessible de manière anonyme en lecture/écriture. Bien entendu, une telle politique de partage de ressources n'est pas à privilégier ! L'écriture est possible grâce à la directive read only =no. es directives force user et force group sont également ajoutées pour appliquer les règles de propriété à tout fichier ajouté et spécifié comme appartenant au partage.

[global]
workgroup = FREMENS
netbios name = FRE_SRV
security = share

[data]
comment = Serveur NON sécurisé
path = /export
force user = nobody
force group = nobody
read only = No
guest ok = Yes

Ici, le serveur est accessible sans mot de passe. La création de documents est possible selon les droits Unix des répertoires cibles, et la modification/suppression des fichiers est également dépendante des droits Unix de l'utilisateur nobody sur les fichiers.

2.1.3. Mode lecture / écriture sécurisé

[global]
workgroup = FREMENS
netbios name = FRE_SRV
security = user

[homes]
comment = Home Directories
valid users = %S
read only = No
browseable = No

[public]
comment = Partage sécurisé
path = /export
force user = nobody
force group = nobody
read only = No
browseable = Yes

Dans ce cas, la connexion au serveur n'est possible que par authentification login/password. Le prérequis est bien entendu la création de compte Samba ! A la suite du login, tous les utilisateurs ont accès à LEUR répertoire de domiciliation, et au répertoire public.

2.2. Contrôleur de domaine

S'il est possible d'intégrer un serveur Linux comme membre d'un domaine Active Directory, nous allons concentrer notre étude que la confguration d'un serveur en temps que contrôleur de domaine (de type NT). La version 4 de Samba permettra d'en faire un contrôleur de domaine Active Directory.

S'il est possible d'utiliser LDAP pour l'authentification des utilisateurs et ordinateurs sur le domaine, nous allons utiliser le backend de gestionnaire de mots de passe tdbsam, par défaut dans Samba.

[global]
workgroup = FREMENS
netbios name = FRE_PDC 
passdb backend = tdbsam
security = user
add user script = /usr/sbin/useradd -m %u
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g 
delete group script = /usr/sbin/groupdel %g 
add user to group script = /usr/sbin/usermod -G %g %u
add machine script = \
 /usr/sbin/useradd -s /bin/false -d /dev/null \
 -g machines %u

logon script = logon.bat
logon path = \\%L\Profiles\%U
logon drive = H:
logon home = \\%L\%U
domain logons = Yes
os level = 99
preferred master = Yes
domain master = Yes
idmap uid = 15000-20000
idmap gid = 15000-20000

[homes]
comment = Home Directories
valid users = %S
read only = No
browseable = No
writable = Yes

[public]
comment = Data
path = /export
force user = nobody
force group = nobody
guest ok = Yes

[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon/scripts
admin users = ed, john, sam
guest ok = No
browseable = No
writable = No

[Profiles]
comment = Roaming Profile Share
path = /var/lib/samba/profiles
read only = No
browseable = No
guest ok = Yes
profile acls = Yes

# Other resource shares
...
...

2.3. Serveur d'impression

Le fichier smb.conf suivant montre un extrait du fichier de configuration nédcessaire pour implémenter un serveur d'impression anonyme. Comme nous l'avons montré, le fait de donner à browsable la valeur no, n'inclut pas l'imprimante dans la liste Voisinnage réseau de Windows. Bien que n'apparaissant pas lors de la navigation, la configuration explicite de l'imprimante est possible.lE serveur Samba n'a aucune responsabilité quant au partage de pilotes d'impression avec le client.

[global]
workgroup = FREMENS
netbios name = PRINT_SRV
security = share
printcap name = cups
disable spools= Yes
show add printer wizard = No
printing = cups

[printers]
comment = All Printers
path = /var/spool/samba
guest ok = Yes
printable = Yes
use client driver = Yes
browseable = Yes

L'imprimante est donc en accès anonyme. Sécuriser l'accès se ferait en mettant security = user dans la section global.

Skins :
Transparence
Simple
Page Accueil
Formation