BTS SIO Serveur de fichier sous Samba Mise en place d une sécurisation de fichiers et configuration des partages avec un serveur de fichiers sous Linux. Gabin Fourcault BTS SIO
Mise en place d un serveur de fichier sous SAMBA Table des matières Contexte... 2 Outils utilisés... 2 Mise en place des machines... 3 Installation d un serveur SAMBA... 3 Composition et utilisation du fichier smb.conf... 3 Créer un partage... 4 Configuration du fichier smb.conf... 5 Création des utilisateurs... 6 Les groupes... 6 Comment créer un groupe?... 7 Comment intégrer un utilisateur à un groupe?... 7 Arborescence disque... 7 Ajouter un utilisateur et/ou un groupe en tant que propriétaire d un dossier... 8 Changer les droits d un dossier... 8 Configuration des droits des dossiers de l école... 9 Configuration des partages... 11 Partage général... 11 Partage professeurs et élèves... 12 Partage des dossiers ressources... 12 Automatiser le montage des lecteurs réseaux... 13 Intégration d un poste client (windows seven)... 14 Créer une machine cliente et l intégrer sous Samba... 14 Changer des clés de registres sur la machines cliente pour permettre l intégration... 15 Intégration d un client dans le domaine... 16 Validation des autorisations mises en place dans le cahier des charges... 18 Validation avec un élève... 18 Validation avec un professeur... 22 1
Cas particulier : validation avec le professeur 2... 24 Contexte L objectif est de créer un serveur de fichier sécurisé sous Samba pour une école. Nous disposons des effectifs suivants : Eleves Profs Classes Disciplines C1 C2 D1 D2 E1 X E2 X E3 X E4 X P1 X X P2 X X X P3 X X P4 X X Les élèves ainsi que les professeurs ont un compte et dossier personnel. Seul le titulaire d un dossier peut y avoir accès en modification et les professeurs peuvent lire le contenu du dossier d un élève de sa classe. Il y aura un dossier Ressources que les professeurs de la classe utilisent pour fournir des informations aux élèves, mais les élèves ne peuvent que consulter ces documents. Il y aura un dossier Travaux ou les élèves de la classe ainsi que les professeurs peuvent y déposer des fichiers. Pour finir, un dossier de mutualisation est réservé aux professeurs de la classe Outils utilisés Serveur Samba 3.6 2
Windows 7 Debian 3.2.54-2 X86_64 GNU/Linux Mise en place des machines Nous allons axer notre tutoriel sur deux machines : Une machine cliente sous windows Une machine sous Debian qui exécutera SAMBA Nos deux machines doivent être bien entendu sur le même réseau Installation d un serveur SAMBA L installation de Samba est particulierement simple. Il suffit de taper la commande suivante en mode administrateur. Apt-get install samba Une fois le serveur installé il est important de connaitre les comandes suivantes Accéder au fichier de configuration : nano /etc/samba/smb.conf Affiche si la syntaxe du fichier de configuration est bonne : testparm Redémarrer le serveur Samba : /etc/init.d/samba restart Composition et utilisation du fichier smb.conf nano /etc/samba/smb.conf La partie la plus importante une fois Samba installé est la préparation du fichier de configuration smb.conf, il est composé des parties suivantes : 3
[global] = Paramètres communs du serveur pour le partage de toutes les ressources voici les paramètres les plus importants à spécifier : Workgroup = nomdudomaine Nom du groupe de travail Security = user Un des paramètres les plus importants de Samba, il peut prendre la valeur de share, user, serveur et domain. User emule parfaitement la majeure partie des fonctionnalités de Windows NT en matière d authentification, de partage. Encrypt password = true Permetle chiffrement des mots de passe Domain master = yes Domain logons = yes Très important que ce paramètre soit spécifié afin de permettre à l utilisateur de s authentifier Logon script = script.bat Définit le script qui sera utilisé quand un utilisateur viens se loguer dans le domaine [netlogon] =Permet de faire exécuter un script d initialisation réeau par le poste client du domaine Path = répertoire ou nous pouvons trouver le script Public = no Le netlogon n a pas besoin d être publique Writable = no Cette ressource ne doit pas être modifiée par l utilisateur Locking = no permet à plusieurs utilisateurs d utiliser la même fichier en même temps [homes] = Permet à un utilisateur distant d accéder à son répertoire personnel sur la machine [profiles] = Zone ou sont rangés tous les profils suseptibles de se connecter. Créer un partage Un partage sous Samba est toujours créé dans le fichier de configuration : nano /etc/samba/smb.conf Il commence toujours par le nom du partage entre deux crochets : 4
[nomdupartage] (suivit des attributs suivants bien qu il ne soit pas indispensable de tous les mettre) Comment= commentaire Path= chemin d accès au fichier en question Browseable= yes/no afin qu il apparaisse ou non dans la liste des ressources partagées Guest ok = yes/no partage anonyme activé ou non Read only = yes/no est ce que l utilisateur à le droit de lire ou non Writeable= yes/no est ce que l utilisateur peut écrire ou non Valid users = liste des utilisateurs n ayant que le droit de lire, séparés par des espaces Write list = liste des utilisateurs ayant le droit de lire et d écrire séparés par des espaces (si un utilisateur est dans la write list il doit être aussi dans valid users) Une fois le serveur configuré ainsi que les partages créés, il nous faut d enregistrer le fichier de configuration, puis taper dans la commande testparm afin de contrôler que notre fichier soit correct, puis redémarrer le serveur avec la commande suivante : /etc/init.d/samba restart Configuration du fichier smb.conf Notre fichier de configuration sera quand à lui configuré de cette manière : 5
Création des utilisateurs Grâce à la commande useradd nomutilisateur nous pouvons créer des utilisateurs, puis les intégrer à samba via la commande smbpasswd a nomutilisateur Les utilisateurs à créer seront les suivants : eleve1, eleve2, eleve3, eleve4 professeur1, professeur2, professeur3, professeur4 la liste des utilisateurs est visible en tapant : nano /etc/passwd Les groupes Nous allons procéder à la création des groupes suivants : gr_eleves_professeurs eleve1, eleve2, eleve3 eleve4 professeur1, professeur2, professeur3, professeur4 gr_elevesc1_professeursc1 eleve1, eleve2 professeur1, professeur2, professeur4 gr_elevesc2_professeursc2 Eleve3, eleve4 professeur2, professeur3 gr_professeurs_discipline1 professeur1, professeur3 gr_professeurs_discipline2 professeur2, professeur4 6
gr_professeurs professeur1, professeur2, professeur3, professeur4 gr_professeursc1 professeur1, professeur2, professeur4 gr_professeursc2 professeur2, professeur3 Comment créer un groupe? Afin de créer un groupe, dans la commande en mode administrateur tapez la commande suivante : Addgroup [nomdugroupe] Pour voir la liste des groupes créés : Nano /etc/group Comment intégrer un utilisateur à un groupe? Pour ajouter l utilisateur dans le groupe tapez la commande suivante : adduser [user] [groupe] ou usermod ag [groupe] [user] Faire de même pour tous les groupes prévu ci-dessus : Arborescence disque Afin de créer des fichiers, il faut utiliser la commande mkdir 7
Ajouter un utilisateur et/ou un groupe en tant que propriétaire d un dossier chown [user] [dossier] -R Pour changer l utilisateur propriétaire d un dossier chgrp [groupe] [dossier] -R Pour changer le groupe propriétaire d un dossier chown [user] :[groupe] [dossier] R Pour changer l utilisateur ET le groupe pour un dossier Changer les droits d un dossier Changer les droits d un dossier nécessite certaines explications : Pour commencer, sous Linux, la lecture, l écriture et l exécution ont tous les trois une valeur qui peut s additionner afin de déterminer ce qu on appelle un droit. (Avoir un droit d exécution signifie qu on peut accéder au dossier) Par exemple : Lecture : 4 Ecriture : 2 Exécution : 1 Donc si nous souhaitons avoir un droit en lecture écriture, il nous faut donc : lecture(4) + écriture (2) + exécution (1) =7 8
Si nous souhaitons avoir un droit en lecture seulement : Lecture (4) + exécution (1) = 5 Les droits d un dossier contient trois chiffres : Un chiffre pour les droits de l utilisateur propriétaire Un chiffre pour les droits du groupe propriétaire Un chiffre pour les Autres (users qui ne sont ni utilisateur, ni groupe propriétaire) Nous pouvons voir ces droits en tapant la commande ls lia Nous pouvons constater ici, pour le dossier eleve1 la ligne suivante : rwx rwx - - - Ce qui signigie que root à le droit 7 à savoir lecture et écriture et le groupe elevesc1_professeursc1 à le même droit. Les Autres ont le droit 0 Pour finir, afin de changer nos fameux droits, il faut utiliser la commande suivante : chmod xxx [dossier] R (xxx représente ici nos chiffres pour configurer les droits) Configuration des droits des dossiers de l école Nous considérons ici que les droits des «Autres» sont à zéro par conséquent ces droits ne sont pas présents dans le tableau ci-dessous. 9
Utilisateur Groupe Ecole root 7 gr_eleves_professeurs 5 Classe root 7 gr_elevesc1_professeursc1 5 C1 root 7 gr_elevesc1_professeursc1 5 C1/ressources root 7 gr_elevesc1_professeursc1* 7 C1/travaux root 7 gr_elevesc1_professeursc1 7 C2 root 7 gr_elevesc2_professeursc2 5 C2/ressources root 7 gr_elevesc2_professeursc2* 7 C2/travaux root 7 gr_elevesc2_professeursc2 7 Discipline root 7 gr_professeurs 5 Discipline/D1 root 7 gr_professeurs_discipline1 7 Discipline/D2 root 7 gr_professeurs_discipline2 7 Eleves root 7 root 7 Eleves/eleve1 eleve1 7 gr_professeurc1 5 Eleves/eleve2 eleve2 7 gr_professeurc1 5 Eleves/eleve3 eleve3 7 gr_professeurc2 5 Eleves/eleve4 eleve4 7 gr_professeurc2 5 Professeur root 7 gr_professeurs 5 Professeur/professeur1 professeur1 7 root 7 Professeur/professeur2 professeur2 7 root 7 Professeur/professeur3 professeur3 7 root 7 Professeur/professeur4 professeur4 7 root 7 *se référer aux partages du fichier smb.conf Une fois les utilisateurs et groupes configurés pour chaques dossiers grâce à la commande chown [user] :[groupe] [dossier] il est temps de passer à la configuration des droits pour ces mêmes fichiers avec la commande chmod xxx [dossier] -R 10
Passons maintenant à la création de nos partages Configuration des partages Nous allons mettre en place les partages suivants : Un partage général afin d accéder à la racine des dossiers de l école Un partage pour les professeurs et les élèves afin qu ils accèdent directement à leurs dossiers personnels Deux partages pour les dossiers ressources dans l arborescence C1 et C2 qui représentent des cas particuliers Partage général 11
Ici browseable est à «yes» cela permet aux utilisateurs de profiter de leurs droits d écriture si les droits paramétrés dans le dossier le permet également. La ligne «hide files = /ressources» permet de cibler tous les dossiers contenant le nom «ressources» car comme c est un fichier qui à sa propre configuration de partage, il est inutile de le laissé visible à cet endroit. Partage professeurs et élèves Sur ces deux partages vous pouvez constater qu à la fin de la ligne «path» il y a %u qui est une variable de Samba qui cible le nom de l utilisateur courant. Donc si l utilisateur professeur1 est connecté, alors le chemin se transformera en /home/samba/ecole/eleves/professeur1 Cette technique représente un réel avantage si un fichier du même nom est présent, cela permet à l utilisateur d avoir un lecteur réseau directement ciblé sur son fichier personnel. Partage des dossiers ressources 12
La particularité des fichiers ressources est qu ils sont disponibles en écriture pour plusieurs professeurs et seulement en écriture pour quelques élèves. Cela pose un réel problème dans la mesure ou il est impossible d affecter plusieurs groupes propriétaires d un dossier et encore moins de leurs donner des droits différents. Une solution consiste à déclarer un groupe propriétaire au dossier ressources, qui contiendra tous les acteurs concernés peu importe leurs droits. Ce groupe aura un droit de lecture et écriture dans le dossier. La configuration va se faire au niveau du fichier de configuration de Samba : «valid user = gr_elevesc1_professeursc1» permet à tous les utilisateurs du groupe de se connecter au répertoire partagé «Read only = yes» donne aux utilisateurs du groupe un droit en lecture «Write list = professeur1 professeur2 professeur3» donne un droit en écriture pour ces 3 professeurs du groupe. Via cette technique, nous parvenons à fournir les droits nécessaires à deux groupes de personnes (les élèves et les professeurs) avec seulement un groupe propriétaire du dossier. Automatiser le montage des lecteurs réseaux Afin d éviter aux utilisateurs de configurer eux même leurs propres lecteurs réseaux et dans le souci de fournir un service optimal, il est important d automatiser l accès aux fichiers de l école. Via net use la syntaxe est la suivante : Net use [lettre de lecteur] : \\[nom DuServeur]\[nomDuPartage] 13
Nous rajouterons ici net time qui à la fonction de synchroniser l heure de l ordinateur client à celui du serveur afin d éviter tout problèmes vis-à-vis de la création/modification de fichiers ainsi que de l ouverture/fermeture des sessions clientes. Ce script de configuration aura pour extention.bat et sera acheminé dans l arborescence qui est indiquée dans le partage [netlogon] du fichier smb.conf : Il faudra donc créer cette arborescence sur notre distribution Debian pour y placer ce document. Intégration d un poste client (windows seven) Maintenant que la configuration de notre serveur est terminée, il est temps d intégrer notre ordinateur client, pour faire cela, plusieurs étapes sont nécessaires : Créer une machine cliente et l intégrer sous Samba afin qu elle soit reconnue Changer des clés de registres sur la machines cliente pour permettre l intégration Procéder à l intégration de la machine cliente. Créer une machine cliente et l intégrer sous Samba Pour commencer, nous devons prendre le nom de notre machine cliente : Appuyez simultanément sur la touche Windows + touche pause : 14
Notre machine s appelle donc : CLIENT-PC Nous allons l intégrer comme machine cliente dans notre distribution Debian avec la commande suivante : Useradd [nommachinecliente]$ (ne pas oublier le symbole du dollar à la fin de la commande) Maintenant, il faut l intégrer dans Samba avec la commande suivante : smbpasswd a m [nommachinecliente] Changer des clés de registres sur la machines cliente pour permettre l intégration Afin d intégrer notre client au domaine, il est indispensable de changer certaines clés de registres : Cliquez sur le bouton démarrer et tapez regedit 15
Accédez maintenant à l arborescence suivante : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters Changer la valeur de DomainCompatibilityMode à 1 Changer la valeur de DNSNameResolutionRequired à 0 C est fait! votre machine peut maintenant se logger au serveur, car maintenant, elle est connue de ce dernier. Intégration d un client dans le domaine Pour intégrer votre client appuyez sur la touche Windows + pause Cliquez sur modifier les paramètres 16
Cliquez sur le bouton radio «Membre d un domaine» Renseignez le nom du domaine et entrez les identifiants d un utilisateur qui à les droits de se connecter sur ce dernier 17
Notre client fait maintenant partie du domaine ADRAR Validation des autorisations mises en place dans le cahier des charges Validation avec un élève Maintenant que notre client est intégré au domaine, nous allons nous connecter en tant que élève1 : Il est à noter que nos lecteurs sont bien présents grâce au script d ouverture. Comme nous sommes connectés avec un élève de la classe 1, le lecteur «ressourcesc2» n arrive pas à accéder au dossier ce qui est normal : 18
L élève 1 peut normalement : Ecrire dans son dossier personnel Ne peut pas accéder aux dossiers de ses camarades 19
Ne peut pas écrire dans le dossier ressourcesc1 Peut écrire dans le dossier travaux 20
Comme prévu via la configuration de partage, seul le dossier travaux est visible dans le dossier C1 L élève n a pas accès aux dossiers mutualisés des professeurs 21
Validation avec un professeur Le lecteur ressourcesc2 est toujours inactif car notre professeur fait parti de la classe1. Nous pouvons voir également que cette fois ci, c est le lecteur partageprofesseur qui est présent car aucuns noms d élèves est présent sur cette session donc la ligne correspondant au montage d un lecteur réseau pour les élève n a pas marché. Notre professeur peut normalement écrire dans son dossier personnel Il peut également écrire dans le dossier ressources du dossier C1 22
Il peut accéder au dossier en lecture seule à un dossier d un élève de sa classe Ne peut pas accéder au dossier d un élève qui n est pas dans sa classe 23
Cas particulier : validation avec le professeur 2 Le professeur2 est un cas particulier car il s occupe des classes 1 et 2, il a donc accès aux dossiers des élèves et aux dossiers ressourcesc1 et C2 : Nous pouvons voir ci-dessous que les lecteurs réseaux de ressourcesc1 et C2 sont tous deux disponibles Il peut accéder au dossier de tous les élèves en lecture 24
25