Travaux Pratiques - Initiation aux Réseaux IP - UFR

Transcription

Travaux Pratiques - Initiation aux Réseaux IP - UFR
 Travaux Dirigés Introduction aux réseaux IP Sylvain MONTAGNY sylvain.montagny@univ‐smb.fr Bâtiment chablais, bureau 13 04 79 75 86 86 TP1 : Analyse de trame, routage TP2 : Simulation sur Packet Tracer TP3 : Installation de serveur HTTP / FTP Travaux pratique 1
Analyse de la configuration IP
Routage
Ce travail pratique d’introduction sera réalisé sous une machine LINUX. Un certain nombre de manipulations peuvent être réalisées soit en ligne de commande, soit via l’interface graphique. 1 Analyse de la configuration IP :
1.1 Votre configuration IP
Question 1 :
Préciser toutes les configurations que doit posséder une machine pour pouvoir se connecter à INTERNET. Consulter la configuration IP de votre machine avec la commande ifconfig –a dans un terminal de commande. Question 2 :
Détaillez en justifiant : Votre adresse réseau, les plages d’adresses des machines possibles dans votre réseau, l’adresse de broadcast. Le premier routeur que vous rencontrez en sortant de votre réseau est votre passerelle par défaut. Cette passerelle est visible en consultant la table de routage de la machine : commande netstat –nr (ou route). Vérifier la communication avec cette machine. Question 3 :
Expliquer clairement le contenu des champs important de la table de routage qui a été affiché avec la commande précédente. Votre machine est très probablement configurée en automatique (DHCP). Nous allons reprendre sa configuration actuelle pour la passer en configuration fixe (adresse IP fixe). Remplissez tous les champs permettant de vous connecter au réseau sauf l’adresse DNS. Tester la bonne connexion avec les machines de votre réseau. Question 4 :
navigateur? Quelle est maintenant le seul moyen pour consulter une page web depuis votre L’adresse IP du serveur DNS de l’université est 193.48.129.137. Rajouter ce serveur dans votre configuration et vérifier que tout fonctionne. 1.2 Test de communication entres machines
A l'aide de la commande "ping", testez la communication entre votre machine et les diverses machines de la salle (ping s’arrête par la touche Ctrl+C ). Essayez d’abord ping adresse‐IP‐machine. Noter le résultat obtenu. Essayez ensuite ping nom‐de‐machine. Noter le résultat obtenu. Essayez ensuite les mêmes manipulations vers des machines du réseau Internet: en utilisant des noms Internet (ex. www.yahoo.fr), puis avec les adresses IP de ces machines. 1.3 Correspondance nom-machine >> adresse IP
Vérifier que vous ayez accès à internet sur votre machine. Il existe deux moyens pour effectuer la résolution d’un nom en adresse IP. 1.3.1 Résolution locale
Le premier est un moyen local et consiste à définir un fichier de correspondance sur chaque machine. Ainsi chaque machine sera capable de résoudre les noms qui sont définis dans son fichier. Sur une machine de type Unix, ce fichier est /etc/hosts. Evidemment le fichier /etc/hosts ne permet pas de faire la résolution de nom de l’ensemble des machines du réseau Internet. Il ne peut comporter que les noms des machines proches. Tester la communication avec les noms de machines présents sur votre fichier à l’ouverture. Rajouter 2 machines des binômes les plus proches de vous. Faites des essais de ping en utilisant les noms des machines. 1.3.2 Résolution par requête DNS
Le second moyen de résolution des adresses est un moyen global qui permet de résoudre n’importe quel nom de machine du réseau Internet. Il repose sur le principe DNS (Domain Name Service). Chaque domaine est géré par un serveur DNS qui connaît les correspondances pour l’ensemble des machines qu’il gère. Par contre chaque résolution nécessite une requête au serveur DNS. Question 5 :
Donner l’adresse du serveur DNS de l’université. Rechercher le serveur DNS fourni par google et essayer de naviguer sur internet en l’utilisant dans votre configuration IP. Question 6 :
Réaliser un schéma global de votre réseau avec toutes les informations que vous avez relevé depuis le début du TP. Vous devez être précis et mettre seulement les informations pertinentes. Tout ce que vous pensez nécessaire à la compréhension globale de votre accès à internet devra être cité sur votre schéma. 2 Analyse du réseau local
Wireshark est un outil puissant d’analyse des trames circulant sur le réseau. Pour l’utiliser vous devez le lancer en « root ». Depuis un terminal, passer en mode root en tapant la commande sudo su. Lancer wireshark en tapant la commande wireshark. Figure 1 : Présentation du logiciel Wireshark Wireshark est divisée en 4 parties identifiées de haut en bas. 1. Menu de commande, permet de lancer une capture, d'enregistrer, de filtrer des captures 2. Un résumé de chaque trame capturée 3. Une vision hiérarchique et détaillée de l’encapsulation de la trame sélectionnée 4. Les valeurs hexadécimales réellement capturées par la carte réseau. Faire un test d’acquisition de trames circulant sur votre réseau pour vérifier que tout fonctionne. Capture>Interface>Start 2.1 Protocole ARP
Déterminez l'adresse Ethernet/MAC de votre carte réseau (ifconfig –a). Visualisez la table ARP (arp –a) lorsque vous avez communiqué avec une machine de votre réseau local. Pour effacer votre table arp, vous pouvez utiliser la commande arp –d @IP. Question 7 :
En utilisant wireshark et en vous plaçant dans une situation adéquate, relever les trames permettant de faire la correspondance entre l’adresse IP et l’adresse MAC. Expliquer clairement ce que vous avez relevé avec les adresses MAC source et destination et le protocole de chacun des messages. 2.2 Protocole http
Relevez avec wireshark une requête vers un serveur web que vous faites avec votre navigateur. Question 8 :
Retrouvez dans une des premières trames de l’échange la requête http permettant de dire au serveur web la page que nous souhaitons consulter. Dessiner sur votre copie la trame complète avec le nom de tous les protocoles qui encapsule cette requête applicative. Quel type de donnée contient la réponse à cette requête. Question 9 :
Noter le port source et le port destination utilisé pour la requête ainsi que pour la réponse. Expliquer la cohérence de votre résultat. 2.3 Confidentialité des données circulant sur un réseau
Nous allons effectuer une acquisition de trames lors d’une consultation d’une boite mail en utilisant un logiciel client POP (Outlook, Thunderbird, ou d’autres…). Vous devez au préalable configurer le client mail en lui indiquant le serveur mail POP et SMTP à contacter ainsi que le login utilisateur et le mot de passe. Il est important que vous cochiez l’option de laisser les messages sur le serveur afin que vous tout le monde puisse télécharger les messages. Question 10 : Réaliser un schéma expliquant comment et avec qui vous communiquez lorsque vous récupérez et que vous envoyez des emails sur les comptes ci‐dessous (laposte.net et gmail). Configurer le client mail de votre choix pour récupérer les emails. Vous ferez une capture de trame pour les deux essais suivants : Essai avec un compte laposte.net : ■
Adresse mail : [email protected] ■
Compte : info324.univ ■
Password : etudiant ■
Serveur POP : pop.laposte.net sans chiffrement ■
Serveur SMTP : smtp.laposte.net sans chiffrement Essai avec un compte Gmail : ■
Adresse mail : [email protected] ■
Compte : info324.univ ■
Password : etudiant ■
Serveur POP : pop.gmail.com SSL ■
Serveur SMTP : smtp.gmail.com TLS Question 11 : Pour quel compte a‐t‐on une défaillance en terme de sécurité, expliquer pourquoi ? Quel est le protocole qui vous permet de réceptionner le courrier, quel est le protocole qui vous permet de l’envoyer depuis votre client mail. 3 Modification de la configuration:
Vous allez maintenant constituer un réseau isolé avec les machines de la salle en modifiant les configurations IP de votre machine. L’adresse réseau que vous utiliserez sera 192.168.0.0/24 Mettez‐vous d’accord pour attribuer une adresse IP à chaque machine. Dessiner votre réseau sur le tableau de la salle. Configurez votre machine en utilisant ifconfig et vérifiez ensuite la cohérence des différents paramètres renvoyés par ifconfig ‐a. La configuration en ligne de commande d’une carte réseau est réalisée par la commande : ifconfig INTERFACE ADRESSE_IP netmask MASK Tester la communication entre les différentes machines. 4 Routage direct
4.1 Consultation de la table de routage :
Le routage direct est celui qui s’effectue lorsque les machines source et destination sont sur le même réseau physique. La table de routage se consulte avec la commande netstat –nr (ou la commande route). La suppression d’une entrée dans la table s’effectue avec la commande : route del –net ADRESSE_RESEAU netmask MASK gw ADRESSE_PASSERELLE Question 12 : Supprimer toutes les entrées de vos tables de routage, puis essayez de nouveau la commande ping. La communication passe‐t‐elle toujours entre les machines ? Quel est le message renvoyé ? Expliquez vos réponses. Recréer l'entrée pour le réseau local dans la table et vérifiez que le ping passe à nouveau : route add –net ADRESSE_RESEAU netmask MASK gw ADRESSE_PASSERELLE INTERFACE 4.2 Analyse des paquets échangés lors d’un ping :
Vous allez étudier les paquets échangés lors d’un routage direct entre deux machines sur un réseau isolé. Lancez un ping ne générant qu’une seule demande d’écho et faites une capture de trame en même temps. Vous devez vous placer la dans la situation où l’émetteur du ping ne connait pas l’adresse MAC du destinataire. Vous pouvez utiliser l’option –c pour n’envoyer qu’un seul ping : ping ‐c 1 @IP Question 13 : Remplir le schéma suivant en précisant toutes les trames qui circulent sur le réseau. Vous noterez pour chaque trame, les adresses MAC source et destination, les adresses IP et les protocoles utilisés. Poste 1 Poste 2
Travaux pratique 2
Routage IP
Simulation de réseau Packet Tracer
Le début de ce travail pratique reprend les notions que vous avez vues lors du TP1. Les manipulations sont donc à réalisées sous LINUX. Nous travaillerons ensuite sur un logiciel de simulation réseau (Packet Tracer) qui est disponible sous WINDOWS. 1 Mécanisme de routage:
1.1 Routage indirect
Vous avez besoin de 3 postes pour ce montage (mettez‐vous par groupe de 3 binômes) Binôme 1 : PC0 Binôme 2 : PC1 Binôme 3 : Routeur (PC2) Réaliser le montage suivant : Le routeur sera réalisé à l’aide d’une machine configurée en mode routeur en lançant la commande : echo “1” > /proc/sys/net/ipv4/ip_forward Question 1 :
AVANT DE COMMENCER, décrivez toutes les manipulations très précisément et tous les tests que vous allez mettre en place afin de faire fonctionner votre réseau. Décrivez ensuite les résultats obtenus. | 1 2 Simulation par Packet Tracer
2.1 Objectifs
L’objectif est de simuler différents réseaux en utilisant le logiciel Packet Tracer afin de comprendre le fonctionnement du routage. Vous devrez complètement structurer un réseau afin de faire fonctionner l’ensemble des communications entre les ordinateurs. 2.2 Première utilisation de Packet Tracer
Packet Tracer est un logiciel fourni par Cisco qui permet de simuler le fonctionnement de matériels réseaux. Dans ce TP, vous allez mettre en place un réseau relativement simple afin de vous familiariser avec les différentes fonctionnalités de Packet Tracer. 2.3 Réalisation
2.3.1 Schéma du réseau
Le réseau à simuler est le suivant : Ce réseau comporte 4 sous réseaux reliés ensemble par des routeurs. Les adresses IP des machines et des routeurs sont les suivants : Machines @IP Machines
@IP PC0 200.6.0.10 / 24 PC7
200.6.3.11 / 24
PC1 200.6.0.11 / 24 PC2 200.6.1.10 / 24 PC3 200.6.1.11 / 24 Server0
200.6.0.250 / 24
PC4 200.6.2.10 / 24 Server1
200.6.1.250 / 24
PC5 200.6.2.11 / 24 PC6 200.6.3.10 / 24 Tableau 1 : Adresses IP des machines du réseau | 2 Les interfaces séries WAN marquées d’un (*) doivent fournir l'horloge. Elles doivent être reliées avec un câble DCE. Routeur Int @IP
Routeur
Int @IP
Router0 Fa0/0 200.6.0.254/24
Router2
S0/0/0* 200.6.6.2 /30
Router0 Fa0/1 200.6.5.1/30
Router3
Fa0/0 200.6.3.254/24
Router0 S0/0/0* 200.6.8.1 /30
Router3
S0/0/0* 200.6.8.2 /30
Router1 Fa0/1 200.6.5.2 /30
Router3
Fa0/1 200.6.7.1 /30
Router1 Fa0/0 200.6.1.254 /24
Router1 S0/0/0* 200.6.6.1/30
Router2 Fa0/1 200.6.7.2 /30
Router2 Fa0/0 200.6.2.254/24
Table 2 : Adresse IP des Routeurs du réseau Faite un schéma complet exhaustif de votre réseau au fur et à mesure que vous réalisez votre câblage. Les éléments qui doivent apparaître en un seul coup d’œil sont : Les groupes de machines appartenant au même réseau, les adresses des réseaux, les masques de sous réseaux, les adresses des machines, les numéros des interfaces utilisées pour chaque connexion. 2.4 Saisie du schéma
Démarrer Packet Tracer. Cliquer sur End Device : Placer les PC, les serveurs PT, les routeurs 1841, les switches 2950T. Cliquer ensuite sur Connections et relier les différents composants par des câbles en cuivre (Copper) droits ou croisés ou des liaisons Serial DCE ou Serial DTE. Pour les liaisons, les types de câble réseau à utiliser sont les suivants : Câbles droits : Câbles croisés : ■
PC à Hub ■
Switch à Switch ■
PC à Switch ■
Hub à Hub ■
Switch à Routeur ■
Routeur à Routeur ■
PC à PC ■
Hub à Switch ■
PC à Routeur | 3 Pour les liaisons séries entres routeurs, il faudra rajouter le module WIC 2T au routeur. Ce module permet de rajouter une interface série afin de relier deux réseaux. Une des deux extrémités doit fournir une horloge (128000). Pour ajouter ce type d’interface, cliquer sur le routeur, puis il faut utiliser la souris en « glisser/déposer » dans un slot libre. Il faut aussi penser à éteindre le module (en cliquer sur l’interrupteur du module). 2.5 Configuration IP
Pour configurer une machine, choisissez l’onglet Config, puis choisissez votre interface à configurer. Une fois le schéma réalisé, vérifiez que vous arrivez à communiquer au sein de l’ensemble des sous réseaux. Pour cela vous enverrez deux possibilités : ■
Envoyer des Ping au sein du sous réseau, grâce à l’interface de commande : cliquez sur une machine > onglet Desktop > Command prompt. ■
Utiliser l’enveloppe graphique d’envoi des Ping : 1. Cliquer sur l’enveloppe pour ajourer une PDU (Protocol Data Unit) 2. Cliquer ensuite sur une machine source, puis sur la machine cible. 3. Un paquet ICMP (ping) est alors envoyé à la machine cible. 4. Le résultat du ping s’affiche en bas à droite. Vérifier les communications au sein de tous les sous‐réseaux. Le logiciel peut mettre un certain temps à se stabiliser. Commencez par tester le bon fonctionnement des machines les plus proches, puis, petit à petit, tester celui des machines les plus éloignées. 2.6 Configuration du routage
Nous allons maintenant configurer l’ensemble des machines et des routeurs afin que le réseau fonctionne totalement. C'est‐à‐dire que n’importe quel PC/Routeur peut joindre n’importe quel PC/Routeur : Cliquer sur les PC ou les routeurs Onglet Config>Routing>Static. Il est aussi possible de tester via PC>Desktop >Web Browser le bon fonctionnement des serveurs http. Faites vérifier les communications de l’ensemble de votre réseau. Faites valider par l’enseignant. 2.7 Simulation :
2.7.1 Fonctionnement de la simulation
Pour passer en mode simulation, vous devez : 1. Cliquer sur l’onglet suivant en bas à droite de l’écran 2. Supprimer le contenu du scénario en cours (delete) : 3. Envoyer un PDU simple entres deux PC de votre choix. | 4 4. Cliquer sur Capture / Forward pour avancer pas à pas. 2.7.2 1er test
Effacer le scénario de simulation en cours. Effacer la table ARP de PC0 (arp –d). Faites un envoi de PDU entre PC0 et PC1. Question 2 :
Pourquoi ? Combien de paquet sont prêt à être émis à partir de PC0 dans la simulation à venir ? Cliquer une fois sur Capture / Forward, puis cliquer sur le paquet sur le Switch. Noter les adresses MAC source et destination. Question 3 :
Faites la même chose à chaque Capture / Forward et remplissez le schéma suivant. PC0 PC1 2.7.3 2ème test
Effacer le scénario de simulation en cours. Effacer la table ARP de PC0 (arp –d) et celle du PC 2. Faites un envoi de PDU entre PC0 et PC2. Question 4 :
PC0 Remplissez le schéma suivant. Router 0 Router 1
PC2 | 5 Travaux pratique 3 Installation de services Web Serveur HTTP / Serveur FTP 1 Objectifs
Le premier objectif de ce TP est d’installer et de configurer un serveur Web, c'est‐à‐dire un serveur utilisant le protocole applicatif HTTP. Nous utiliserons le service Apache sous linux pour réaliser notre serveur, le client http sera notre navigateur web. Par la suite, vous passerez en mode super utilisateur pour les commandes le nécessitant. Le second objectif est d’installer un serveur FTP (vsftpd) et un client ftp (filezilla) pour étudier succinctement le fonctionnement de ce service. 2 Serveur Apache
2.1 Installation de Apache
A l’aide de la commande suivante dans votre terminal, installer le serveur Apache : yum install httpd.i386
apt-get install apache2
// Sur distribution Centos
// Sur distribution Debian
Le dossier /etc/init.d sous linux liste les services présents sur la machine. Allez voir qu’un nouveau service correspondant à apache est apparu dans le dossier /etc/init.d. Commande de gestion des services apache : service httpd start
// Sur distribution Centos
service apache2 start
// Sur distribution Debian
service httpd restart
// Sur distribution Centos
service apache2 restart
// Sur distribution Debian
service httpd stop
// Sur distribution Centos
service apache2 stop
// Sur distribution Debian
| 1 Au démarrage, le service devrait être déjà lancé. Si cela n’est pas le cas, faites‐le. Dans tous les cas, chaque fois que vous faites une modification dans la configuration du serveur, il faudra redémarrer le service apache (restart). 2.2 Utilisation du serveur
Dans un navigateur web, on se connecte à un serveur distant en spécifiant le protocole utilisé (ici HTTP) puis son adresse IP (plus généralement son nom qui sera transformé en adresse IP). Connectez‐vous à votre serveur web local avec votre navigateur web local en utilisant : ■
Votre adresse IP sur le réseau (ifconfig) ■
Votre adresse IP localhost (127.0.0.1) ■
Votre nom de machine déjà défini dans le fichier /etc/hosts Question 1 :
Donner le contenu de l’URL que vous tapez dans le navigateur pour chacune des manipulations ci‐dessus. Donner le résultat de chacune des manipulations. Combien de trames sont échangées pour cette connexion en local sur votre serveur web ? 2.2.1 Modification de la page d’accueil Sur Centos : Dans la page d’accueil que vous obtenez, noter le répertoire où Apache vous propose de mettre vos pages web. En suivant la procédure expliquée sur la page d’accueil faite en sorte de ne plus avoir la page de présentation Apache en vous connectant sur votre serveur. Sur Debian : Le fichier /etc/apache2/sites‐available/default précise un champ nommé DocumentRoot. C’est le répertoire possédant les pages web à afficher. Question 2 :
Noter le répertoire où l’utilisateur doit mettre ses pages web. Quel est le nom obligatoire pour une page par défaut pour un site web ? Créer une page html par défaut en la personnalisant et tester son fonctionnement. Réaliser une nouvelle page nommée mypage.html avec un peu de contenu de votre choix. Question 3 :
Quel URL rentrez‐vous dans le navigateur pour atteindre votre page ? Renommer le fichier en index.html et vérifier à nouveau le fonctionnement de votre serveur depuis votre navigateur web. Question 4 :
Quel est le contenu affiché ? 2.3 Connexion au serveur web depuis une machine distante
Nous allons maintenant essayer de nous connecter à l’aide d’une autre machine. Vous allez former un réseau local avec votre binôme le plus proche. Vous vous connecterez sur leur serveur web. Ils feront de même avec votre serveur web. Question 5 :
Donner toutes les configurations que vous avez faites sur votre machine pour réaliser votre réseau local. | 2 Si vous n’arrivez pas à vous connecter mais que vous êtes certains de vos paramètres IP, il se peut que le pare feu soit activé. Désactiver le pare feu : service iptables stop
Question 6 :
A l’aide de Wireshark, visualisez les trames lors d’une connexion distante entre un client et un serveur web. Dessiner l’ensemble des trames circulant sur le réseau à l’aide du schéma ci‐dessous. Vous devez identifier : ■
L’ouverture de connexion TCP ■
La requête du client ■
La réponse du serveur ■
La fermeture de connexion Vous justifierez et expliquerez les trames que vous dessinez. Client Serveur
2.4 Configuration :
Avant toutes modifications, vous ferez une copie de ces fichiers de configuration que vous manipulez. Ceci vous permettra de vous prémunir de toute fausse manipulation. Sur Centos : Sur Centos, on étudie le fichier /etc/httpd/conf/httpd.conf. Aussi, une couche de sécurité supplémentaire est implémentée : Les SE Linux. Nous les désactiverons par la commande : /usr/sbin/setenforce 0
Sur Debian : On étudie les fichiers /etc/apache2/ports.conf. de configuration /etc/apache2/sites‐available/default et | 3 Question 7 :
Donner le numéro du port utilisé pour l’écoute des connexions entrantes sur votre serveur http. Donner la ligne du fichier vous donnant cette information ? Remplir sur le schéma suivant un échange de trame Client>Serveur puis Serveur>Client, en précisant sur les deux trames : ■
@MAC source, @MAC destination ■
@IP source, @IP destination ■
Port source, Port destination Client Serveur
Modifier votre fichier de configuration de votre serveur pour utiliser le numéro de port 1080. N’oubliez pas de redémarrer le service. Sur Debian Apache peut héberger plusieurs serveurs http (« Virtual Host ») sur la même machine physique (« Host »). Le numéro de port « Virtual Host » est utilisé pour différencier la réponse que fera le serveur en fonction du port utilisé. Le port d’écoute de ces « Virtual Host » sont configurables dans le fichier default du dossier /etc/apache2/site‐available/ ET dans le fichier /etc/apache2/ports.conf. Question 8 :
En vous documentant sur la forme d’une URL (adresse que vous avez rentrée dans votre navigateur), connectez‐vous sur votre serveur web en spécifiant explicitement le bon numéro de port. Notez et expliquez l’URL utilisée. Remettre le numéro de port initial. 2.5 Utilisation des User directory :
Il peut être intéressant lorsqu’un serveur est partagé entre plusieurs propriétaires d’une même entité (entreprise, université…) de donner à chaque gestionnaire du serveur une arborescence spécifique. Par exemple, sur notre serveur, si nous avons 2 utilisateurs (utilisateur1 et utilisateur2), des pages spécifiques à chaque utilisateur pourront être atteintes par les clients via les URL suivantes : http://@votreserveur/~utilisateur1 http://@votreserveur/~utilisateur2 Sur Centos : | 4 Après avoir trouvé et lu le paragraphe sur les UserDir du fichier httpd.conf, faites la manipulation simple qui permet d’activer les UserDir sur ce serveur. Sur Debian : Activer les userdir en utilisant la commande : a2enmod userdir Créer deux utilisateurs : utilisateur1 et utilisateur2 : useradd –m utilisateur1
useradd –m utilisateur2
Pour accéder au répertoire des utilisateurs nous donnons des droits de lecture des dossiers à tous : chmod –R 755 /home/utilisateur1/
chmod –R 755 /home/utilisateur2/
Créer des dossiers nommés public_html (mkdir public_html) dans chacun des répertoires racines des utilisateurs (/home/utilisateur1, /home/utilisateur2) Puis placer dans chacun des répertoires public_html des utilisateurs 1 et 2, un fichier index.html différent avec le contenu suivant : Vous êtes sur la page personnelle de l’utilisateur 1 !!! Vous êtes sur la page personnelle de l’utilisateur 2 !!! Vérifier que vous arrivez à atteindre les pages html des utilisateurs. 2.6 Réalisation d’un mini site web.
L’utilisateur 1 aura l’arborescence suivante : index.html
public_html
liste_cours.html
liste_TD.html
cours1.txt
TD1.txt
cours2.txt
TD2.txt
Dossier "cours"
Dossier "TD"
| 5 Vous devez être capable de naviguer à l’intérieur de l’arborescence de l’utilisateur 1 et d’avoir accès à tous les documents depuis une machine distante. Un lien en HTML est réalisé de la façon suivante : <a href="@ du lien (depuis le répertoire public_html)">Texte affiché</a>
Faite valider par l’enseignant. 2.7 Restriction d’accès par .htaccess
Les fichiers .htaccess peuvent être utilisés dans n'importe quel répertoire ou sous‐répertoire. Les principales raisons d'utilisation des fichiers .htaccess sont : ■
Gérer l'accès à certains fichiers ■
Protéger l'accès à un répertoire par un mot de passe ■
Protéger l'accès à un fichier par un mot de passe. ■
Définir des pages d'erreurs personnalisées 2.7.1 Principe des fichiers .htaccess Le fichier .htaccess est placé dans le répertoire dans lequel il doit agir. Il agit ainsi sur les permissions du répertoire qui le contient et de tous ses sous‐répertoires. Vous pouvez placer un autre fichier .htaccess dans un sous répertoire d'un répertoire déjà contrôlé par un fichier .htaccess. Le fichier .htaccess du répertoire parent reste en «activité » tant que les fonctionnalités n'ont pas été réécrites. 2.7.2 Empêcher l'accès à des ressources Un fichier .htaccess est composé de deux sections : Une première section contient les chemins vers les fichiers contenant les définitions de groupes et d'utilisateurs : ErrorDocument num_error chemin_fichier_error
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthName "Accès protégé"
AuthType Basic
■
ErrorDocument spécifie la page à afficher lorsque l’accès est empêché. Typiquement num_error est 401 pour un accès interdit à une ressource. Chemin_fichier_error est le chemin pour trouver la page html d’erreur. ■
AuthUserFile définit le chemin d'accès absolu vers le fichier de login et de mots de passe des utilisateurs qui sont explicitement autorisés à accéder à la ressource. ■
AuthName entraîne l'affichage dans le navigateur Internet de : « Tapez votre nom d'utilisateur et votre mot de passe. Domaine : "Accès protégé" » ■
AuthType Basic précise qu'il faut utiliser AuthUserFile pour l'authentification. Une seconde section contient la définition des conditions d'accès : | 6 <Limit GET POST>
Require valid-user
</Limit>
■
La balise LIMIT possède en attribut la valeur GET (en majuscule) et/ou la valeur POST, afin de définir le type de méthode du protocole HTTP auxquelles la restriction s'applique. ■
Require valid‐user précise que l'on autorise uniquement les personnes identifiées. Il est également possible de préciser explicitement le nom des personnes autorisées à s'identifier : require user {username} 2.7.3 Protection d’un répertoire Le plus souvent, on souhaite protéger l’ensemble du contenu d’un répertoire. Voici un exemple de fichier .htaccess : ErrorDocument 401 /error/error401.html
AuthUserFile /var/www/.pass
AuthName "Accès sécurisé à la page XXX"
AuthType Basic
<LIMIT GET POST>
Require valid-user
</LIMIT>
Réaliser une page d’erreur simple que vous placerez dans le dossier /var/www/error/. 2.7.4 5.2.4 Crypter les mots de passe Le fichier de mot de passe est un fichier texte devant contenir sur chacune de ses lignes le nom de chaque utilisateur suivi des deux points (:), puis du mot de passe crypté (la solution non cryptée n’est plus supportées par les navigateurs actuels). Voici un exemple de fichier de mots de passe chiffrés (ici .pass). utilisateur:YYam8h/9OU2aQ
gaetan:J2Jt7wQJ0piNA
Apache fournit un outil permettant de générer facilement des mots de passe cryptés (aussi bien sous Windows que sous Unix), il s'agit de l'utilitaire htpasswd accessible dans le sous‐répertoire /usr/bin. 2.7.5 Réalisation Placer vous dans le répertoire /var/www/. Utiliser l’utilitaire htpasswd afin de réaliser un fichier de mot de pass nommé .pass dans /var/www. Vous taperez htpasswd seul pour faire afficher les options pour faire fonctionner cette commande. Sur Centos : Dans le fichier de configuration /etc/httpd/conf/httpd.conf aller à la section 2 « Main server configuration ». Dans la partie <Directory /var/www/html> modifier : AllowOverride None en AllowOverride All Sur Debian : Editer le fichier /etc/apache2/sites‐available/default : | 7 Dans la section <Directory /var/www>
…
</Directory>
Modifier : AllowOverride None en AllowOverride All Cela permet de spécifier à Apache que les configurations faites dans le fichier .htaccess, écraserons les configurations déjà effectué par défaut par apache. Penser à redémarrer le serveur apache afin que vos modifications soient prises en compte. Question 9 :
Créez un fichier .htaccess qui demande de s’identifier pour accéder au répertoire nommé « secret » que vous créez à la racine de votre site. Utiliser un fichier de mot de passe contenant au moins 3 noms et vérifiez que seulement ceux‐ci fonctionnent. Vérifier aussi que votre page d’erreur fonctionne (cliquer sur annuler lors de la demande d’authentification). Faites valider par l’enseignant 3 Serveur FTP
Le service ftp sera testé sur deux machines distantes. ■
L’une contiendra le client FTP ■
L’autre le serveur FTP Installer le serveur FTP vsftpd sur la machine « serveur ». Sur Centos : yum install vsftpd
// Sur distribution Centos
Le dossier racine de votre serveur se trouve sous /var/ftp/pub. Sur Debian : apt-get install vsftpd
// Sur distribution Debian
Le dossier racine de votre serveur se trouve sous /srv/ftp. Créer plusieurs fichiers dans ce dossier afin que du contenu soit visible par les clients. Coté client, nous utiliserons dans un premier temps le navigateur web comme client FTP. Question 10 : Donner l’URL qu’il faut rentrer dans le navigateur web afin que vous puissiez avoir accès aux ressources du serveur FTP. | 8 Note : Si cela ne fonctionne pas, vérifier que le service FTP c’est bien lancé au démarrage : service httpd start
Le protocole FTP est en réalité un protocole qui demande une authentification. Ce n’est pas le cas d’après ce que vous venez de voir. En effet, ce protocole est souvent utilisé pour mettre à disposition des documents publics et il ne serait pas pratique de devoir s’identifier. Question 11 : En réalisant une capture de trames avec wireshark, récupérer l’identifiant et le mot de passe qui est en fait utilisé automatiquement pour la session FTP que vous avez ouverte avec votre navigateur web. Que pouvez‐vous en conclure. Installer le client filezilla sur votre machine yum install filezilla
apt-get install filezilla
// Sur distribution Centos
// Sur distribution Debian
Ce client FTP est bien plus complet et plus pratique notamment lorsque vous avez besoin de mettre à jour le contenu d’un serveur FTP. Tester la communication avec votre serveur FTP avec une connexion « anonymous » et essayer de récupérer le contenu du serveur | 9