Remerciement Nous tenons à remercier notre profe sseur encad rant Monsieur Abdelhamid BELMEKKI pour les conseils précieux qu’il nous a donné tout au long de la réalisation du mini-projet. Nous tenons à saluer son support génére ux durant tou te cette période.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Un serveur de messagerie électronique est un logiciel serveur de courrier électronique. Il a pour
vocation de transférer les messages électroniques d'un serveur à un autre. Un utilisateur n'est jamais en
contact direct avec ce serveur mais utilise soit un client de messagerie, soit un courrielleur web, qui se
charge de contacter le serveur pour envoyer ou recevoir les messages. La plupart des serveurs de
messagerie possèdent ces deux fonctions (envoi/réception), mais elles sont indépendantes et peuvent être
dissociées physiquement en utilisant plusieurs serveurs.
DHCP:
Le serveur DHCP (Dynamic Host Configuration Protocol) permet d’attribuer des adresses IP
dynamiques à chaque poste de travail, et ainsi de pallier aux ennuis d’une gestion rigoureuse de ces
adressages. En général, l’administrateur alloue des adresses IP statiques aux utilisateurs, ce qui devient
lourd à gérer en cas de croissance du réseau car si la mise à jour n’est pas rapidement et correctement
exécutée on peut se retrouver avec 2 mêmes adresses. Le serveur DHCP permet alors d’éviter les conflits
d’adresses et donc les problèmes sur le réseau
FTP:
Le serveur FTP (File Transfer Protocol) permet, comme son nom l'indique de transférer des fichierspar Internet ou par le biais d'un réseau informatique local (intranet). Si vous en avez l'autorisation, vous
pouvez télécharger et envoyer des fichiers sur un ordinateur distant faisant fonctionner un tel serveur.
DNS:
DNS (Domain Name System) est un système d’appellation d’ordinateurs et de services réseau organisé
selon une hiérarchie de domaines. Les réseaux TCP/IP tels qu’Internet utilisent DNS pour localiser des
ordinateurs et des services par le biais de noms conviviaux.
Pour faciliter l’utilisation des ressources réseau, des systèmes de noms tels que DNS permettent
d’établir une correspondance entre le nom convivial d’un ordinateur ou d’un service et d’autres
informations associées à ce nom, comme une adresse IP. Un nom convivial est plus simple à retenir que les
adresses numériques qui sont utilisées par les ordinateurs pour communiquer sur un réseau. La plupart des
utilisateurs préfèrent recourir à un nom convivial (par exemple, ventes.fabrikam.com) pour trouver un
serveur de messagerie ou un serveur Web sur un réseau, plutôt qu’à une adresse IP telle que 157.60.0.1.Lorsqu’un utilisateur entre un nom DNS convivial dans une application, les services DNS résolvent le nom
Apache HTTP Server, souvent appelé Apache, est un logiciel de serveur HTTP produit par l'Apache
Software Fondation. C'est le serveur HTTP le plus populaire du Web. C'est un logiciel libre avec un type
spécifique de licence, nommée licence Apache.
Apache est conçu pour prendre en charge de nombreux modules lui donnant des fonctionnalités
supplémentaires : interprétation du langage Perl, PHP, Python et Ruby, serveur proxy , réécriture d'URL,
négociation de contenu, protocoles de communication additionnels, etc. Néanmoins, il est à noter que
l'existence de nombreux modules Apache complexifie la configuration du serveur web. En effet, lesbonnes pratiques recommandent de ne charger que les modules utiles : de nombreuses failles de sécurité
affectant uniquement les modules d'Apache sont régulièrement découverts.
Les possibilités de configuration d'Apache sont une fonctionnalité phare. Le principe repose sur une
hiérarchie de fichiers de configuration, qui peuvent être gérés indépendamment. Cette caractéristique est
notamment utile aux hébergeurs qui peuvent ainsi servir les sites de plusieurs clients à l'aide d'un
seul serveur HTTP.
Le protocole SSH
1-Introduction :
SSH ou Secure Shell est un protocole qui facilite les connexions sécurisées entre deux systèmes à l'aide
d'une architecture client/serveur et permet aux utilisateurs de se connecter à distance à des systèmes hôte de
serveurs. Toutefois, contrairement à d'autres protocoles de communication à distance, tels que FTP ou
Telnet, SSH crypte la session de connexion et empêche ainsi tout agresseur de recueillir des mots de passenon-cryptés.
SSH est conçu pour remplacer les applications de terminal plus anciennes et moins sécurisées qui sont
utilisées pour se connecter à des hôtes distants, comme Telnet ou Rsh. Un programme similaire
appelé Scp remplace des programmes moins récents conçus pour copier des fichiers entre des hôtes, tels
que Rcp. Étant donné que ces applications plus anciennes ne cryptent pas les mots de passe entre le client
et le serveur, il est recommandé d'éviter autant que possible de les utiliser. En effet, l'utilisation de
méthodes sécurisées pour se connecter à des systèmes distants, réduit les risques aussi bien pour le système
SSH offre les précautions suivantes au niveau de la sécurité :
Après avoir effectué une connexion initiale, le client peut s'assurer que sa connexion est établie
avec le même serveur que lors de sa session précédente.
Le client transmet ses données d'authentification au serveur au moyen d'un cryptage solide 128
bits.
Toutes les données envoyées et reçues lors d'une session sont transférées au moyen d'un cryptage128 bits, rendant ainsi le décryptage et la lecture de toute transmission interceptée extrêmement
difficile.
Étant donné que le protocole SSH crypte tout ce qu'il envoie et reçoit, il peut être utilisé pour sécuriser
des protocoles autrement vulnérables.
Red Hat Enterprise Linux inclut le paquetage général OpenSSH (un ensemble d'outils informatiques
libres permettant des communications sécurisées sur un réseau informatique en utilisant le protocole SSH.)
ainsi que les paquetages serveur OpenSSH (openssh-server) et client OpenSSH (openssh-clients). Notezégalement que les paquetages OpenSSH ont besoin du paquetage OpenSSL (openssl) qui installe de
nombreuses bibliothèques cryptographiques importantes permettant à OpenSSH de fournir des
communications cryptées.
3-Pourquoi utiliser SSH :
Les utilisateurs d'ordinateurs malintentionnés disposent d'une variété d'outils pour interrompre,intercepter et réacheminer le trafic réseau afin de s'octroyer l'accès à un système. D'une manière générale,
ces menaces peuvent être répertoriées de la manière suivante :
Interception d'une communication entre deux systèmes — Dans ce scénario, le pirate peut se
trouver quelque part sur le réseau entre les entités qui communiquent, pouvant ainsi copier toute
information qui est transmise entre elles. Le pirate peut intercepter et garder les informations ou
peut les modifier avant de les envoyer au destinataire prévu
Usurpation de l'identité d'un hôte — Grâce à cette technique, le système d'un agresseur estconfiguré de telle manière qu'il apparaît comme étant le destinataire souhaité d'une transmission. Si
cette stratégie fonctionne, le système de l'utilisateur ne détecte pas qu'il communique en fait avec le
mauvais hôte.
Ces deux techniques permettent d'intercepter des informations potentiellement confidentielles et si cette
interception est effectuée pour des raisons hostiles, le résultat peut être catastrophique.
L'utilisation du protocole SSH pour effectuer une connexion au shell à distance ou pour copier des
fichiers permet de réduire considérablement ces menaces au niveau de la sécurité. En effet, le client et
serveur SSH utilisent des signatures numériques pour vérifier leur identité respectives. En outre, toute
communication entre le système client et le système serveur est cryptée. Toute tentative d'usurpation
d'identité à une extrémité ou à une autre de la communication est difficilement possible puisque chaque
paquet est crypté à l'aide d'une clé connue seulement par le système local et le système distant.
2- La partie développement:
J2EE
J2EE est une plate-forme de développement qui permet de développer des applications Web composées
de Servlet et JSP et des applications Métiers . J2EE est également une spécification destinée aux éditeurs
de logiciels qui désirent créer des Serveurs d'Applications compatibles J2EE.
Un Serveur d'Applications contient un conteneur Web pour l'exécution des applications Web et un
conteneur d'EJB pour l'exécution des composants Métiers. De plus, le Serveur d'Application fournis un
ensemble de services utilisés par les développeurs dans les applications. Ces services sont entres autres :
JTA (Java Transaction API) : service de gestion des transactions distribuées
JMS (Java Messaging Service) : service de gestion des messages asynchrones
JNDI (Java Naming and Directory Interface) : service de noms (annuaire) de référencement des objets
JDBC (Java DataBase Connectivity) : service de gestion des connexions aux bases de données
Langage Java
Le langage Java a débuté dans les années 1990 avec James Gosling qui souhaitait développer unlangage de programmation indépendant de la plate-forme hardware Oak fut un échec. Par la suite Bill
Joy (co-fondateur de la firme Sun Microsystems) proposa une nouvelle version d’Oak appelée « Java ».
Son but était de pallier une déficience des langages de programmation en produisant un langage conçu pour
des machines et des logiciels hétérogènes qu’englobe Internet. On trouve gratuitement sur le marché une
machine virtuelle (Java Virtual Machine), un compilateur ainsi que de nombreux outils pour permettre la
conquête du Web qui devra être celle de Java. Après de très nombreuses modifications visant à améliorer le
système, Java est devenu plus qu’une simple solution Internet, c’est dorénavant un langage utilisé pour toutes sortes de développements.
Langage HTML
Le html est un langage dit de « marquage » , de « structuration » ou de « balisage » dont le rôle est de
formaliser l'écriture d'un document avec des balises de formatage. Les balises permettent d'indiquer la
façon dont doit être présenté le document et les liens qu'il établit avec d'autres documents.Le langage HTML permet notamment la lecture de documents sur Internet à partir de machines
différentes, grâce au protocole HTTP, permettant d'accéder via le réseau à des documents repérés par une
Le langage CSS (Cascading Style Sheets) est utilisé pour définir l'aspect futur de votre site, comme par
exemple la couleur du fond de la page ou le type de police.
Plus concrètement, le CSS (ou feuille de style), c'est un petit fichier (exemple "style.css") dans lequel
vous allez d'finir l'aspect futur de votre site.
Langage Servlet
Les servlets (on dit généralement une servlet ) sont au serveur Web ce que les applets sont au navigateur
pour le client. Les servlets sont donc des applications Java fonctionnant du côté serveur. Les servlets
permettent donc de gérer des requêtes HTTP et de fournir au client une réponse HTTP dynamique (donc de
créer des pages web dynamiques).
Les servlets ont de nombreux avantages par rapport aux autres technologies côté serveur. Tout d'abord,étant donné qu'il s'agit d'une technologie Java, les servlets fournissent un moyen d'améliorer les serveurs
web sur n'importe quelle plateforme, d'autant plus que les servlets sont indépendantes du serveur web. En
effet, les servlets s'exécutent dans un moteur de servlet utilisé pour établir le lien entre la servlet et le
serveur web. Ainsi le programmeur n'a pas à se soucier de détails techniques tels que la connexion au
réseau, la mise en forme de la réponse http. On appelle conteneur de servlet une classe permettant de
manipuler la servlet.
Figure11 :Le principe de servlet
D'autre part les servlets sont beaucoup plus performantes que les scripts, car il s'agit de pseudo-code, chargé automatiquement lors du démarrage du serveur ou bien lors de la connexion du premier client.
Enfin une servlet étant une application Java, peut utiliser toutes les API Java afin de communiquer avec des
des JSP . Il est paramétrable par des fichiers XML et de propriétés, et inclut des outils pour la configuration
et la gestion. Il comporte également un serveur HTTP.
JDBC
JDBC (Java DataBase Connectivity) est une interface de programmation créée par Sun Microsystems, pour les programmes utilisant la plateforme Java. Il permet aux applications Java d'accéder par le biais
d'une interface commune à des sources de données pour lesquelles il existe des pilotes JDBC.
Normalement, il s'agit d'une base de données relationnelle, et des pilotes JDBC sont disponibles pour tous
les systèmes connus de bases de données relationnelles.
Nous avons pu, à travers ce mini-projet, acquérir de nouvelles connaissances concernant
l’administration réseaux et les protocoles de communication à distance spécialement le protocole SSH quiassure une bonne sécurité lors des échanges entre les machines. Nous avons eu l’occasion d’approfondir
nos connaissances en matière de développement à travers les différents langages que nous étions amenées à
utilisant : J2EE, HTML, CSS, JAVA et SERVLET. Nous avons pu également utiliser des bases de
données et manipuler des requêtes SQL.
La réalisation de notre application répond aux exigences du cahier de charge imposé par l’encadrant
Abdlhamid Belmekki.
Le travail en équipe nous a permis de développer l’esprit de coopération et de solidarité. C’était une
occasion pour réunir nos connaissances et les fusionner à fin d’en faire notre travail complet.