tp linux : linux-samba serveur de fichiers pour utilisateurs wi
Transcription
tp linux : linux-samba serveur de fichiers pour utilisateurs wi
TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS I LA MISSION Votre entreprise cherche maintenant à réduire le coût des licences. Elle vous confie la mission qui consiste à tester différents logiciels libres, dont le serveur samba disponible sous linux et qui paraît-il permet de remplacer avantageusement un serveur fichier voir un serveur d’authentification de type Windows 2003 serveur. Après quelques recherches sur internet, vous comprenez que samba est un serveur permettant de rendre accessible des disques Linux à partir de machines Windows et de partager des imprimantes Linux pour des machines Windows. En approfondissant vos recherches, vous vous apercevez que samba peut aussi jouer le rôle de serveur d’authentification au moment de l’accès des utilisateurs au réseau. Vous comprenez aussi que le client « smbclient », disponible dans l’environnement linux, permet d’accéder à un disque Windows depuis une machine Linux et d’utiliser une imprimante Windows depuis une machine Linux. En administrateur réseau consciencieux, vous décidez dans un premier temps de tester les possibilités du serveur samba en tant que serveur de fichiers pour les utilisateurs de votre LAN. A partir de votre réseau réel, vous avez donc élaboré la plateforme de tests présentée ci-dessous : A l’issue de vos tests, vous devrez pouvoir expliquer le rôle et l’intérêt d’un serveur samba à votre direction. 1 Marie-pascale Delamare II ACTIVATION DU SERVEUR SAMBA EN SERVEUR DE FICHIERS II.1 OBJECTIFS Dans cette étude, nous souhaitons faire de Samba un serveur de fichiers sur lequel chaque utilisateur trouvera un répertoire de travail. L’utilisateur doit être authentifié pour atteindre son répertoire personnel. Attention cette authentification s’effectue juste au moment de l’accès aux ressources et non à la connexion réseau. Commencez par créer sur la machine XP réelle l’utilisateur « delmp » mot de passe « delmp » et l’utilisateur « toto » mot de passe « toto ». Déconnectez-vous sous Windows et reconnectez-vous sous le nom d’utilisateur « delmp » mot de passe « delmp ». Lancez votre machine virtuelle Linux et créez ensuite sur la machine Linux virtuelle, l’utilisateur « toto » mot de passe « toto ». Connectez-vous une fois sous ce nom pour créer le bureau de cet utilisateur. Changez le nom de votre machine virtuelle Linux. Il ne doit pas y avoir de noms en double sur le réseau. Nb : Ce Tp n’a pas pour ambition d’être exhaustif sur Samba. Certains paramètres ne seront pas abordés. Si vous voulez approfondir, il faudra le faire en utilisant les ressources internet, les forums de discussion, les fichiers d’aide de samba (apt-get update puis apt-get install samba-doc). II.2 INSTALLATION II.3 apt-get update apt-get install samba VÉRIFICATIONS PRÉALABLES Vérifiez sur votre machine Linux que les deux démons smbd et nmbd sont disponibles dans le répertoire /usr/sbin. S’ils sont présents Samba est installé, il reste à le configurer en modifiant le fichier /etc/samba/smb.conf. Commande passée en mode console pour vérifier la présence des exécutables : __________________________________________________________________________________ Avant d’effectuer le paramétrage vérifiez si ces démons sont lancés automatiquement au démarrage de votre machine En vérifiant les processus lancés commande : _____________________________________________ En vérifiant que vous trouvez un script samba dans les répertoires contenant les scripts lancés au démarrage : __________________________________________________________________________________ __________________________________________________________________________________ 2 Marie-pascale Delamare II.4 PARAMÉTRAGE DE SAMBA EN CONTRÔLE AU NIVEAU DES UTILISATEURS (SERVEUR DE FICHIERS) Pour paramétrer le serveur Samba, il faut configurer le fichier /etc/samba/smb.conf en utilisant un éditeur quelconque. Les modifications terminées vous devrez relancer Samba vous-même par la commande : /etc/init.d/samba {stop start restart}. Pour commencer dans la section [global], indiquez le nom du groupe de travail et le nom du serveur samba, en saisissant les champs suivants : #Change this to the workgroup/NT-domain name your samba server will part of workgroup = DOMXY # server string is the equivalent of the NT Description field server string = %h server (Samba %v) Puis vous devez dé-commenter la ligne suivante, pour indiquer comment faire la résolution des noms NETBIOS : # What naming service and in what order should we use to resolve host names # to IP addresses name resolve order = lmhosts host wins bcast Dans la section Authentification, dé-commentez la ligne suivante, pour passer en mode de sécurité utilisateur : # "security = user" is always a good idea. This will require a Unix account # in this server for every user accessing the server. See # /usr/share/doc/samba-doc/htmldocs/Samba-HOWTO-Collection/ServerType.html # in the samba-doc package for details. security = user Dans la section Misc, dé-commentez la ligne suivante, pour faire de votre serveur Samba, l’explorateur maître du domaine (celui qui gère l’affichage du voisinage réseau) : # Domain Master specifies Samba to be the Domain Master Browser. If this # machine will be configured as a BDC (a secondary logon server), you # must set this to 'no'; otherwise, the default behavior is recommended. domain master = auto Dans la section Share Definitions, dé-commentez les lignes suivantes pour autoriser le partage des répertoires personnels: # Un-comment the following (and tweak the other settings below to suit) # to enable the default home directory shares. This will share each # user's home directory as \\server\username [homes] comment = Home Directories browseable = no # By default, \\server\username shares can be connected to by anyone # with access to the samba server. Un-comment the following parameter # to make sure that only "username" can connect to \\server\username valid users = %S # File creation mask is set to 0600 for security reasons. If you want to # create files with group=rw permissions, set next parameter to 0664. create mask = 0600 # Directory creation mask is set to 0700 for security reasons. If you want # to create dirs. with group=rw permissions, set next parameter to 0775. directory mask = 0700 3 Marie-pascale Delamare II.5 LINUX SAMBA ET UTILISATEURS ASSOCIÉS Tous les accès à la machine Linux depuis des machines Windows, passent d’abord par le serveur SAMBA. C’est donc son paramétrage qui s’applique avant le paramétrage LINUX pour les droits d’accès. Tous les utilisateurs SAMBA sont définis dans un fichier dont le nom est /var/lib/samba/passdb.tdb.. Lorsque vous créez un utilisateur via l’interface graphique celui-ci n’est pas créé dans les fichiers SAMBA. Vous devez donc le rajouter. Pour cela vous utiliserez la commande : pdbedit –a nomDeUtilisateur. Pensez à modifier le mot de passe de l’utilisateur par la commande smbpasswd suivie du nom de l’utilisateur, par exemple smbpasswd delmp Pour visualiser les utilisateurs du serveur SAMBA, vous utiliserez la commande : pdbedit –L -v II.6 TEST DU FONCTIONNEMENT DU SERVEUR SAMBA Vérifiez que vos deux démons nmbd et smbd sont bien lancés : ______________________________ Lancez la commande testparm pour vérifier le paramétrage de votre serveur. Vérifiez qu’aucun filtrage iptables ne gènera vos connexions par la commande iptables –L –v. Pour vérifier les partages activés, passez la commande smbclient –L nomDuServeurSamba. Pour vérifier la résolution des noms Netbios, tapez la commande nmblookup NomDuServeurSamba et la même pour votre client windows. Vérifier tout le domaine nmblookup ‘*’ Essayez de vous connecter à un des partages du serveur samba en tapant la commande : smbclient //NomDuServeurSamba/delmp –U delmp. Si vous arrivez à vous connecter vous devez voir le prompt SMB> et en tapant la commande help connaître les différentes commandes mises à votre disposition. Votre serveur samba fonctionne en local. Sur la machine Windows, tapez la commande net view \\NomDuServeurSamba en fenêtre dos. Vous devez voir les partages activés. Votre serveur samba fonctionne en réseau. III III.1 UTILISATION DES RESSOURCES LINUX UTILISATION DES RÉPERTOIRES HOMES Notre serveur Linux est un serveur de fichiers. Via le réseau, chaque utilisateur peut accéder à son répertoire personnel pour enregistrer ses fichiers (chaque utilisateur est donc déclaré sur la machine Linux). Depuis la machine Windows, cliquez sur Voisinage réseau, puis sur la machine Linux. Que voyezvous ? ____________________________________________________________________________ Essayez d’accéder à votre répertoire personnel. Que se passe-t-il ? ____________________________ Voyez-vous d’autres répertoires personnels?______________________________________________ Créez un fichier via Windows. Droits attribués sous Linux ? _________________________________ 4 Marie-pascale Delamare Créez un répertoire via Windows. Droits attribués sous Linux ? _______________________________ Sur une autre machine Windows disponible dans la salle, changez le « workgroup » pour qu’il corresponde au vôtre « DOMXY » et connectez-vous en rentrant dans la fenêtre réseau un autre nom d’utilisateur connu sous votre Linux et sous Samba, par exemple « toto » mot de passe « toto ». Que se passe-t-il dans le voisinage réseau ? _______________________________________________ Rentrez un nom inconnu sur Linux. Que se passe-t-il ? ______________________________________ III.2 UTILISATION D’UN PARTAGE PUBLIC Créez un nouveau répertoire essai sous la racine et créez dans ce répertoire un fichier texte. Pour partager ce répertoire, faîtes démarrer puis « Paramètres du système », choisissez « Partages » puis « Partages de fichiers » et cochez les options tel qu’indiqué ci-dessous. Cliquez ensuite sur « Ajouter » et partagez votre répertoire en mode public avec écriture possible. Afficher de nouveau le contenu du fichier /etc/samba/smb.conf. _______________________________ Repérez les modifications survenues. Depuis la machine Windows, cliquez sur Favoris réseau, puis sur la machine Linux. Que voyezvous ? ____________________________________________________________________________ Essayez de modifier le fichier texte précédemment créé. Que se passe-t-il ? _____________________ Vérifiez sur la machine linux les droits positionnés sur ce fichier. Modifiez les si nécessaires. Refaites une tentative. Que se passe-t-il ? _______________________________________________________ On constate donc que même avec un partage public, Linux continue de vérifier les droits d’accès aux objets manipulés. III.3 UTILISATION D’UN PARTAGE LIMITÉ À UN GROUPE Vos deux utilisateurs « delmp » et « toto » sont dans deux groupes différents. 5 Marie-pascale Delamare Créez un nouveau répertoire groupe sous la racine et créez dans ce répertoire un fichier texte. Donnez ce répertoire à « delmp » et au groupe « delmp », et donnez au groupe « delmp » le droit de modifier le répertoire. Faites de même pour le fichier texte. __________________________________________________________________________________ __________________________________________________________________________________ Pour partager ce répertoire, nous allons éditer le fichier /etc/samba/smb.conf dans l’éditeur vim. En fin de fichier, créez un nouveau paragraphe identique à celui du répertoire /essai. Supprimez ensuite l’option guest ok = yes (le partage n’est pas public) et rajoutez l’option valid users = @delmp. Cette dernière option n’autorise l’accès à ce répertoire que pour les utilisateurs rattachés au groupe de l’utilisateur « delmp ». Redémarrez samba : _________________________________________________________________ Depuis la machine Windows, cliquez sur Favoris réseau, puis sur la machine Linux. Que voyezvous ? __________________________________________________________________________________ Essayez de modifier le fichier .txt Que se passe-t-il ? __________________________________________________________________________________ Sur une autre machine Windows disponible dans la salle, changez le « workgroup » pour qu’il corresponde au vôtre « DOMXY » et connectez-vous en rentrant dans la fenêtre réseau un autre nom d’utilisateur connu sous votre Linux et sous Samba, par exemple « toto » mot de passe « toto ». Depuis la machine Windows, cliquez sur Favoris réseau, puis sur la machine Linux. Que voyez-vous ? __________________________________________________________________________________ Essayez de modifier le fichier .txt Que se passe-t-il ? __________________________________________________________________________________ 6 Marie-pascale Delamare TP LINUX : LINUX-SAMBA SERVEUR DE DOM AINE POUR MACHINE WINDOWS I LA MISSION Vous décidez maintenant de tester le serveur samba en tant que contrôleur de domaine. A partir de votre réseau réel, vous avez donc élaboré la plateforme de tests présentée ci-dessous : Cette fois vous travaillez par groupe de deux élèves, en effet rattacher une machine Windows à un domaine, nécessite son redémarrage. Au redémarrage votre machine virtuelle sera arrêtée et donc votre authentification à la connexion au réseau impossible. Vous ne conservez donc qu’un serveur Linux virtuel et vous utilisez la machine XP de votre voisin comme client de votre Lan. II UTILISER LINUX/SAMBA COMME CONTRÔLEUR DE DOMAINE On peut travailler en client/serveur en ayant pour serveur un serveur Linux et des clients Windows, en lieu et place d’un serveur Windows et des clients Windows. 7 Marie-pascale Delamare Pour paramétrer le serveur Samba en contrôleur de domaine, il faut configurer le fichier /etc/samba/smb.conf en utilisant un éditeur quelconque. Les modifications terminées vous devrez relancer Samba vous-même par la commande : /etc/init.d/samba {stop start restart}. Dans la section Domains, dé-commentez les lignes suivantes, pour faire de votre serveur Samba un contrôleur de domaine : # Is this machine able to authenticate users. Both PDC and BDC # must have this setting enabled. If you are the BDC you must # change the 'domain master' setting to no # domain logons = yes Les lignes suivantes permettent de spécifier le répertoire dans lequel enregistrer le profil errant. # # # # # ; # The following setting only takes effect if 'domain logons' is set It specifies the location of the user's profile directory from the client point of view) The following required a [profiles] share to be setup on the samba server (see below) logon path = \\%N\profiles\%U Another common choice is storing the profile in the user's home directory logon path = \\%N\%U\profile Nota : Attention vous devez vérifier que chaque utilisateur peut écrire dans son répertoire personnel soit writable = yes dans la section [homes] Les lignes suivantes permettent de connecter directement le répertoire de l’utilisateur sur le lecteur Z. # The following setting only takes effect if 'domain logons' is set # It specifies the location of a user's home directory (from the client # point of view) logon drive = Z: logon home = \\%N\%U Toutes les demandes d’authentification réseau effectuées à la connexion, seront désormais prises en charge par le serveur Linux/Samba. Mais pour que cela fonctionne nous devons d’abord créer un compte pour la machine cliente dans les fichiers de samba. Pour parvenir à effectuer cette manipulation nous devons retirer le paramètre invalid user = root dans le fichier /etc/samba/smb.conf # If you are using encrypted passwords, Samba will need to know what # password database type you are using. passdb backend = tdbsam ; invalid users = root et rajouter le compte root dans le fichier /var/lib/samba/passdb.tdb avec la commande pdbedit – a root ou smbpasswd root si seul le mot de passe doit être changé. Les comptes spéciaux réservés aux machines sont créés avec des commandes spécifiques. Sous linux, on peut créer un groupe de machines avec : addgroup --gid 2000 windows. Puis, toujours dans la section Domains, rajoutez dans le /etc/samba.smb.conf le paramètre suivant : add machine script = su –c «/usr/sbin/useradd -g 2000 -d /dev/null -s /bin/false %u” root. 8 Marie-pascale Delamare Cette commande créera un compte pour une machine dans le groupe windows sans répertoire home et sans shell associé et nous exécuterons cette commande en étant en administrateur du serveur linux. Il n’y a donc aucune connexion possible avec ce compte. Cette création de compte s’effectue au basculement du mode poste à poste au mode client/serveur sur la machine Windows. Vous avez édité le /etc/samba/smb.conf vous devez relancer samba. ___________________ Affichez de nouveau le contenu du fichier /etc/samba/smb.conf. ______________________________ Sur la station Windows de votre voisin, vous devez changer votre paramétrage réseau pour passer d’un paramétrage poste à poste à un paramétrage client/serveur. Ce que vous savez faire. Sur la machine linux, vérifiez le contenu du fichier /etc/passwd. Que constatez-vous ? _____________ __________________________________________________________________________________ Sur la machine linux, vérifiez le contenu du fichier /var/lib/samba/passdb.tdb. Que constatez-vous ? _ __________________________________________________________________________________ Connectez-vous avec un user connu de Linux, avec un user inconnu. Conclusion ? ________________ __________________________________________________________________________________ Vous remarquerez que le lecteur z : est automatiquement associé au répertoire home de l’utilisateur (car le paramètre logon drive = z : et le paramètre logon home = \\%N\%U) et qu’un profil a été créé dans le répertoire profile du répertoire home de l’utilisateur (car le paramètre logon path = \\%N\%U\profile). III CRÉATION DE SCRIPTS DE CONNEXION Pour gérer des scripts de connexion nous devons créer un répertoire partagé sur la machine linux de nom /netlogon qui contiendra les scripts à exécuter. Dans un éditeur, modifiez le fichier /etc/samba/smb.conf pour dé-commenter et modifier les lignes suivantes dans la section Shared Définitions : # Un-comment the following and create the netlogon directory for Domain Logons # (you need to configure Samba to act as a domain controller too.) [netlogon] comment = Network Logon Service path = /netlogon guest ok = yes writable = no share modes = no Ce partage /netlogon va nous permettre de gérer des scripts de connexion. Ces scripts de connexion sont des fichiers « .bat » (donc des fichiers de commandes DOS) qui sont enregistrés sur le serveur Linux dans le répertoire /netlogon et qui sont lancés sur la station Windows au moment de la connexion. Nota : ces scripts doivent être créés avec un éditeur DOS. Le paramètre suivant doit aussi être dé-commenté et modifié dans la section Domains # # # # The following setting only takes effect if 'domain logons' is set It specifies the script to run during logon. The script must be stored in the [netlogon] share NOTE: Must be store in 'DOS' file format convention logon script = logon.cmd 9 Marie-pascale Delamare Si on écrit logon script = %G.bat, le même script sera lancé pour tout un groupe. Le script portant alors le nom du groupe. Ce groupe doit être le groupe principal auquel appartient l’utilisateur, c’est à dire le groupe apparaissant dans le fichier /etc/passwd). Si on écrit logon script = %U.bat, on lancera un script par utilisateur. Le script portant alors le nom de l’utilisateur. Vous devez ensuite créer votre script dans un éditeur Dos, donc sur la machine Windows puis vous l’enregistrez sur la machine Linux dans le répertoire correspondant au partage netlogon soit ici le répertoire : /netlogon que vous aurez pris soin de créer et sur lequel vous avez mis les droits nécessaires (au moins lecture et exécution pour tout le monde). Contenu du script : net use p: \\nomserveursamba\groupe ou essai (Vous pouvez utiliser tous les lecteurs libres sur votre machine windows sauf z: réservé pour le répertoire home de l’utilisateur). Enregistrer ce script sous le nom de votre utilisateur « nomDeUtilisateur ».bat. Arrêter et relancer le serveur samba. ____________________________________________________ Connectez-vous sous le nom de l’utilisateur. Le script s’exécute-t-il ? Que fait-il ? ____________________________________________________ __________________________________________________________________________________ 10 Marie-pascale Delamare