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.
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,
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.
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.
[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.
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 ... ...
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.