Contrôleur de domaine Samba sur Debian ETCH
Contexte de travail
Nous prendrons l’exemple d’une TPE souhaitant mettre en place une architecture client/serveur (voir schéma) permettant à chaque salarié de disposer d’un compte utilisateur (sur des postes Windows XP Pro) avec un dossier privé à son nom, un dossier public partagé par tout le monde et un dossier documents en lecture seule sauf pour l’administrateur.
Le serveur utilisera une Debian ETCH (5.0.3) comme OS et Samba (version 3.2.5) pour le contrôleur de domaine. Comme on peut le voir sur le schéma, le PDC hébergera également le serveur de fichiers.
Présentation de Samba
Samba est un logiciel libre principalement utilisé pour le partage de fichiers et d’imprimantes entre un serveur Linux et des clients Windows. On peut aussi l’utiliser pour mettre en place un contrôleur de domaine afin de gérer les utilisateurs, les droits d’accès aux dossiers…
Etape 1 : Configuration du serveur de fichiers
1. Installation de samba
Ouvrez un terminal et lancez l’installation de samba en sélectionnant la version 3.2.5. Si vous voulez une version plus récente de samba faîtes simplement apt-get install samba
Pendant l’installation il faudra mettre un nom de domaine, c’est à vous de le définir (par exemple moi j’ai mis : « samba.priv »)
2. Installation de Webmin (facultatif)
Si vous ne savez pas comment installer Webmin, je vous propose de consulter mon petit mémo à ce sujet. L’installation n’est pas indispensable mais certaines étapes de ce tutoriel (notamment la sauvegarde) seront plus simples en l’utilisant.
3. Création des groupes utilisateurs
Nous allons créer 3 groupes différents :
- pdc_users: le groupe des utilisateurs
- pdc_comps: le groupe des machines
- pdc_admin: le groupe des administrateurs
4. Création de l’arborescence
Tout d’abord, nous allons créer un dossier samba dans /srv :
Ensuite, nous allons y créer 5 sous dossiers qui auront les droits suivants :
- home : Chaque utilisateur aura un répertoire personnel en RW uniquement par lui
- netlogon : Accessible en RW uniquement par root, RX pour les autres
- profiles : Contient les paramètres (profils itinérants) de chaque utilisateur
- documents : Accessible au groupe pdc_users en R et au groupe pdc_admin en RW
- public : Accessible à tous les utilisateurs en RW. Seul le propriétaire d’un fichier peut l’effacer
Vous vous demandez peut être à quoi servent ces dossiers. Une description de chaque dossier est disponible dans le fichier de configuration de samba que vous trouverez plus loin dans ce tutoriel
5. Modification des droits sur les dossiers
Placez vous dans le dossier samba avec la commande cd /srv/samba et changez le groupe pour les dossiers documents et public :
Il faut également changer les droits de ces deux dossiers en modifiant leur chmod et le sticky bit :
Au final voilà à quoi doit ressembler votre arborescence (pour l’afficher utilisez la commande ls -l) :
6. Création des comptes utilisateurs
a) Ajout sur la machine Linux (fichier passwd)
Pour rester simple nous avons 3 utilisateurs à ajouter : fred et alex font parti du groupe pdc_users et mika fait parti des groupes pdc_users et pdc_admin
Pour les utilisateurs nous utiliseront la syntaxe suivante, elle permet d’ajouter directement l’utilisateur créé à un groupe supplémentaire et de lui créer un répertoire personnel. Voici un exemple :
Quelques explications sur les options utilisées :
- -G pdc_users : Ajoute l’utilisateur dans un groupe supplémentaire
- -m : Autorise la création d’un répertoire personnel
- -d /srv/samba/home/fred : Définit l’emplacement du répertoire personnel
- -c ‘Compte de fred’ : Le nom de la session pour l’utilisateur
- -p pass : Définit le mot de passe de l’utilisateur (‘pass’ en l’occurrence)
- -s /bin/false : Empêche de se loguer sur le serveur avec ce compte
N’oubliez pas que l’utilisateur mika doit faire parti à la fois du groupe pdc_admin et pdc_users. Pour plus de détails faîtes un man useradd ou man usermod.
Pour ajouter la machine cliente la syntaxe est un peu différente. La variable « nom_pc » correspond au nom NetBIOS de la machine. Par ailleurs, il est impératif de mettre un « $ » juste après le nom de la machine.
b) Ajout dans Samba (fichier smbpasswd)
Là vous avez deux solutions, soit le faire en ligne de commande, soit utiliser webmin. D’abord, je vais vous montrer comment ajouter un utilisateur « à l’ancienne »
Il faudra aussi ajouter le compte de l’administrateur du domaine et les machines
smbpasswd -m -a nom_pc$ // le « -m » indique que le compte est une machine
Autres options utiles de la commande smbpasswd :
smbpasswd -d nom_utilisateur // Désactiver un utilisateur (qui ne pourra donc plus se loguer sur le réseau)
smbpasswd -e nom_utilisateur // Activer un utilisateur
Si on a beaucoup d’utilisateurs à ajouter il est peut être plus judicieux de passer par webmin pour cette étape. Allez dans Server > Samba Windows File Sharing > Convert Unix users to Samba users
Comme son nom l’indique, cette option permet de convertir les utilisateurs UNIX en utilisateur Samba. Le seul défaut est que la conversion ne différencie pas les utilisateurs des machines (le fameux -m). Du coup pour chaque machine il faut décocher la case « Normal user » et cocher « Workstation trust account ». Donc webmin ou pas c’est vous qui voyez, notez que vous pouvez aussi créer les partages réseaux et gérer les droits avec Webmin.
Si vous avez suivi vous devriez avoir les utilisateurs suivants dans votre fichier smbpasswd (pour le visualiser faîtes nano /etc/samba/smbpasswd)
Je n’ai qu’une seule machine dans mon fichier car j’ai virtualisé mon client XP, mais dans la réalité si chaque utilisateur à sa propre machine il faut ajouter toutes les machines
5. Création du script de démarrage
Placez vous dans le dossier netlogon et créez le script logon.bat avec ce contenu (nano logon.bat). N’oubliez pas de remplacer debianserver par le nom de votre serveur à vous !
net use z: \\debianserver\home\%USERNAME%
# Montage du lecteur réseau « public » dans le Poste de Travail
net use y: \\debianserver\public
# Montage du lecteur réseau « documents » dans le Poste de Travail
net use x: \\debianserver\documents
# Synchronisation de l'horloge du client avec le serveur
net time \\debianserver /set /yes
Etape 2 : Configuration du contrôleur de domaine
Bien, à présent ouvrez le fichier smb.conf et remplacez tout le contenu avec celui de mon fichier
N’oubliez pas de changer la valeur du workgroup par la votre si vous n’avez pas utilisé samba.priv. Comme le fichier est assez long je ne vais pas l’afficher dans le post mais il est entièrement commenté donc il ne devrait pas y avoir de problèmes
Etape 3: Tester la configuration
La première étape sera de lancer la commande « testparm », qui sert à vérifier que le fichier de configuration de samba ne comporte pas d’erreurs. Vous pouvez lancer cette commande de n’importe ou.
Si tout est bon, on pourra lancer notre serveur avec la commande suivante :
Pour vérifier que ce dernier fonctionne correctement, on peut s’y connecter localement sur le serveur, en tapant cette commande*. (Tapez entrée à la demande du mot de passe) :
* Il faudra peut être télécharger les paquets du smbclient auparavant s’ils n’ont pas été installés (apt-get install smbclient)
Etape 4: Joindre le domaine
Sur chaque client XP Pro, il faut faire une petite modification dans le registre pour pouvoir joindre le domaine Samba en mettant la clé suivante à 0 (regedit.exe)
"RequireSignOrSeal"=dword:00000000
Conseil : Si vous avez beaucoup de postes, il vaut mieux faire un clone et faire la modification une fois que de devoir la faire pour chaque poste !
Pour joindre le domaine, depuis le poste client faire un clic droit sur poste de travail/propriétés, onglet Nom de l’ordinateur/modifier et entrez les identifiants du compte root.
Après tant d’efforts voici enfin la récompense
Après avoir redémarré la machine cliente on pourra se connecter au domaine samba.priv avec les comptes utilisateurs crées dans Samba.
Dans le poste de travail, il y aura normalement les lecteurs réseaux suivants : un au nom de l’utilisateur, le public et le documents.
Etape 4: Gestion de la sauvegarde
Nous utiliserons le module Filesystem Backup de Webmin pour réaliser la sauvegarde du serveur de fichiers. Cet outil permet également de planifier ses sauvegardes à intervalles réguliers. Un autre avantage est qu’il sauvegarde/restaure également tous les droits sur les fichiers/dossiers
Pour effectuer une sauvegarde/restauration aller à : System > Filesystem Backup. Avant toute chose, il faut commencer par configurer le module (cf.image ci-dessous). Pour l’envoi de mail il faut également configurer le serveur mail
On peut ensuite configurer les options de la sauvegarde. Il y a pas mal d’options disponibles, je vous laisse tester tout ça. Bien évidement faîtes la sauvegarde sur un support externe et pas sur le serveur comme certains , moi j’avais qu’une clé USB sous la main…
Grâce à l’option « Do strftime substitution of backup destinations? » on peut mettre des variables dans le nom de fichier de la sauvegarde. Par exemple, en mettant « samba_%Y_%m_%d » le fichier de sauvegarde s’appellera samba_2011_09_13.tar ce qui est pratique dans le cas d’une sauvegarde quotidienne.
L’option « Just add new files to archive? » permet de faire des sauvegardes incrémentales plutôt que de faire une sauvegarde complète à chaque fois. Par contre, je crois pas qu’il soit possible de le paramétrer pour faire une incrémentale du lundi au samedi et une complète le dimanche par exemple. A vérifier…
Pour effectuer une restauration (et pas une simulation) ne pas oublier de mettre « no » en face de « Only show files in backup? »
Il faudra aussi penser à faire une sauvegarde des fichiers de configuration de Samba et des utilisateurs/groupes UNIX (avec le module Backup Configuration Files de Webmin par exemple). Ce long tutoriel est terminé, je n’ai pas abordé le partage des imprimantes car je ne peux pas le tester chez moi mais a priori cela ne devrait pas être trop compliqué à mettre en place.
Voici deux autres tutoriels sur le même sujet dont je me suis inspiré (merci à leurs auteurs) :
Laisser un commentaire
Articles au hasard
-
La pagination avec Symfony et Doctrine
-
Installation de Webmin sous Debian ETCH
-
L'autocomplétion avec sfWidgetFormJQueryAutoc...
-
Quelques fonctions pratiques en PHP
-
L'autocomplétion dans Symfony (suite et fin)
Articles par catégorie
- Administration réseau (6)
- Base de données (1)
- MySQL (1)
- Développement Web (7)
- HTML et CSS (1)
- Javascript (3)
- PHP (6)
Sondage
