I) Introduction :
Nous allons voir au travers de cette courte documentation comment faire pour que Samba agisse comme un PDC (Primary Domain Controleur) ou bien CPD si vous préférez le français. En plus de permettre de partager des fichiers et des imprimantes, Samba est capable d’agir comme un émulateur de Serveur Windows NT avec l’avantage tous les avantages des logiciels libre. À titre d’information, la seule chose qu’un serveur NT sait faire et que Samba ne sait pas faire, c’est la mise en place de serveur Wins de secours.
Pour les personnes cherchantde plus amples informations sur le paramétrage de samba, je vous suggère de lire les pages de man (en particulier le man smb.conf) et surtout de lire la documentation complète disponible sur le site de samba, bien que celle-ci soit en anglais.
II) Configuration globale :
Commençons à paramétrer le comportement du serveur. Éditez le fichier /etc/samba/smb.conf :
[global] # Nommage de la machine sur le réseau NetBios : workgroup = momolan netbios name = serveur server string = serveur samba %v # Niveau de sécurité. A mettre en user pour un PDC security = user # Nom et emplacement du fichier de mots de passe de samba. smb passwd file = /etc/samba/smbpasswd # Notre machine sera élue maître explorateur local du réseau NetBios : domain master = yes local master = yes prefered master = yes os level = 69 # Cette option sert à dire que le poste Samba sert de de PDC domain logons = yes # Script lancé sur les machines clientes à l'authentification. logon path = \serveurnetlogon logon script = logon.bat # Options sur la casse (différence majuscules/minuscules). case sensitive = no default case = lower preserve case = yes short preserve case = no # Necessaire depuis win 98 : encrypt passwords = yes # Nous ne voulons pas faire serveur WINS. wins support = no # Nom du compte invité. guest account = nobody # Gestion de la commande Linpopup, correspondant au winpopup sous Windows : message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' & # Nous faisons serveur de temps : time server = yes # Et l'utilisateur « jaune » possède les droits administrateur sur le serveur : admin users = jaune # Pour le programme de mots de passe : passwd program = /usr/bin/passwd %u passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn .
III) Mise en place des partages :
Dans un premier temps, partageons les répertoires personnels des utilisateurs qui seront situés sur le serveur :
[homes] comment = Répertoires personnels : path = %H valid users = %S create mode = 0700 directory mode = 0700 browseable = no read only = no
Éventuellement un répertoire public sera mis à disposition :
[public] comment = Répertoire public path = /etc/samba/public read only = No create mask = 0777 directory mask = 0777 guest ok = Yes
Comme il faut souvent insérer le CDROM de Windows 98 lorsque l’on fait une modification, sur le système, j’aime l’avoir à disposition au travers du réseau, quand celui-ci est disponible bien entendu!
[win98] comment = Fichiers Windows 98 path = /etc/samba/win98 public = Yes read only = Yes valid users = jaune
Enfin, un partage spécial, le netlogon, contient les scripts exécutés lors de l’ouverture d’une session sur le serveur :
[netlogon] comment = Services d'identification path = /etc/samba/netlogon write list = jaune read only = yes
IV) Création du script de session :
Nous allons créer le fichier correspondant à la ligne suivante du fichier smb.conf :
logon script = logon.bat
À cause des différences de caractère de fin de ligne entre Unix et DOS/Windows, soit vous créez ce fichier sous Windows et vous le placez dans le netlogon, soit vous le faîtes sous Linux et vous placez un filtre convertissant ce fichier :
Exemple de contenu de fichier :
net time \serveur /set /yes net use h: \serveurhomes /yes net use p: \serveurpublic /yes
Ce script sert à synchroniser l’heure de la machine cliente avec celle du serveur. Puis il attribue une lettre de lecteur réseau au répertoire personnel et au répertoire public.
Filtre pour le traduire au format dos :
# cat logon.bat | sed "s/$/^M/" | sed "$ s/$/^Z/" > /etc/samba/netlogon/logon.bat
V) Ajout des utilisateurs :
Les utilisateurs Samba doivent être des utilisateurs existants dans la base Unix. Donc tout d’abord ajoutons cet utilisateur à la base Unix :
# adduser --shell /dev/null eleve
Faites ainsi pour tous vos utilisateurs destinés à être des utilisateurs Samba. Puis ajoutons ces utilisateurs à la base d’utilisateurs Samba :
# smbpasswd -a eleve
VI) Test du fonctionnement :
Pour commencer, vérifions la syntaxe du fichier /etc/smb.conf :
#testparm
Si votre configuration est correcte, vous aurez une suite de ligne de ce type :
Load smb config files from /etc/samba/smb.conf
Processing section « [homes] »
Démarrons Samba :
Sous Debian :# /etc/init.d/samba start
Sous RedHat et compatibles :# /etc/rc.d/init.d/smb start
Passons à la configuration des clients windows, indiquez simplement ce qui suit :
Redémarrez les clients windows, une boite de dialogue vous invite désormais à vous identifier auprès du serveur ;
Indiquez votre mot de passe samba. Si vous cliquez sur « Annuler » vous aurez accès à la machine mais pas aux ressources partagées sur le réseau.
VII) Sécurisons l’accès aux machines :
Il est bien joli notre serveur comme ça, cependant le fait de ne pas s’authentifier ne pénalise pas beaucoup un utilisateur vicieux comme il a quand même accès à la machine. De plus, il peut toujours hôter sa machine du domaine NT et certains partages lui seront tout de même accessibles. Et comme Windows 98 n’est pas du tout multi-utilisateur, chaque utilisateur dispose de tous les droits sur son système avec les risques que celà peut entrainer.
Sur le CDROM de Windows 98, vous trouverez un outil, nommé « Poledit ». Cet outil permet d’appliquer un certain nombre de restrictions à l’utilisateur en modifiant certaines valeurs de la base de registre suivant l’utilisateur qui s’identifie.
Lancez donc cet outil et choisissez un modèle de stratégie à mettre en place. Le plus adapté pour ce que l’on souhaite faire et le fichier « admin.adm ». Créez vos utilisateurs et vos groupes suivant ce que vous souhaitez faire et attribuez-leurs des droits. Pensez à créer un utilisateur privilégié pour administrer les machines pour lequel toutes les cases seront décochées.
Enfin, dans les propriétés de la machine par défaut, spécifiez le mode de mise à jour en manuel, et indiquez une chemin comme suit :
Mise à jour : Pour finir, il convient de valider l’application des restrictions apposées aux utilisateurs. Identifiez-vous sous le nom d’un utilisateur ayant des droits restreints. Testez par exemple en lançant l’éditeur de registre par exemple, qu’il convient de désactiver. Pour toute action qui est interdite, vous devriez voir s’afficher l’une des boites de dialogue suivante :