I- apache :
C'est un serveur web couramment utilisé sur Internet ; il utilise la plateforme UNIX. Pour installer ce serveur web on a appliqué, sous un terminal , les commandes suivantes:
- sudo apt-get update
- apt-get install apache2 (pour l'installation)
- /etc/init.d/apache2 start (pour le démarrage )
quand l'installation a été achevée on a ouvret le navigateur sur l'adresse : 'http:// 127.0.0.1' ou
' http://localhost ' on a aperçu alors la page suivante: it worksLe fichier de configuration est donc obtenu en tapant sous le Terminal: - sudo gedit /usr/local/apache2/conf/httpd.conf
Le fichier httpd.conf est bien commenté et parle de lui-meme:#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See for detailed information.
# In particular, see
#
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/foo_log"
# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
# server as "/usr/local/apache2/logs/foo_log".
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path. If you point
# ServerRoot at a non-local disk, be sure to point the LockFile directive
# at a local disk. If you wish to share the same ServerRoot for multiple
# httpd daemons, you will need to change at least LockFile and PidFile.
#
ServerRoot "/usr/local/apache2" La directive Listen enjoint Apache à écouter plus d'une adresse IP ou port; par défaut Apache répond aux requêtes reçues sur toutes les interfaces IP, mais seulement celles arrivant sur le port donné par la directive Port. Listen peut être utilisée à la place de BindAddress et Port. Elle indique au serveur d'accepter des requêtes entrantes sur le port spécifié ou sur une combinaison adresse-port. Si le premier format est utilisé (avec seule mention d'un numéro de port), le serveur "écoutera" tous les ports spécifiés sur chacune des interfaces IP qu'il connaît, plutôt que sur le port donné par la directive Port. Si une adresse IP adresse IP est précisée en complément, le serveur restreindra son écoute à la combinaison adresse-port précisée. Mais on a toujours besoin de la directive Port qui permettent à Apache de générer les URL de retour vers votre serveur. Dans notre cas on a la configuration suivante: #
#Listen 12.34.56.78:80
Listen 80
Pour autoriser le serveur à accepter des connexions sur les ports 80 et 8000,on peut la modifier par: Listen 80 Listen 8000et pour autoriser un serveur à accepter des connexions sur deux "sockets" qualifiés, on écrit : Listen 192.170.2.1:80 Listen 192.170.2.5:8000
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/usr/local/apache2/htdocs"
DocumentRoot "/usr/local/apache2/htdocs" est le répertoire Racine du site , à savoir que tous les fichiers , répertoires , sous répertoires s'y trouvant seront en Ligne.
#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a
# container, that host's errors will be logged there and not here.
#
ErrorLog "logs/error_log"Permet de gérer les erreurs de requête client , document non trouvé , erreur interne , documents privés etc...
permet une gestion de contrôle d'accès fichier par fichier . Les sections sont traitées dans l'ordre où elles apparaissent dans le fichier de configuration
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
[FilesMatch "^\.ht"]
Order allow,deny
Deny from alL
Satisfy AlL
[/FilesMatch]
#
Permet un contrôle d'accès fichier par fichier, tout comme la directive files . Cependant, elle n'accepte qu'un argument sous forme d'expression régulière. on peut modifier la configuration précédente par exemple par:
[FilesMatch "\.(gif|jpe?g|png)$"]
qui correspondrait à la plupart des fichiers graphiques utilisés sur Internet.
#
[Directory "/usr/local/apache2/cgi-bin"]
AllowOverride None
Options None
Order allow,deny
Allow from all
[/Directory]
est utilisée pour "encapsuler" un groupe de directives applicables uniquement au réprtoire indiqué ainsi qu'à ses sous-répertoires. si l'accès par défaut d'Apache pour les sections est 'Allow from All'. Ceci veut dire que par défaut, Apache desservira tout fichier indiqué par une URL,mais si on modifie ceci à l'aide du bloc:
[Directory /]
Order Deny,Allow
Deny from All
[/Directory /]
dans ce cas l'accès par défaut d'apache pour les sections ne sera pas toujours autorisé .
Fonctionnement d'apache:
Au moment de son démarrage, Apache charge le fichier de configuration de machine locale et se met en attente de la requêtes sur les interfaces réseaux.
Lorsque on utilise le navigateur Web (un client HTTP) ;on effectue en fait une requête :
- Le client se connecte au serveur
Le client effectue une requête
HTTP sur le serveur, par
la métho
de GET du protocole
HTTP il lui
deman
de une page ;
Après l'analyse de la requête, le serveur renvoie la page concernée sous forme de code dont on peut spécifier le format de données
Une fois toutes les données envoyées, le serveur ferme la connexion ;
Parallèlement le client analyse et construit l'affichage à partir du code reçu
II-wireshark:
Wireshark est l'analyseur réseau le plus populaire du monde. Cet outil extrêmement puissant fournit des informations sur des protocoles réseaux et applicatifs à partir de données capturées sur un réseau.
La force de Wireshark vient de:
- sa facilité d'installation.
- sa simplicité d'utilisation de son interface graphique.
- son très grand nombre de fonctionnalités.
pour installer wireshark on a appliqué sous un Terminal les commandes suivantes:
- sudo apt-get install wireshark
puis on l'ouvre avec:
En ouvrant le navigateur à l'adresse http://127.0.0.1 on a aperçu it worksen retournant à wireshark on a obtenu :
- PANNEAU LISTE DES PAQUETS (PACKET LIST PANE):
Le panneau "liste des paquets" affiche tous les paquets capturés. on peut obtenir des informations telles que les adresses IP/MAC source ou destination, le numéro de port TCP/UDP ou le contenu des paquets.
- PANNEAU DETAILS DE PAQUET (PACKET DETAILS PANE):
Le panneau "détails de paquet" donne des informations en profondeur sur un paquet sélectionné dans le panneau "liste des paquets"
Au bas de la plate-forme, on trouve les informations suivantes:
-Si la capture est en cours ou stoppée.(dans notre cas: live capture in progress)
- Le nombre de paquets capturés. (P) (dans ce cas: 11)
- Le nombre de paquets affichés. (D) (dans ce cas: 11)
- Le nombre de paquets marqués. (M) (dans ce cas :0)Pour effectuer une capture, il faut aller dans le menu Capture / Interface (ou cliquer sur le bouton correspondant).
Une nouvelle fenêtre comportant la liste des interfaces réseaux disponibles va apparaitre:
Pour démarrer la capture il suffit de presser le bouton Start. Wireshark va alors capturer les paquets jusqu'à ce que le bouton Stop soit pressé. Pour analyser le contenu d'un paquet, il faut d'abord le sélectionner dans la liste des paquets capturés. par exemple on trouve de telles couches:
- couche 2 (Ethernet )
- couche 3 (Internet Protocol - IP)
- couche 4 (Transmission control protocol - TCP)
Et pour aller plus en détail, par exemple sur le niveau IP (là où se trouve les adresses source et destination), il suffit de cliquer sur la ligne en question.