M18 Tri 2019 Samba Ofppt
M18 Tri 2019 Samba Ofppt
M18 Tri 2019 Samba Ofppt
SECTEUR NTIC
TECHNIQUES DE RESEAUX INFORMATIQUES
(TRI)
Niveau Technicien spécialisé
Consignes
Consigne Temps conseillé
Lire et discuter les concepts théoriques 3h dont 1h30 en classe.
Effectuer les activités pratiques proposées selon 7h dont 3h30 en classe.
l'ordre et les consignes de votre formateur.
Répondre au défi 2h
Répondre aux questions de synthèse. 1h
Rapport à rendre dans une semaine incluant le 2h
déroulement des activités, les réponses aux
questions de synthèse et le défi.
Discussion de synthèse en classe 1h en classe
I. NFS :
Introduction :
NFS (NETWORK FILE SYSTEM) est un protocole standard de partage réseau entre machines
Unix, créé par SUN vers 1980. Il comprend l'ajout de fonctionnalités supplémentaires (dans la
couche session au-dessus de TCP/IP), les RPC=(Remote Procedure Calls)
Une machine joue le rôle de serveur de fichiers. Elle est appelée serveur NFS, et on dit qu'elle
exporte tout (arborescence racine /) ou partie de son système de fichiers, en le partageant sur le
réseau.
Une partie de l'arborescence d'une machine Linux "serveur", est exportée ce qui lui permet
d'être intégré dans le système de fichiers d'une machine Linux "cliente".
Comme toute ressource extérieure doit être intégrée dans le système de fichiers Linux, l’accès à
ce partage ne pourra être permis qu'à l'aide d'un processus de montage :
L'utilisateur peut monter cette arborescence exportée par le serveur, sur un point de montage, de
façon tout à fait semblable au montage de systèmes de fichiers.
Le montage peut s'effectuer en cours de session de travail par la commande mount ou au
démarrage. Il suffit pour cela d'inclure la description du montage sur une ligne de /etc/fstab.
NFS utilise des appels de procédure à distance (Remote Procedure Calls) pour router les
demandes entre les clients et les serveurs .
Le fichier /etc/exports :
Ce fichier contient la liste des exportations. Sur chaque ligne, on précise un répertoire du
système de fichiers, suivi par la liste des machines distantes clientes autorisées à les monter. Si
cette liste est vide, toutes les stations accessibles sont autorisées.
# repertoire liste-machines (liste-options)
/home/data linux2(rw) centos02(ro)
/usr/bin linux1(ro) centos02(ro)
Configuration du client :
Il faut tout d'abord créer un répertoire sur la machine cliente qui servira comme point de
montage. Par exemple :
mkdir /mnt/part
Puis on effectue le montage, sur le point de montage :
mount -t nfs linux1:/home/data /mnt/part
II. SAMBA :
Introduction :
Samba est un projet libre, développé en C et diffusé sous licence GPL v3.
Il est développé depuis 1992 par une équipe de passionnés : la "Samba team", composée d'une
trentaine de personnes. L'initiateur du projet se nomme Andrew Tridgell, à l'époque étudiant à
l'Université Nationale d'Australie. Son but initial était de pouvoir partager des fichiers entre ses
machines DOS et SUN.
Samba est actuellement un projet internationalement reconnu et de plus en plus utilisé dans le
domaine professionnel. Il a évolué pour devenir une suite d'outils très complets permettant une
interconnexion totale avec (principalement) les outils Microsoft.
Samba utilise le protocole SMB (Server Message Block) pour partager les fichiers et les
imprimantes sur une connexion réseau. Les systèmes d'exploitation qui prennent en charge ce
protocole incluent Microsoft Windows (à travers son Voisinage Réseau), OS/2 et Linux.
Quand on se connecte à un serveur Samba, on lui passe un nom d'utilisateur. C'est le nom
d'utilisateur Windows. Samba va alors chercher pour le même nom d'utilisateur dans la base de
données des mots de passe Unix, donc habituellement le fichier /etc/passwd. S'il le trouve, le
serveur Samba utilisera cette entrée pour avoir, au moins, un ID utilisateur Unix valide pour
accéder aux répertoires et aux fichiers. Il peut aussi utiliser le fichier /etc/passwd pour valider le
mot de passe reçu. Mais seulement s'il n'est pas configuré pour utiliser les mots de passe encryptés.
Auquel cas il validera le mot de passe avec un autre fichier, par exemple /etc/samba/smbpasswd
(paramètre smb passwd file) .
COMPOSANTS DE SAMBA :
Le service Samba est constitué d'un serveur et d'un client, ainsi que de quelques outils
permettant de réaliser des services pratiques ou bien de tester la configuration.
Le serveur est constitué de deux applications (appelées démons):
● smbd qui fournit services d'authentification et d'accès aux ressources .
● nmbd qui permet de de montrer les services offerts par Samba (affichage des
serveurs Samba dans le voisinage réseau, ...)
Le client smbclient fournit une interface permettant de transférer des fichiers, accéder à des
imprimantes .
Le client smbmount permet monter une ressource samba.
Le client smbumount permet démonter une ressource samba.
La commande testparm vérifie la syntaxe du fichier smb.conf . Il est conseillé d'exécuter cet
utilitaire à chaque modification manuelle du fichier smb.conf.
Installation de samba :
L'installation du client samba se fait via les paquetages : samba-client et samba-common.
On peut aussi installer le client samba via Internet :
yum install samba-client samba-common
L'installation du serveur samba se fait via les paquetages : samba et samba-common.
On peut aussi installer le serveur samba via Internet :
yum install samba samba-common
Si l'on veut configurer samba via l'outil graphique SWAT (Samba Web Admin Tool), il faut
CONFIGURATION DE SAMBA :
La configuration de Samba est effectuée par l'intermédiaire d'un fichier de configuration
unique: smb.conf. Ce fichier est situé dans le répertoire /etc/samba.
Ce fichier décrit les ressources que l'on désire partager, ainsi que les permissions/restrictions
qui leur sont associéeS. Le fichier smb.conf se découpe selon des rubriques (chacune référencé par
une ligne contenant le nom de la section entre crochets) comprenant chacune un ensemble de lignes
de paramètres du type attribut = valeur. Une ligne commençant par un # est une ligne de
commentaires.
Il existe 3 sections principales:
● La section [global] définit les paramètres généraux sur le serveur.
● La section [homes] définit le partage des répertoires personnels .
● La section [printers] définit les imprimantes partagées par le serveur .
La cible de toutes ces commandes peut évidemment être une machine Samba ou une machine
Microsoft Windows (adresse IP ou nom Netbios). Pour plus de détails concernant les commandes,
on utilise soit les pages de man soit l'option --help.
# Identification Netbios
workgroup = Workgroup
netbios name = linux1
# Securite
encrypt passwords = yes
La directive "passdb backend" permet de spécifier où seront stockés les comptes utilisateurs
autorisés à se connecter au serveur. Nous avons ici choisi de les stocker dans un fichier de type tdb.
Il s'agit d'un fichier de base de données. Nous aurions pu choisir de nombreux autres "backends"
tel ldap ou encore mysql. smbpasswd est l'ancien format de fichier utilisé par Samba 2.
La directive "security" permet de sélectionner qui va effectuer l'authentification. Puisque nous
avons choisi de maintenir une base de comptes locale, nous spécifions "user", ce qui signifie que
Samba va se référer au "passdb backend" spécifié ci-dessus pour authentifier les utilisateurs. Nous
aurions pu, dans le cas d'un serveur membre d'un domaine, rediriger les authentifications vers le
contrôleur principal de domaine en spécifiant "domain" ou vers un serveur particulier en
spécifiant "server".
La directive "encrypt passwords" permet d'activer le chiffrement des mots de passe.
La gestion des logs est effectuée par deux directives : "log file", qui permet de spécifier le fichier
de logs utilisé et "log level", qui permet de préciser le niveau de log souhaité. Nous remarquons
pour "log file" l'utilisation d'une variable qui est %m. Cette variable sera interprétée par Samba
comme étant le nom netbios de la machine cliente. Nous aurons ainsi un fichier de log par machine
connectée. Il existe de nombreuses autres variables disponibles pour la plupart des directives
décrites dans "man smb.conf".
La directive "time server", active un serveur de temps sur le serveur Samba. Les clients
pourront se synchroniser avec une commande du type "net time \\linux1 /set /y" dans un prompt
DOS.
La directive "veto files", empêche l'accès à certains fichiers ou répertoires sur le serveur. Ici, on
interdit l'accès aux fichiers et répertoires nommés lost+found et .recycle (ils doivent être séparés par
des / dans la déclaration).
La gestion des comptes sous Samba :
Le rôle principal de Samba en tant que serveur est de permettre à des comptes de type Windows
de se connecter à une machine Unix. Or la gestion des comptes sous Windows est totalement
différente de celle sous Unix. Tout le travail de Samba va être d'effectuer correctement une relation
entre les deux types de comptes. Cette relation est nécessaire pour pouvoir, par exemple, définir les
droits de l'utilisateur au niveau du système de fichiers.
Samba établit donc une correspondance entre les utilisateur Unix et les utilisateurs Windows.
Cette table de correspondance est en fait le fichier tdb déclaré au début du fichier de configuration.
Ceci implique : a chaque utilisateur Samba doit correspondre un utilisateur Unix.
la création d'un compte Samba se fait en DEUX étapes : d'abord l'ajout du compte utilisateur sur
la machine UNIX, ensuite l'ajout de ce compte à la base Samba. Au sein de sa base, Samba
complètera les informations concernant le compte UNIX par des informations purement Windows,
telles un SID, un répertoire home, un script de logon, etc...
Le compte Samba de l'utilisateur est manipulé traditionnellement pas la commande smbpasswd.
Il peut être manipulé par les commandes pdbedit ou net.
Le compte Samba peut être stocké à l'emplacement spécifié par la directive "passdb backend".
Il peut être situé dans un fichier (smbpasswd, tdbsam), sur un annuaire (ldapsam, nisplussam) ou
dans une base de donnée (mysql). Des possibilités d'export vers un fichier xml existent également.
# [...]
# Dans quel cas mapper une connexion vers un compte anonyme ?
map to guest = Bad User
un partage tmp est configuré. Il sera accessible à partir de toute machine via son nom UNC
\\Linux1\tmp.
Chaque section de partage doit au moins contenir une directive "path", indiquant quel
répertoire est partagé par cette section. Ici, il s'agit du répertoire /tmp.
On autorise l'écriture dans ce partage, via la directive "writeable", et on le rend visible via
la directive "browseable" ("browseable = no" équivaut à [tmp$]).
Création d'un partage avec authentification :
Soit la configuration suivante à ajouter au fichier de configuration smb.conf :
Il faut par la suite créer les utilisateurs. Ici, on va créer le groupe sambausers et deux
utilisateurs Samba : ali et maha.
groupadd sambausers
useradd -g sambausers ali
useradd -g sambausers maha
smbpasswd -a ali
smbpasswd -a maha
Le mot de passe demandé par la commande smbpasswd est le mot de passe à taper depuis
les clients Windows.
Pour supprimer un utilisateur on utilise les commandes smbpasswd et userdel. Par
exemple :
smbpasswd -x maha
userdel maha
la commande pdbedit permet de lister des informations sur les utilisateurs Samba. Par
exemple :
pdbedit -L liste les utilisateurs connus par Samba.
pdbedit -vL permet d'obtenir plus de détails sur les comptes.
pdbedit -v ali liste les informations concernant l'utilisateur ali.
Un certain ensemble d'utilisateurs sont pré-définis dans le fichier passdb.tdb lors de
l'installation des packages Samba. On peut toutefois utiliser un autre fichier .tdb qui ne devrait
contenir que des comptes définis.
Samba a besoin de deux types de comptes car il gère deux types de droits :
● les droits liés au partage: définis sur le fichier smb.conf.
● les droits sur le système de fichiers: déduit par samba à partir des droits
Unix.
Objectifs :
Configurer nfs.
Durée : 2h
Phase d’apprentissage : Base
Matière d’œuvre et/ou : 2 machines virtuelles Linux Centos
outillage Adressage statique configuré
Firewall iptables et SELinux désactivés sur les 2
VMs
Scénario :
Ce TP est à réaliser avec deux stations de linux Centos ayant une seule carte réseau chacune et
pouvant communiquer entre elles: linux1 et linux2.
Le service NFS (Network File System) assure la publication sur le réseau (à partir d'un serveur)
et l'utilisation (à partir d'un client) d'une arborescence de fichiers. Pour l'utiliser, nous devons
préparer le serveur puis le client.
Travail à faire :
1. Vérifier est ce que le package nfs est installé
rpm -qa|grep -i nfs
2. Afficher les informations de nfs
rpm -qi nfs-utils
3. Vérifier les fichiers nfs
rpm -ql nfs-util
4. Vérifier est ce qu'il y a des fichiers montés nfs
showmount 192.16.1.2
5. Vérifier l'état du service nfs
chkconfig --list nfs
cat /etc/exports
chkconfig nfs on
service nfs start
netstat -ntlp
vérifer le port 111 rpc
6. Exporter les dossiers pour les client distants (sur linux1 192.168.1.2)
Créer le répertoire /projectx et y mettre quelque fichiers.
Changer les droits du dossier et son contenu chmod 777 /projectx && chmod 777 /projectx/f1
Accéder au fichier /etc/exports et saisir la ligne
/projectx *(rw) #enregistre
Cette ligne signifie de rendre le dossier disponible en lecture et écriture pour tous les clients
exportfs -v
exportfs -a
7. Vérifier les répertoire exportés
showmount --exports 192.168.1.2
showmount --all 192.168.1.2
Cette commande permet de vérifier les répertoires montés nfs.
8. Accéder aux dossiers à partir des client distants (sur linux2 192.168.1.3)
mkdir /projectx
mount -t nfs 192.168.1.2:/projectx /projectx
Puis vérifier les points de montage (/projectx doit figurer)
mount
cd /projectx
vi f1 #on peut modifier
mkdir rep1 # le dossier sera crée (rw)
9. Réexporter /projectx en lecture seule (sur 192.168.1.2)
nano /etc/exports
/projectx 192.168.1.3 (rw) 192.168.1.4(ro)
enregistrer
exportfs -av
10. Accéder aux dossiers à partir des client distants (sur linux2 192.168.1.3)
mkdir /projectx
mount -t nfs 192.168.1.2:/projectx /projectx
Puis vérifier les points de montage (/projectx doit figurer)
mount
cd /projectx
Activité G002 :
Objectifs :
Configurer SMB Client.
Durée : 1h30
Phase d’apprentissage : Entrainement.
Matière d’œuvre et/ou : La machine virtuelles Linux Centos « linux1 ».
outillage Adressage statique configuré
Firewall iptables et SELinux désactivés.
La machine Windows seven « Clientwin02 ».
Scénario :
Cette activité vise à partager un fichier sur une machine Windows et y accéder à partir d'une
machine linux.
Travail à faire :
1. Vérifier est ce que les packages smbclient est installé
rpm -qa|grep -i samba
2. Vérifier les fichiers de samba client
rpm -ql samba-client
/usr/bin/findsmb -- trouver les clients samba dans votre subnet
/usr/bin/smbclient -- permet de se connecter aux partage
/usr/bin/smbtar
/usr/bin/smbtree -- équivalent de favoris réseau
3. Créer un partage réseau sous windows
créer et partager le dossier « salpart » tout en donnant un CT à tout le monde
4. Trouver les partages réseau
findsmb
smbtree
5. Se connecter au partage réseau sur le client 7
smbclient -U tri // Clientwin02/sahpart
tri est un compte d'utilisateur crée sous Windows 7.
//Clientwin02/sahpart est le nom du partage.
le nom de la machine a été vérifié par la commande smbtree
smb : >help
mkdir smbtest
6. récupérer les fichiers test à partir de la machine 7 vers linux
EL GHARADI Mustapha Page 12 sur 18 Samba TRI2-Mars 2014
التستقللية إحدى مفاتيح النجاح
M18-Administration des réseaux informatiques. ISTA NTIC Béni Mellal
mget test*
!ls et !pwd
pour voir l'emplacement de copie de fichier sous linux
7. Transférer les fichiers de linux vers windows 7
cd /home/tux1
echo "fichier test " >tux1f1
echo "fichier test " >tux12
mput tux*
8. Récupérer un fichiers à partir de la machine 7 vers linux en utilisant le nom par une
seule commande
smbget -u tri smb://Clientwin02/sahpart/smbtest/cours.txt
9. Récupérer tout le contenu d'un dossier à partir de la machine 7 vers linux en le
compressant vers un fichier.tar par une seule commande
smbtar -s Clientwin02 -x sahpart -u tri -t sahpart.tar
ls
tar -tvf sahpart.tar
10. Accéder à un partage caché sous windows 7.
smbclient -U ADMINISTRATEUR // Clientwin02/c$
Activité G003 :
Objectifs :
Configurer SMB Server.
Durée : 2h
Phase d’apprentissage : Transfert.
Matière d’œuvre et/ou : Les deux machine virtuelles Centos« Linux 1 » et
outillage « Linux2 ».
Adressage statique configuré
Firewall iptables et SELinux désactivés.
La machine Windows seven « Clientwin02 ».
Scénario :
Cette activité vise à partager un fichier sur une machine linux et y accéder à partir d'une
machine linux ou Windows.
Travail à faire :
linux1 :192.168.1.100 ClientWindows :192.168.1.101 linux2: 192.16.1.102
Sous linux1:
mkdir /smb-data1
Activité G004 :
Objectifs :
Installer et configurer un serveur WINS 2008
Server.
Scénario :
Les employés de l’agence « ANDR » utilise une ancienne application qui utilise le service WINS
pour localiser et accéder aux serveurs de base de données.
Vu que l’agence n’est pas encore prête pour changer d’application, vous avez décidé de déployer
le service dans votre nouvel environnement Windows 2008 server.
La maquette à utiliser est :
Travail à faire :
1. Sur Gestionnaire de serveur, utilisez l'Assistant Ajout de fonctionnalités pour installer la
VI. Défi:
Effectuez un travail de recherche comparatif des versions de samba.
Peut-on configurer un serveur samba GNU Linux en tant que contrôleur de domaine pour un
environnement Windows ?
Si la réponse est oui proposer une maquette de test à configurer et tester.