WEB-II, Compléments sous la forme de rapport de travaux pratiques. Stève Galeuchet & Florian Seuret. Massimiliano Babino

Dimension: px
Commencer à balayer dès la page:

Download "WEB-II, 2003-2004-06-07 Compléments sous la forme de rapport de travaux pratiques. Stève Galeuchet & Florian Seuret. Massimiliano Babino"

Transcription

1 WEB-II, Compléments sous la forme de rapport de travaux pratiques Protocoles La communication vidéo sur Internet OpenSSL mod_ssl Marie-Laure Kottelat Stève Galeuchet & Florian Seuret Dispositifs autour de l Sendmail Majordomo Procmail Massimiliano Babino Jérôme Schaad Nicolas Leuenberger Programmation Perl objet, introduction Présentation d EasyPhp Réjane Forchelet Sirak Solomon XML SAX (Simple API for XML) avec une illustration tirée du rapport de Projet Fiche : feuille XSL pour publication Olivier Martin Sabrina Antonioli Magali Arnoux Services Comment choisir un bon hébergeur de site Web? CMS (Content/Community management system) Alex Kornmayer Cédric Caudoux url :

2 WEB II WEB II La communication vidéo sur internet La communication vidéo sur internet Vous trouverez, dans ces quelques pages, une présentation sur la visioconférence sur internet. Vous découvrirez son début ainsi qu une explication sur les protocoles et les normes de codage utilisés. UN PEU D HISTOIRE L e concept de téléconférence est apparu au début des années 70. Au début, le support de communication utilisé, était la télévision. Depuis, grâce aux performances des moyens techniques utilisés, la téléconférence a évoluée et actuellement ce terme est devenu générique et désigne : «L ensemble des systèmes de communication permettant un dialogue en temps réel entre 2 personnes ou plus, sans que celles-ci aient à se déplacer en un lieu unique de réunion.» Par la suite, les systèmes de communication se sont diversifiés et ont donné naissance à différents services qui renvoient au concept de téléconférence comme : la téléréunion, l audioconférence, la visioconférence, la vidéoconférence et la communication assistée par ordinateur. Vous trouverez dans la suite de ce document, un approfondissement du sujet de la visioconférence sur internet. DÉFINITION DE LA VISIOCONFÉRENCE SUR INTERNET L a visioconférence est un instrument interactif qui combine les technologies de l audiovisuel, de l informatique et des télécommunications. Cela permet à des personnes situées sur des sites distants de se voir et de dialoguer oralement à distance et en temps réel. En plus de la communication de leurs images animées et de leurs voix, les utilisateurs ont la possibilité de se transférer divers types de documents. Le logiciel CU-Seeme développé en 1994 par l'université de Cornell (Etats-Unis) a popularisé ce type de visioconférence. Petit résumé sur l histoire du développement du logiciel CU-Seeme Le logiciel a été développé au départ sur Macintosh par l'université de Cornell, aux Etats-Unis à partir d'une commande publique de la National Science Fondation (Le CNRS américain). En 1994, ça marche déjà, et la NASA retransmet ses missions spatiales en direct sur son réflecteur. Le but était de créer un outil de vidéo-conférence performant, mais aussi un outil compatible avec les logiciels déjà existants pour système Unix. Après avoir finalisé des versions correctes en noir et blanc et la mise au point du logiciel serveur (le réflecteur, qui permet la réunion de plus de deux Marie-Laure Kottelat page : 1

3 WEB II WEB II La communication vidéo sur internet personnes), l'université Cornell abandonne le projet, ou plutôt cède le droit de le poursuivre à une société, White Pine, issue de l'université elle-même, qui s'empresse de sortir une version commerciale baptisée "Enhanced Cu- Seeme" (Cu-Seeme Amélioré) pour se différencier du logiciel d'origine. Depuis, que s'est-il passé? Des programmeurs de l'université, par les droits qu'ils avaient sur le code luimême, ont décidé de continuer la version gratuite, et nous avons vu apparaître, en 1999, une version Couleur pour Macintosh et aussi pour Windows. Ces versions sont distribuées gratuitement, notamment sur le site Des versions pour Linux et Amiga existent également. Source extraite du site Exemple type d une communication sur internet avec CU-Seeme " Exemple d une visioconférence sans utiliser internet c est-à-dire par l intermédiaire de poste TV Marie-Laure Kottelat page : 2

4 WEB II WEB II La communication vidéo sur internet PARTICULARITÉ TECHNIQUE DE LA VISIOCONFÉRENCE SUR INTERNET P lusieurs tentatives ont été menées de façon indépendante pour diffuser des images et du son sur internet. Le premier impératif est de compresser les données échangées. Nous trouvons deux standards principaux : GSM : utilisé aujourd'hui dans les téléphones portables. RTP : Le rôle principal de RTP consiste à mettre en oeuvre des numéros de séquence de paquets IP pour reconstituer les informations de voix ou vidéo même si le réseau sous-jacent change l'ordre des paquets. De plus, RTP peut être véhiculé par des paquets multicast afin d'acheminer des conversations vers des destinataires multiples. Il est important aussi de prendre en considération les trois modes de transmission: DUPLEX : dans ce mode, le message sonore pourra être émis et reçu à un même instant donné HALFDUPLEX : dans ce mode, le message sonore pourra être émis ou reçu à un instant donné. Différé : lorsque le message est enregistré, il est envoyé au correspondant de façon asynchrone. MATÉRIEL TYPE UTILISÉ POUR RÉALISER UNE VISIOCONFÉRENCE SUR INTERNET Voici une liste générale des principaux éléments permettant de réaliser une visioconférence sur internet. # Une connexion Internet # Une caméra digitale à mettre sur son écran # Une carte vidéo # Un microphone # Une carte son en full Duplex # Un logiciel pour piloter le tout Il suffit ensuite de d appeler le numéro IP du correspondant souhaité et la connexion s établit. Marie-Laure Kottelat page : 3

5 WEB II WEB II La communication vidéo sur internet Architecture d un système de visioconférence sur internet C ette architecture permet la communication point à point entre les postes N 1 et N 3 via un réseau local et le réseau internet. (voir flèche pleine sur le dessin) Si le poste N 2 veut rejoindre la communication cela est possible grâce au protocole IP multicast et par l'intermédiaire d'un serveur réflecteur (voir flèches pointillées sur le dessin) Les différents protocoles utilisés P our que les terminaux puissent communiquer entre eux, en plus des caractéristiques du support physique, ils faut également préciser les protocoles utilisés pour permettre le dialogue et la transmission des données. Matériel de visioconférence Logiciel de visioconférence Niveaux Couches Protocoles utilisés Niveau 3 Application RTP Niveau 2 Transport UDP Niveau 1 Réseau IP, IP multicast Niveau 0 Liaison des LLC données Marie-Laure Kottelat page : 4

6 WEB II WEB II La communication vidéo sur internet " Pour la couche application C est le protocole RTP qui est utilisé car il permet le transport (uni ou multicast) de données à caractère temps réel. Grâce à ce protocole, le contenu des paquets transmis est identifié afin de permettre une transmission sécurité de plus les éventuelles pertes de paquets sont détectées % multicast : Permet d acheminer des paquets vers plusieurs destinataire. " Pour la couche transport C est protocole UDP qui convient le mieux pour la visioconférence car il fonctionne en temps réels contrairement au protocole TCP qui n est donc pas du tout recommandé. " Pour la couche réseau On utilise le protocole IP multicast qui est une combinaison du protocole IP avec le message IGMP (Internet Group Message Protocol). Il permet d'envoyer le même paquet à plusieurs destinataires. Grâce à IP multicast on peut réaliser de la visioconférence avec plusieurs personnes simultanément. " Pour la couche de liaison de données On utilise le protocole LLC qui gère les erreurs, les trames, le contrôle de flux et l'interface de service de la couche réseau Les normes de codage utilisées L a grande variété de constructeurs de matériel pour la visioconférence a poussé les organismes de normalisation à étudier des recommandation dans ce domaine. Actuellement, différentes normes régissent les échanges d'informations en visioconférence ainsi, tous les systèmes qui les respectent sont compatibles entre eux. Elles sont classées en familles selon la technologie réseau utilisée. A l intérieur de chacune de ces familles, on trouvera les caractéristiques des différents composants de la visioconférence : Pour la transmission de la vidéo, les normes de la série H 26x Pour la transmission du son, les normes de la série G 7xx Pour le travail coopératif, les normes de la série T12x Pour le multiplexage, les normes de la série H 22x Pour la signalisation et la gestion des communications, les normes des séries H 23x- H Marie-Laure Kottelat page : 5

7 WEB II WEB II La communication vidéo sur internet LES NORMES DE CODAGE DU SON Voyons la famille G 7xx (gérant la transmission du codage du son) plus en détail. Le son est une partie essentielle dans la visioconférence il se doit donc d être d une bonne qualité. Elle dépend de deux paramètres : 1. La bande passante, c est à dire les fréquences de la liaison 2. Le taux de compression et la qualité des codeurs. En effet, plus le taux est élevé, plus il y a perte d information et donc, moins bonne est la restitution. Voici donc quelques recommandations de l UIT-T mises en œuvres dans les codecs du marché. G 711 G 728 G 722 G Recommandation minimum imposée La voix, de qualité téléphonique est compressée à 16 kbit/s. Cette recommandation convient parfaitement pour la visiophonie et la visioconférence à bas débit (128 kbit/s). Cependant, sa qualité est trop faible pour une diffusion dans une salle de cours ou de conférence. La bande passante prise en considération est de 50 Hz à Hz. La restitution est de bonne qualité. Elle convient parfaitement à la diffusion dans une salle de cours. Spécialement conçue pour la visioconférence sur réseaux locaux, cette recommandation fournit une bande passante de 300 à Hz à un débit de 5,3 ou 6,3 kbit/s. La compression est très intéressante mais la qualité de restitution la cantonne à une utilisation de type visiophonie, impropre à la diffusion de cours ou de colloques. Cette recommandation n est présente actuellement que sur des systèmes compatibles H 323. Remarque : une nouvelle recommandation est en cours de ratification, il s'agit de la G 724 qui procure une qualité comparable à la G 722 (50 Hz à Hz) avec un débit de seulement 16 kbit/s comme pour la G 728. Elle n'est pas encore disponible mais sera certainement un atout commercial pour les premiers Codecs qui l'implémenteront. Marie-Laure Kottelat page : 6

8 WEB II WEB II La communication vidéo sur internet LES NORMES DE CODAGE LA VIDÉO Voyons la famille H 26x (gérant la transmission du codage de la vidéo) plus en détail. Tous les Codecs proposent la compression H 261 avec cependant plusieurs niveaux de qualité. Tout d'abord en matière de définition. Le format standard est le CIF (Common intermediate Format) appelé aussi FCIF (Full CIF) avec 288 lignes de 352 pixels pour la luminance et 144 lignes de 176 pixels pour la chrominance (le standard PAL de télévision prévoit 625 lignes de 864 pixels). Pour diminuer les débits, dans le cadre de la visiophonie, on utilise parfois le QCIF (quart de CIF), 144 lignes de 352 pixels pour la luminance et 72 lignes de 176 pixels pour la chrominance. Certains Codecs, faisant référence à l'annexe D de la recommandation H 261, proposent la transmission d'images fixes dont la résolution est poussée à 576 lignes de 704 pixels pour la luminance et 288 lignes de 352 pixels pour la chrominance. Cette fonction est très intéressante pour la transmission de textes (transparents, écrans de microordinateurs, photos,...) d'autant plus qu'elle s'accompagne souvent d'une possibilité d'affichage sur un écran séparé. La qualité du mouvement est rendue par le nombre d'images transmises par seconde. Le maximum est de 30 mais ce débit n'est pas toujours acquis et se situe souvent à 15. Une nouvelle recommandation, spécialement étudiée pour les réseaux locaux commence à être disponible sur les systèmes H 320 pour RNIS. Il s'agit de H 263. Du point de vue définition d'écran, elle est identique à H 261 mais beaucoup plus efficace au niveau compression. On obtient donc une qualité identique avec un débit plus faible. Conclusion Avant de choisir ce sujet, je connaissais très peu le domaine de la visioconférence. Ce travail m a donc permis d approfondir mes connaissances. La grande quantité d information, générale ou plus spécialisée, que j ai trouvé en parcourant le net, m a dans un premier temps un peu dérouté. Malgré tout, j espère avoir fait ressortir dans ce document tous les points importants concernant la visioconférence sur internet et vous avoir apporté de l intérêt sur ce sujet. Marie-Laure Kottelat page : 7

9 Web 2 mai 2004 Stève Galeuchet & Florian Seuret

10 Web 2 : OpenSSL mod - SSL 1. INTRODUCTION PRÉSENTATION D SSL PRÉSENTATION DU PROJET OPENSSL PRÉSENTATION DU MOD_SSL VS. APACHE-SSL INSTALLATION ET PARAMÉTRAGE DU MOD_SSL POUR APACHE DIRECTIVES PRINCIPALES OPENSSL PAR LA PRATIQUE CERTIFICATS CONCLUSION SOURCES...22 Mai 2004 page 1 sur 22 Stève Galeuchet & Florian Seuret

11 Web 2 : OpenSSL mod - SSL 1. Introduction Par Florian et Stève Ce dossier contient une explication de OpenSSL, de sa configuration au niveau du serveur Apache avec le mod-ssl jusqu à la création de certificats avec les outils. Il est l œuvre de Stève Galeuchet et Florian Seuret. A cet effet, chacun des chapitres relatés dans ce dossier portera la signature de son auteur. La structure du document sera la suivante : Théorie : Présentation d SSL (Florian et Stève) Présentation du projet OpenSSL (Florian et Stève) Présentation du mod_ssl vs. Apache-SSL (Florian) Pratique Installation et paramétrage du mod_ssl pour Apache (Florian) Directives principales de configuration (Florian) Configuration d OpenSSL (Stève) Création de certificats (CA, serveur, client) (Stève) Conclusion (Florian et Stève) Sources (Florian et Stève) Mai 2004 page 2 sur 22 Stève Galeuchet & Florian Seuret

12 Web 2 : OpenSSL mod - SSL 2. Présentation d SSL Par Florian et Stève Pour garantir la sécurité des transactions sur le Web, notamment en ce qui concerne la confidentialité des échanges de données, il fallait disposer d un protocole : SSL (Secure Sockets Layer Protocols), développé par Netscape y répond amplement. Actuellement, bon nombre de navigateurs Web tels Netscape Navigator ou encore Internet Explorer utilisent des fonctions SSL, notamment lors d envois de données se référant à des cartes bancaires. Fonctionnement :! " & # - $ - % ) ' - ( Etapes : 1. Le client envoie une demande au serveur. 2. Le serveur envoie au client son certificat signé. 3. Le client contrôle tant la fiabilité que l authenticité du certificat. 4. Le client communique au serveur quelles méthodes de cryptage et quelles clés il peut utiliser. 5. Le serveur détermine à partir de cette information le mécanisme de cryptage le plus efficace et communique son choix au client. 6. Le client génère à l aide de cet algorithme de cryptage une clé de session utilisable dans le cadre de la session courante. 7. Le client crypte cette clé à l aide de la clé publique du serveur et lui envoie. 8. Le serveur utilise sa clé privée pour décrypter la clé de session et fait part au client de son accord. 9. La communication de données sécurisée peut alors commencer, avec l envoi par le client de la demande cryptée qu il adresse au serveur en utilisant la clé de session. Ainsi, lors de l utilisation de SSL, le client redirige toutes les données vers des routines SSL correspondantes. Ces routines sont chargées de crypter les données et de les réacheminer Mai 2004 page 3 sur 22 Stève Galeuchet & Florian Seuret

13 Web 2 : OpenSSL mod - SSL vers le protocole TCP. Du côté du serveur, les données cryptées sont décryptées par des routines correspondantes après quoi, elles sont redirigées vers le processus du serveur. SSL prend en charge les différents algorithmes de cryptage tels que MD5, DES, RSA, RC4 et IDEA. Le serveur crypte la réponse à une demande en utilisant une clé privée. Le client peut utiliser une clé publique certifiée correspondante pour vérifier si le message n a pas été modifié et s il provient réellement du bon serveur. A l issue de la connexion sécurisée, les deux parties suppriment leur clé de session. Remarque : En raison des lois en vigueur aux Etats-Unis en ce qui concerne les algorithmes de cryptographie, la solution SSL n a pas pu être implémentée en natif dans le serveur Apache. Un module additionnel doit donc être installé. 3. Présentation du projet OpenSSL Par Florian et Stève Le projet OpenSSL est le fruit d une collaboration mondiale visant à intégrer SSL et TLS dans un seul kit de travail. OpenSSL est basé sur la bibliothèque SSLeay développée par Eric A. Young et Tim J. Hudson. Ce projet OpenSSL concerne trois éléments : Apache, OpenSSL et le mod_ssl. Apache est donc le serveur web, OpenSSL va nous permettre de créer des certificats et le mod ssl est le rajout d Apache qui va permettre de gérer le cryptage des données. Mai 2004 page 4 sur 22 Stève Galeuchet & Florian Seuret

14 Web 2 : OpenSSL mod - SSL 4. Présentation du mod_ssl vs. Apache-SSL Par Florian Ces deux éléments sont différents mais ont le même but, offrir à Apache une gestion du cryptage de données. Lors du développement d Apache, le projet c est divisé en 2 parties, l une ou Apache contient déjà SSL de base, c est Apache-SSL (dans Apache version 2). L autre partie a préféré garder SSL séparé pour les personnes qui n en aurait pas besoin et il y a donc un module additionnel que l on peut rajouter, le mod_ssl (dans Apache version 1.3.9). 5. Installation et paramétrage du mod_ssl pour Apache Par Florian Afin de pouvoir bénéficier du cryptage des données, il faut donc installer et configurer le mod_ssl pour Apache qui va se charger du lien entre les certificats et les connexions demandées. Il vous faut télécharger le mod_ssl d Apache Première étape après avoir installé Apache, aller dans le répertoire ou vous avez décompressé /usr/local/mod_ssl et lancer la commande suivante : #./Configure -with-apache=../apache_ Ensuite, il faut aller dans le répertoire /usr/local/apache_1.3.24, puis exécuter les commandes suivantes : # SSL_BASE=../openssl-0.9.6d \./Configure \ _enable-module=ssl \ _pre_x=/usr/local/apache # make # make install Voilà, le mod_ssl est maintenant installé. Il faut maintenant le configurer. Il existe différentes directives de configuration qui vont indiquer au mod_ssl comment il doit travailler ces directives sont à mettre dans le fichier httpd.conf du répertoire conf du serveur Apache (Ceci pour la version 1.3.9). Il existe 3 classes de directives : o Les directives globales (Global Directives) situées dans le contexte global de configuration du serveur, c est à dire hors des balises <Virtual Host> et <Directory>. o Les directives par serveur (Per-Server Directives) situées dans le contexte global ou dans le contexte d un hôte virtuel. o Les directives par répertoire (Per-Directory Directives) qui peuvent être placées n importe où. Mai 2004 page 5 sur 22 Stève Galeuchet & Florian Seuret

15 Web 2 : OpenSSL mod - SSL 5.1. SSLPassPhraseDialog La première directive est la SSLPassPhraseDialog. Elle s emploie dans le contexte configuration serveur. Cette directive spécifie une sorte de phrase mot de passe afin de lire les clés privées qui sont en général cryptées pour des raisons de sécurité. En effet, au démarrage du serveur Apache, le mod_ssl va lire les différents certificats et les clés privées. Il existe 2 façons de faire cela, 2 types que l on spécifie dans le fichier de configuration. SSLPassPhraseDialog type o builtin : c est l option par défaut. Il est automatique et s il ne trouve pas tout seul, le Pass dans les fichiers de certificat, il demande de le rentrer manuellement à l administrateur et l enregistre pour la fois prochaine. o exec : chemin : le second spécifie un chemin d une application qui va se charger de faire le travail de recherche de Pass. Example: SSLPassPhraseDialog exec:/usr/local/apache/sbin/pp-filter 5.2. SSLMutex Cette directive permet de configurer le moteur SSL de sémaphore. Ces sémaphores sont utilisés pour les processus qui doivent être synchronisés. Elle est utilisée dans la configuration serveur. Permet de réguler le travail des processus en attendant qu une partie soit finie pour «envoyer la suite». Lors du dialogue entre un client et un serveur, il y a pleins de processus qui se déclenche (création de clé secrète, vérification de certificats, ). Certains de ces processus doivent attendre que d autres aient fini leur tâche avant de s exécuter. Le Mutex va se charger de coordonner / synchroniser tout cela à l aide de sémaphore. Les sémaphores sont des signaux qui vont aider à réguler le trafic des processus en cours et en attentes. Les options sont les suivantes : o none : c est l option par défaut mais elle n est pas conseiller car le Mutex est utilisé pour la synchronisation de l accès de l écriture à la session cache de SSL. o file : chemin : nous pouvons spécifier un chemin pour le Mutex, c est la solution la plus portative car nous utilisons un fichier physique. o sem : permet d utiliser le Mutex existant de Unix ou Windows Example: SSLMutex file:/usr/local/apache/logs/ssl_mutex 5.3. SSLRandomSeed SSLRandomSeed va nous offrir de configurer les sources d un générateur de numéro pseudo aléatoire qui sera utilisé soit au démarrage soit juste avant une nouvelle connexion SSL, pour générer la clé secrète par exemple. Utilisé dans la configuration serveur. Mai 2004 page 6 sur 22 Stève Galeuchet & Florian Seuret

16 Web 2 : OpenSSL mod - SSL Si nous disons pseudo aléatoire, c est parce que le premier numéro est vraiment aléatoire (basé sur l horloge du système mélangé avec d autres paramètres par exemple). Mais les numéros suivants sont basés sur le premier et c est grâce à un algorithme que nous passons de numéro en numéro une fois le premier créé. Si je vous donne l algorithme et le premier numéro, vous pourrez me donner les suivants. SSLRandomSeed context source : Context correspond soit à startup ou à connect. o builtin : utilise un processus par défaut du serveur qui utilise le moins de ressources CPU. Ce paramètre est déconseillé car il ne génère qu une faible entropie. Ce qui veut dire que le niveau de sécurité n est pas très élevé, il ne faudra pas beaucoup fournir d effort pour trouver la clé. L entropie permet de mesurer le niveau de sécurité, le degré de désordre. Plus il y a du désordre moins ce sera facile de retrouver la clé plus l entropie sera élevée et donc la sécurité. o file:/chemin/fichier : permet de spécifier un fichier qui va contenir une liste de mot qui va s ajouter pour le codage de l information donc pour la génération aléatoire de code. En plus de s identifier par exemple avec son nom et mot de passe, il faudra donner ce mot. Le client possède la liste de mot et le serveur également grâce à ce paramètre. o exec:/chemin/programme : permet de spécifier le nom d un programme qui se chargera de la génération de numéro aléatoire. Exemple : SSLRandomSeed startup builtin SSLRandomSeed connect builtin 5.4. SSLSessionCache SSLSessionCache va nous permettre de faciliter la rapidité des requêtes parallèle au processeur. o None : n est pas la meilleure option car un peu lente o dbm : /chemin/fichier : permet de spécifier un chemin de fichier local sur le disque qui servira à synchroniser la mémoire cache d OpenSSL des processus serveur. o shm:/chemin/fichier : est la meilleure option côté performance à cause d un partage de mémoire, mais pas disponible sur tous les systèmes SSLSessionCacheTimeout Permet de spécifier la durée de vie de la session SSL. Normalement vers 300 secondes et au plus bas vers 15 secondes pour des tests. Utilisable tant au niveau serveur que pour les hôtes virtuels SSLEngine Va permettre d activer ou non le moteur SSL pour les hôtes virtuels (<virtualhost>) d Apache. Par défaut, cette option est désactiver pour tous les hôtes virtuels et pour le serveur principal. Cette option est à mettre à l intérieur de la configuration du serveur ou d un hôte virtuel. Mai 2004 page 7 sur 22 Stève Galeuchet & Florian Seuret

17 Web 2 : OpenSSL mod - SSL 5.7. SSLProtocol Cette directive va nous permettre de spécifier quel protocole le mod_ssl devra utiliser dans son environnement. Nous pouvons choisir entre les versions : o sslv2 o sslv3 o tlsv1 o All : la valeur par défaut et qui permettra aux clients de se relier via le protocole qu ils veulent. Les paramètres ne sont pas sensibles à la casse. Il y a la possibilité de faire un mixe des paramètres, de faire des combinaisons: SSLProtocol all -SSLv2 Ce qui veut dire qu il y aura tous les protocoles hormis sslv SSLCipherSuite La directive SSLCipherSuite décrira les spécifications de chiffrement de SSL. Elles se composent de 4 attributs principaux plus quelques attributs supplémentaires mineurs. Cette directive est utilisable pour le serveur, les hôtes virtuels, les répertoires et les.htaccess. Les 4 attributs principaux correspondent à : o Algorithme d'échange de clef : RSA ou Diffie-Hellman ; o Algorithme d'authentification : RSA, Diffie-Hellman, DSS ou aucun ; o Algorithme de chiffrement et déchiffrement : DES, Triple-DES, RC4, RC2, IDEA ou aucun ; o Condensé par fonction de hachage (MAC) : MD5, SHA ou SHA1. Par défaut, les paramètres sont les suivant : SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP D autres exemples et spécification sont disponible sur la documentation officielle (http://www.modssl.org/docs/2.8/ssl_reference.html) 5.9. SSLCertificateFile Va indiquer le chemin du fichier de certificat pour le serveur, un fichier server.crt SSLCertificateKeyFile Indique le chemin du fichier de la clé privée pour le serveur. Fichier server.key Si l option SSLCertificateFile est mentionnée et que le fichier de la clé privée se trouve à la même place, cette option est optionnelle. Mais il est conseillé de séparer ces fichiers. Mai 2004 page 8 sur 22 Stève Galeuchet & Florian Seuret

18 Web 2 : OpenSSL mod - SSL SSLCertificateChainFile SSLCertificateChainFile permet de spécifier un fichier qui contiendra l ensemble des certificats des Autorités de Certifications (CA) et qui va former une chaîne de certificat. Cet ensemble peut être utilisé pour être envoyé au navigateur en plus du certificat de serveur. Le fichier se nomme ca.crt. Il faut faire attention au fait qu il peut y avoir conflit avec le paramètre SSLCACertificatePath SSLCACertificatePath / SSLCACertificateFile Lorsque le serveur HTTPS requiert le certificat de l'utilisateur, il vérifie que l'émetteur de ce certificat fait partie d'une liste d'autorités de certifications acceptables. Il y a deux directives qui indiquent à mod_ssl comment constituer cette liste. La directive SSLCACertificateFile indique le chemin d'accès vers un fichier contenant, l'un à la suite de l'autre, tous les certificats acceptables. La distribution de mod_ssl pour Apache 1.3 fournit un tel fichier, appelé ca-bundle.crt, qui correspond à peu de choses près à la liste des autorités de certification pré-configurées dans les navigateurs comme Internet Explorer, Mozilla, Netscape, etc. La distribution de mod_ssl pour Apache 2.0 ne prévoit pas de tel fichier. Il serait possible de rajouter nos autorités de certification dans cette liste. Mais toute mise à jour ultérieure de mod_ssl risque d'entraîner la perte de ces informations car un nouveau fichier cabundle.crt sera généré. Pour cette raison, on utilisera plutôt la directive SSLCACertificatePath qui indique le chemin d'un répertoire contenant, à raison d'un certificat par fichier, les certificats des autorités de certification du CNRS et de vos partenaires. Si on dispose d'un fichier ca-bundle.crt on peut très bien utiliser ces deux directives en parallèle, comme indiqué ci-dessous : SSLCACertificatePath /etc/httpd/conf/ssl.crt SSLCACertificateFile /etc/httpd/conf/ssl.crt/ca-bundle.crt Sinon, on n'utilise que la directive SSLCACertificatePath, comme indiqué ci-dessous qui inclura tous les fichiers se trouvant dans le répertoire ssl.crt : SSLCACertificatePath /etc/httpd/conf/ssl.crt SSLCARevocationFile / SSLCARevocationPath Chaque autorité de certification publie à intervalles réguliers une liste de révocation (certificate revocation list, CRL) contenant les numéros de série des certificats révoqués. Il s'agit de ceux qui ont été déclarés invalides avant leur date d'expiration, soit parce que leur titulaire a quitté ses fonctions dans le laboratoire, soit parce que la clé privée correspondante a été déclarée perdue ou volée. Pour votre serveur HTTPS, il est recommandé de mettre à jour ces listes afin d'empêcher quiconque d'utiliser un certificat révoqué. Dans Apache, les listes de révocation sont stockées dans le répertoire indiqué par les directives SSLCARevocationPath et SSLCARevocationFile. Ces directives fonctionnent comme celles qui concernent les autorités de certification. La directive SSLCARevocationFile désigne un fichier contenant toutes les listes de révocation des autorités de certifications installées sur ce site. En pratique, à chaque modification de l'une Mai 2004 page 9 sur 22 Stève Galeuchet & Florian Seuret

19 Web 2 : OpenSSL mod - SSL de ces listes de révocation, il faut reconstituer ce fichier et recharger Apache. Cette opération n'étant pas très dynamique, on préfèrera la seconde directive, SSLCARevocationPath. La directive SSLCARevocationPath désigne un répertoire contenant un ensemble de fichiers, chacun d'eux correspondant à une liste de révocation. Ces fichiers sont indexés via le Makefile.crl contenu dans ce répertoire. Cette directive s'utilise comme suit : SSLCARevocationPath /etc/httpd/conf/ssl.crl SSLVerifyClient Va paramétrer le niveau de vérification de l authentification des clients. Il existe plusieurs niveaux dont 2 intéressants : o None : aucun certificat n est requis o require : le client doit présenter un certificat valide SSLVerifyDepth Permet de spécifier la «profondeur» de contrôle à effectuer avant que le mod_ssl ne décide de la validité ou non du certificat d un client. C est en fait le nombre d intermédiaire vers qui on va vérifier et accepter une validation du certificat. SSLVerifyDepth 0 signifie que seul les certificats clients «auto-signé» sont accepté comme valide. Une valeur de 1 veut dire que le certificat peut être auto-signé par le client ou qu il doit être reconnu comme valide par une autorité de certification (CA) connu du serveur (paramétré par la directive SSLCACertificatePath) SSLLog Spécifie le chemin du fichier de log du mod_ssl. Les erreurs sont également inscrites dans le fichier d erreur d Apache. Il faut mettre ce fichier dans un lieu sûr afin d éviter toute modification lors d une attaque SSLLogLevel Permet de spécifier quel type d erreur nous souhaitons avoir dans notre fichier de log. Les niveaux les plus haut incluent les messages de bas niveaux. o none : aucune notation spécifique de SSL n'est faite, mais les messages du type "error" sont écrits dans le fichier journal général d'erreur d'apache. o error : seuls les messages de type "error", i.e. les messages qui montrent des situations fatales (processus arrêté) sont affichés. Ces messages sont également reproduits au fichier journal général d'erreur d'apache. o warn : les messages d'avertissement sont également affichés, i.e. les messages qui montrent des problèmes non fatals (le traitement continue). o info : les messages d'informations sont affichés en plus des précédents, i.e. ceux qui montrent les étapes de transformation principales. Mai 2004 page 10 sur 22 Stève Galeuchet & Florian Seuret

20 Web 2 : OpenSSL mod - SSL o trace : affichés en plus les messages de traces, i.e. les messages qui montrent les étapes de transformation mineures. o debug : les messages de debuggage sont également affichés, i.e. les messages qui montrent le développement et l'information I/O de bas niveau SSLOptions Contient beaucoup de paramètres qui vont activer des variables d environnement qui pourront être utilisé dans des scripts SSLRequireSSL Cette directive ne possède pas de paramètre. Elle peut être placée pour des répertoires ou dans des fichiers.htaccess. Le fait que cette directive soit mentionnée indique que toutes les requêtes qui sont faites dans le répertoire en question doivent passer par SSL. Une requête passant par HTTP ne sera pas acceptée SSLRequire Cette directive est très puissante car elle permet de spécifier une expression booléenne (en format BNF) qui devra être résolu comme vrai pour que l accès soit autorisé. Nous pouvons aller tester les variables d environnement d Apache ou de SSL afin de faire «tous» les tests que nous voulons. Plus de détail dans la documentation officielle. 6. Directives principales Parmi la liste de ces directives, il y en a certaines qui sont plus importantes. Voici un exemple des lignes que j ai pu retrouver dans plusieurs paramétrages : SSLEngine On SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key SSLCACertificatePath /usr/local/apache/conf/ssl.crt/ SSLCARevocationPath /usr/local/apache/conf/ssl.crl/ SSLVerifyClient require SSLMutex sem SSLRandomSeed startup builtin SSLRandomSeed connect builtin Par Florian Remarque : les chemins et nom de fichier peuvent être changé et adaptés selon votre configuration. Mai 2004 page 11 sur 22 Stève Galeuchet & Florian Seuret

21 Web 2 : OpenSSL mod - SSL 6.1. Apache-SSL Voici un exemple des lignes que j ai pu trouver dans le paramétrage par défaut d Apache version 2 donc pas de mod-ssl mais un Apache-SSL directement inclus et préconfiguré sur un système Suse 9.0. La liste des paramètres et des fichiers paramétrés ci-dessous n est pas exhaustive. Le fichier de configuration se trouve dans /etc/apache2/ et se nomme : ssl-global.conf. Voici les directives présentes : SSLPassPhraseDialog builtin SSLSessionCache shmcb:/var/lib/apache2 SSLSessionTimeout 600 SSLMutex sem SSLRandomSeed startup builtin SSLRandomSeed connect builtin Il y a également certaines directives pour configurer les hôtes virtuels. Dans le fichier vhostssl.template dans le répertoire /etc/apache2/vhosts.d/, nous trouvons les directives suivantes : SSLEngine On SSLCipher ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLCertificateFile /etc/apache2/ssl.crt/server.crt SSLCertificateKeyFile /etc/apache2/ssl.key/server.key 7. OpenSSL par la pratique Par Stève Dans le présent document, je vais tâcher de montrer comment est-ce qu on peut créer simplement un certificat ainsi qu une autorité de certification. Pour ce faire, j ai pris quelques captures d écrans sous SuSE Linux, lors des différentes étapes. Disposant d une machine Linux pour mon travail de semestre, j en ai profité pour tester la documentation récoltée sur Internet. Pour réaliser les certificats, j ai utilisé OpenSSL. OpenSSL permet donc de gérer des certificats et d implémenter notamment SSL dans un serveur Certificat de certification Avec OpenSSL, il est possible de mettre en place une autorité de certification qui gérera un ensemble de certificats et de listes de révocations. Une autorité de certification (CA) émet des certificats signés par un certificat racine pour en assurer l authenticité. Dès lors, si nous faisons confiance au certificat du CA, nous pouvons faire confiance au certificat qu il a émis. Mai 2004 page 12 sur 22 Stève Galeuchet & Florian Seuret

22 Web 2 : OpenSSL mod - SSL Une autre alternative est d utiliser des certificats autosignés. Ces certificats autosignés sont néanmoins mal appréciés des navigateurs Mozilla ou Internet Explorer, car on doit leur faire une confiance aveugle. De plus, chaque consultation de page protégée par ce type de certificat nécessite une validation par les navigateurs Installation d OpenSSL Apache 2.0 intègre en natif OpenSSL. Sous la distribution SuSE Linux 9.0, l utilitaire OpenSSL se situe sous /usr/bin/ (utilitaire openssl) ; la documentation «paquetages» se situant elle sous /usr/share/doc/packages/openssl Les répertoires des certificats qu utilisent OpenSSL se trouvent sous /etc/ssl/ et la structure de ce répertoire-ci se présente sous la forme suivante : Répertoire certs (ce répertoire contient déjà un ensemble de certificats à l extension.pem) o.pem Exemples: nortelca.pem, rsa-cca.pem, thawtecb.pem, vsign1.pem (de chez Verisign) openssl.cnf (fichier de configuration d OpenSSL) Répertoire private Pour configurer OpenSSL, il convient d éditer le fichier openssl.cnf. Celui-ci contient notamment : Mai 2004 page 13 sur 22 Stève Galeuchet & Florian Seuret

23 Web 2 : OpenSSL mod - SSL dir=./répertoire chemin à partir duquel tout est stocké (répertoire racine) Les autres répertoires découlent de celui-ci (dir), à savoir : certs=$dir/certs chemin des certificats signés crl_dir =$dir/crl chemin des certificats révoqués (Certificat Revocation List) database = $dir/index.txt fichier «base de données» des certificats new_certs_dir = $dir/newcerts repertoire où seront situés les nouveaux certificats certificate = $dir/cacert.pem certificat de l autorité de certification serial = $dir/serial «compteur» du nombre série pour les certificats crl = $dir/crl.pem CRL (Certificate Revocation List) actuelle private_key = $dir/private/cakey.pem clé privée RANDFILE = $dir/private/.rand fichier contenant des nombres aléatoires pour générer les clés Tous les répertoires cités ci-dessus (le répertoire racine + certs, crl, newcerts, private) doivent être ensuite crées. Dans le cadre de mon travail pratique, j ai défini pour mon répertoire racine, à savoir dir dans le fichier de configuration openssl.cnf, le chemin /certif/ca. Toutes les créations de répertoires peuvent être réalisées à l aide de la commande système mkdir nom_du_répertoire. Le répertoire $dir/private contient des données super confidentielles du certificat d authentification, à savoir sa clé privée et le fichier qui contient les nombres aléatoires utilisés pour générer des clés (.rand). Ce répertoire ne doit être visible que par root. Pour cela, faire un chmod 700 private. Les fichiers serial et index.txt doivent être eux créés de ces manières-ci dans le répertoire /certif/ca/ : touch index.txt et echo 01>serial Le fichier serial contiendra donc comme première valeur de compteur 01. Les autres certificats étant incrémentés ensuite. Voici donc ensuite l arborescence du répertoire /certif/ca o certs/ o crl/ o index.txt o newcerts/ o private/ Mai 2004 page 14 sur 22 Stève Galeuchet & Florian Seuret

24 Web 2 : OpenSSL mod - SSL 8. Certificats Par Stève Dans la suite de ce document des certificats de certification, de serveur seront réalisés. Je parlerai également des certificats clients ainsi que de la révocation desdits certificats Création du certificat autosigné Si nous ne pouvons pas obtenir un certificat d une autorité de certification supérieure pour l utiliser comme autorité de certification, il convient de réaliser soi-même un certificat autosigné. C est donc ce que nous allons faire ci-dessous. Taper la commande suivante à partir du répertoire /certif/ca/ : openssl req config /etc/ssl/openssl.cnf new x509 keyout private/cakey.pem out cacert.pem days 365 Cette commande openssl va générer une paire de clé privée / publique pour le serveur. Durant la création de cette paire, la commande demande une phrase de codage (PEM phrase) afin de protéger le certificat. Cette phrase doit être insérée à 2 reprises, pour confirmation. Attention : cette phrase ou combinaison de mots doit être retenue car par la suite, nous l utiliserons à nouveau pour signer les certificats du serveur Web ainsi que pour les utilisateurs. A conserver précieusement donc! Mai 2004 page 15 sur 22 Stève Galeuchet & Florian Seuret

25 Web 2 : OpenSSL mod - SSL Après la saisie de la PEM phrase, il convient de rentrer diverses informations telles que le code de pays, la localité, le nom de société ou encore l adresse mail. Si nous ne jugeons pas utile de rentrer certaines informations, il suffit de taper un point. pour laisser la valeur «vide». Dans le répertoire certif/ca/private, le fichier cakey.pem a été créé tandis que dans le répertoire certif/ca, c est cacert.pem qui a été créé. Pour afficher le contenu du certificat nouvellement créé, il suffit de taper : openssl x509 in cacert.pem noout text Quant à la clé, elle sera visible par : openssl rsa in /etc/ssl/certif/private/cakey.pem noout text A noter qu il faudra rentrer la PEM saisie lors de la création du certificat. Mai 2004 page 16 sur 22 Stève Galeuchet & Florian Seuret

26 Web 2 : OpenSSL mod - SSL Tel quel, ce certificat est utilisable sous Netscape Communicator. Pour le rendre compatible sous Internet Explorer, il faut le convertir en format DER : openssl x509 in cacert.pem out cacert.der outform DER Nous placerons ensuite ces 2 fichiers dans un répertoire partagé du serveur Web pour permettre aux futurs clients de l utiliser. Le certificat de la CA doit être installé sur les navigateurs pour que celui-ci puisse être utilisé par ces derniers. Une fois installé, le navigateur acceptera n importe quel certificat signé par cette autorité (la nôtre en fait). Pour l installer, nous pouvons le charger à l aide d un HTTP Content-Type application/x-x509- ca-cert. Pour ce faire, il existe une manière qui ne dépend pas du serveur ; cela peut se faire à l aide d un script cgi ou alors, nous pouvons également sauver le certificat dans un fichier ayant «cacert» comme suffixe. Il suffit ensuite de définir ce suffixe dans le fichier de configuration du serveur. Cela correspond au type MIME application/x-x509-ca-cert. Pour un serveur Apache, il suffit d ajouter la ligne AddType application/x-x509-ca-cert cacert au fichier httpd.conf. Avec ceci, les fichiers de certificats et les clés doivent rester disponibles pour OpenSSL, pour que le serveur soit capable d utiliser la clé publique et que la CA puisse utiliser la clé privée Création du certificat pour le serveur 4 étapes sont nécessaires, lorsque nous créons un certificat pour un serveur Web. 1. Créer une clé privée pour le serveur Note : ici, il convient de supprimer le codage de la clé dans le certificat, sans quoi Apache souhaitera qu on rentre la phrase de codage du certificat à chaque fois que le serveur redémarre 2. Générer une requête de certificat (CSR -> Certificate Signing Request) contenant les éléments d identification du serveur Mai 2004 page 17 sur 22 Stève Galeuchet & Florian Seuret

27 Web 2 : OpenSSL mod - SSL 3. Signer la requête par l autorité de certification (celle crée précédemment) 4. Installer le certificat dans l environnement du serveur Dans le répertoire /certif/ca/private/, faire : openssl genrsa des3 out tmp.key 1024 Cette commande génère une paire de clé publique / privée à l aide d une phrase de codage (qui doit être confirmée, tout comme pour l autorité de certification) Après quoi, il faut faire : openssl rsa in tmp.key out serverkey.pem Cette commande openssl demande de rentrer la phrase de codage rentrée à l étape précédente et génère ensuite un nouveau certificat nommé serverkey.pem dont la clé publique n est plus chiffrée. Ensuite, il convient de : - modifier le fichier serverkey.pem nouvellement crée, en ne lui assignant qu un droit de lecture pour l administrateur (chmod 400 serverkey.pem) - finalement, supprimer le fichier temporaire tmp.key (rm f tmp.key) Pour fabriquer la requête de certificat pour le serveur Web, qui contiendra les mêmes informations que pour l autorité de certification (pays, canton, ville, etc.), il faut réaliser un : openssl req config /etc/ssl/openssl.cnf new key serverkey.pem -out newreq.pem days 364 Cependant, lors de la saisie de ces informations, il faut veiller à rentrer pour Common Name Your Name, le nom DNS du serveur (par exemple, sans quoi cela bugguera par la suite! Mai 2004 page 18 sur 22 Stève Galeuchet & Florian Seuret

28 Web 2 : OpenSSL mod - SSL Par ceci, une demande de certificat est faite. Il convient ensuite de l envoyer à l autorité de certification préalablement crée pour la signature. Cette demande, requête, signée constitue ensuite le certificat. Note : lors de la création de la requête de certificat pour le serveur, nous pouvons remarquer que sa date d expiration est inférieure à celle du certificat de l autorité de certification. Cela provient du fait que les anciennes versions d Internet Explorer rejetaient les certificats valides plus longtemps que l autorité qui les a signés (ici notre CA crée en tout premier). Pour signer le certificat, il faut rentrer la commande suivante (dans le répertoire certif/ca/certs/): openssl ca config /etc/ssl/openssl.cnf out servercert.pem infiles../private/newreq.pem Note : nous pouvons voir cette fois-ci l utilisation de l option ca pour la signature du certificat. Pour valider la signature, il faudra indiquer la PEM phrase de l autorité de certification, créé en tout premier. Le fichier newreq.pem peut être ensuite supprimé : rm f../private/newreq.pem Maintenant qu un nouveau certificat a été créé, il est visible sous /certif/ca/newcerts. Ce fichier se nomme $serial.pem ; $serial correspondant ici au nombre contenu dans le fichier serial. Donc, pour résumer, la clé publique du CA (cacert.pem) et la clé privée sont situées sous /certif/ca/. La clé du serveur est, quant à elle, présente dans le répertoire private de /certif/ca/. Pour que le certificat et la clé serveur soient utilisés sous Apache, il convient de modifier les lignes suivantes du fichier httpd.conf : SSLCertificateFile /certif/ca/certs/servercert.pem SSLCertificateKeyFile /certif/ca/certs /serverkey.pem 8.3. Créer et installer un certificat client Un certificat client est utilisé pour authentifier un client à un serveur. Mai 2004 page 19 sur 22 Stève Galeuchet & Florian Seuret

29 Web 2 : OpenSSL mod - SSL Néanmoins, l utilisation de certificat client n est requis que si le serveur est configuré pour cela. Créer, installer des certificats clients est bien plus difficile que de créer des certificats serveurs car les clients doivent générer une paire de clé, garder leur clé privé chez eux et ensuite envoyer la clé publique à l autorité de certification pour être incorporée dans une requête de certificat. Une fois qu un certificat signé a été crée par la CA, le certificat client doit être installé sur le client de telle sorte que le client puisse le présenter lorsque cela est requis. Différents clients comme Netscape Navigator ou encore Internet Explorer supportent plusieurs mécanismes pour créer des certificats clients. Néanmoins, la procédure générale est à la même et est constituée des étapes suivantes : 1. L utilisateur effectue une requête sur une page HTML qui affiche un formulaire sur son poste. 2. L utilisateur rentre les informations d identification. 3. Lorsque le formulaire est soumis, voici ce qui est effectué: - Le navigateur génère une paire de clé (publique et privée). - La clé privée est enregistrée dans le navigateur - La clé publique est envoyée avec les informations d identification au serveur - Le script CGI du serveur crée un certificat et le charge dans le client Le formulaire HTML inclut des champs pour les différents attributs qui sont utilises pour le certificat client. Il contient également des informations que le navigateur utilisera pour générer la paire de clés ainsi qu un champ caché retourné ensuite au script CGI. Tant l information cachée que le script traitant le formulaire sont dépendants du navigateur Révocation d un certificat Jusqu à présent, nous avons parlé de la création d un certificat, mais quand est-il de sa révocation? Nous allons dans les lignes qui suivent voir comment rendre «inactif» un certificat, ceci voulant simplement dire l insérer dans la liste de révocations (liste de certificats non-valides). Ceci se fait simplement à l aide de l option revoke d openssl. Pour le certificat serveur que l on a crée précédemment, voici la commande à taper (depuis /certif/ca/) : openssl ca config /etc/ssl/openssl.cnf -revoke certs/servercert.pem crl_reason superseded Après avoir fait cela, le fichier index.txt de certif/ca/ est mis à jour. Cela a été réalisé à cause de l option superseded rentrée précédemment. Une fois le certificat révoqué, il faut publier la révocation dans la CRL : openssl ca config /etc/ssl/openssl.cnf gencrl crldays 30 out crl/crl.pem Pour visualiser la CRL, il suffit ensuite de faire : Mai 2004 page 20 sur 22 Stève Galeuchet & Florian Seuret

30 Web 2 : OpenSSL mod - SSL openssl crl in crl/crl.pem text noout Mai 2004 page 21 sur 22 Stève Galeuchet & Florian Seuret

31 Web 2 : OpenSSL mod - SSL 9. Conclusion Nous avons donc traité de la configuration de OpenSSL, outil permettant la création de certificats, et la configuration des directives du mod-ssl afin de pouvoir sécuriser notre serveur web Apache. Ce fut très intéressant et très «technique». La compréhension du système n était pas aisée, la configuration était expliquée de manière très pointue. Ce qui est compréhensible vu que cette configuration doit nous permettre de sécuriser nos transactions avec notre serveur. Florian Tout comme l a justement souligné Florian, il est vrai que ce fut très technique. De mon côté, je regrette seulement de n avoir pas réussi à signer mes certificats. Néanmoins, la découverte de ces fameux «certificats» et de leur utilisation fut enrichissante, tout comme leur «simple» création. A continuer donc! Stève 10. Sources mod_ssl OpenSSL et certificats Mai 2004 page 22 sur 22 Stève Galeuchet & Florian Seuret

32 SENDMAIL 1.Introduction L objectif de ce document est de présenter brièvement sendmail, de décrire sa structure et d expliquer ses fonctionnalités. Les explications sont données en traitent la structure du système de messagerie et en décrivant une démarche d installation et de configuration à travers un petit cas concret. 2.SendMail Sendmail fait partie, comme Apache ou Bind, des quelques logiciels Open Source sur lesquels s'est construite l'infrastructure Internet. Il est aujourd'hui utilisé comme serveur de messagerie par plus de la moitié des entreprises et des opérateurs Internet dans le monde. Réputé pour sa fiabilité, sa capacité à monter en charge et ses possibilités de paramétrage très étendues. La tâche principale de Sendmail est de transmettre de façon sûre le courrier d'un hôte à l'autre. Cela dit, Sendmail offre de grandes capacités de configuration et permet ainsi de contrôler presque tous les aspects de la manipulation de courrier. En plus de sa configuration très complexe, on a reproché à Sendmail ses problèmes de sécurité. En effet, sendmail possède un lourd passé de vulnérabilités. Cependant, que ce soit d un point de vue de sécurité, de performance ou d extensibilité, les dernières versions ont beaucoup évoluées. Aucun logiciel n'a été autant attaqué, relu, corrigé et "durci". SendMail est installé par défaut dans la plupart des systèmes d exploitation Unix/Linux. Pour des situations simples, la configuration par défaut fonctionne bien avec de légères modifications. Un bon nombre d administrateurs de systèmes ont beaucoup travaillé avec Sendmail et ont développé des bonnes pratiques de configuration et d administration. Sendmail reste le serveur de courrier le plus connu et le plus utilisé, mais avec le temps et avec l émergence d une grande gamme de serveurs de courrier il a perdu une bonne part du marché. Si avant 1990 Sendmail était presque omniprésent, actuellement il ne représente plus qu'environ 50 % des serveurs de courrier. Descendant du logiciel ARPANET delivermail, la première version de Sendmail a été écrite par Eric Allman (Université de Berkeley) au début des années Babino Massimiliano Esnig igpt02 Web2 1/

33 SendMail 3.Structure du système de messagerie Pour mieux comprendre le fonctionnement de sendmail, il est nécessaire de connaître la structure du système de messagerie (norme X-400). Il y a trois types d'intervenant dans la manipulation du courrier électronique:! Le MUA (Mail User Agent) : Kmail, Outlook, "sendmail"..! Le MTA (Mail Transport Agent) : postfix, sendmail, Microsoft Exchange..! Le MDA (Mail Delivery Agent) : sendmail, procmail.. Le MUA est l'interface utilisateur, ses tâches principales sont la consultation du contenu de la boîte aux lettres, la composition des messages et l envoie de ces derniers au centre de tri le plus plus proche, le MTA. Le MTA agit comme le système de distribution de courrier papier de la poste. Il joue le rôle de centre de tri, de logistique d'acheminement et de centre de distribution. Comme dans le cas de la Poste, il est relayable. Chaque MTA transmet le courrier au MTA dont il pense qu'il va gérer le reste de l'acheminement du message. Chaque MTA qui a acheminé le courrier laisse normalement une trace dans champ Received du message. Une fois que le courrier est arrivé au MTA de la machine qui gère la boîte aux lettres (le bureau de poste local), ce dernier le donne à un MDA (le facteur) qui va le poser physiquement dans la boîte aux lettres. En fin, le MUA du destinataire s occupe de retirer le courrier dans sa boîte aux lettres. smtp.providerexp.ch MTA MDA smtp.provider2.ch MTA smtp.providern.xx Protocoles smtp Pop3/Imap4 MUA MDA MTA expéditeur MDA smtp.providerdest.com MTA pop.providerdest.com MDA MUA destinataire Norme X-400 2/5

34 SendMail Le protocole SMTP (Simple Mail Transfer Protocol, traduit par Protocole Simple de Transfert de Courrier) est le protocole standard permettant de transférer le courrier d'un serveur à un autre de MTA à MTA. Il s'agit d'un protocole fonctionnant en mode connecté, encapsulé dans une trame TCP/IP. Le protocole SMTP fonctionne grâce à des commandes textuelles envoyées au serveur SMTP (par défaut sur le port 25). Chacune des commandes envoyées par le client est suivie d'une réponse du serveur SMTP composée d'un numéro et d'un message descriptif. Le protocole POP (Post Office Protocol que l'on peut traduire par Protocole de bureau de poste) permet comme son nom l'indique d'aller récupérer son courrier sur le serveur distant (le serveur POP). Il est nécessaire pour les personnes n'étant pas connectées en permanence à Internet afin de pouvoir consulter les mails reçus hors connexion. La terminologie X400 utilise le terme agent de transfert de messages (MTA) pour une notion qui regroupe les agents de routage et de transport. 4.Structure de sendmail Le monde de la messagerie sendmail rend assez difficile une perception nette de chacun de ces composants. En particulier, une confusion peut naître à cause des deux points suivants : Le programme sendmail lui-même est un agent de routage (MTA) plus un agent de transport (MDA) spécialisé pour le protocole SMTP. Si cette concentration dans un seul programme n'est pas intellectuellement satisfaisante, elle est dictée par un souci d'efficacité. Le programme /bin/mail est utilisé à la fois comme MUA (on peut l'utiliser, bien qu'il soit très frustrent) et comme agent de transport de messages (puisque c'est lui qui réalise la remise physique). Ce rôle dual est une erreur de conception, et les nouvelles versions de sendmail fournissent un programme distinct pour la remise physique (/usr/libexec/mail.local sur les systèmes Berkeley 4.4). Certains sites utilisent également le programme procmail. On peut donc affirmer, que SendMail joue le rôle de MTA et de MDA. Donc d agent de routage et d agent de transport. En bref, SendMail s occupe de l acheminement du courrier de l expéditeur au destinataire. 3/5

35 SendMail 5.Installation SendMail est un gros exécutable (/usr/sbin/sendmail), cependant sa compilation et son installation sont relativement simples. 5.1 Récupération des sources Les sources sont disponibles sur le site FTP de Sendmail (ftp://ftp.sendmail.org). Ils se trouvent dans le répertoire /pub/sendmail. Ce répertoire contient toutes les archives de Sendmail. Une fois récupérée la dernière version il faut la décompresser. 5.2 Compilation Avant de lancer la compilation il faut se placer dans le répertoire de Sendmail : # cd sendmail / La compilation s effectue avec l instruction sh Build : # sh Build 5.3 Installation L installation Sendmail ce fait au moyen de l instruction sh Build install : # sh Build install 6.Configuration Sendmail est assez difficile à prendre en main. Son fichier de configuration, par exemple, est d un ésotérisme sans égal au première approche. Ce fichier de configuration (/etc/sendmail.cf) permet de tout paramétrer. Le fichier sendmail.cf fait peur. Et à juste titre. Aujourd hui, on ne l utilise presque plus. 99,9% des gens n'écrivent plus ce fichier directement. On préfère passer par m4 et les fichiers config.mc, qui facilitent grandement la tâche. Un fichier.mc est créé puis compilé à l'aide du kit de configuration m4 de sendmail pour donner le fichier.cf Extrait du fichier de configuration sendmail.cf : # handle special cases for local names R$* localhost > $* $: $1 $j. > $2 no domain at all R$* localhost. $m > $* $: $1 $j. > $2 local domain R$* localhost. UUCP > $* $: $1 $j. > $2.UUCP domain R$* [ $+ ] > $* $: $1 < [ $2 ] > $3 mark [a.b.c.d] R$* < $=w > $* $: $1 $j. > $3 self-literal R$* < $+ > $* $1 $2 > $3 canon IP addr 4/5

36 SendMail 6.1 Configuration minimale préconstruite Pour l exemple, nous utilisons une configuration minimale qui permettra de faire fonctionner Sendmail. Cette configuration se place dans le répertoire /etc/mail : # mkdir /etc/mail Des fichiers de configuration préconstruits sont fournis avec l archive de Sendmail. Ils sont placés dans le répertoire /cf/cf. On prend, par exemple, le fichier genericlinux.cf et on le place dans le répertoire /etc/mail. Ensuite on le renomme en sendmail.cf de façon qu il soit interprété par Sendmail : # cd cf/cf # cp generic-linux.cf /etc/mail/ # cd /etc/mail # mv generic-linux.cf sendmail.cf Toujours dans le répertoire /etc/mail, il faut créer un fichier aliases élémentaire : mailer-daemon: postmaster posmaster : root L indexation de ce fichier ce fait de la façon suivante : # /usr/sbin/sendmail bi v Il faut ensuite créer la file d attente dans laquelle seront déposés tous les messages de Sendmail : # mkdir /var/spool/mqueue Pour démarrer Sendmail : # /usr/sbin/sendmail bd q15m Sendmail est désormais prêt à fonctionner, avec un minimum de fonctionnalités. 7.Conclusion Les principaux arguments en faveur de Sendmail sont sa position de leader des serveurs SMTP, sa maturité et sa capacité à absorber de très gros volumes de messagerie. En contre-partie, il est vrai qu il reste difficile à configurer et que certains problèmes de sécurité peuvent restreindre son utilisation. Le paradigme du système de distribution de la poste a permis d expliquer la structure du système de messagerie et donc celle de Sendmail d une manière simple et claire. Pour une question de temps et de complexité, la configuration complète via un kit de configuration n a pu être présenté. Cependant l exemple ci-dessus a permit de faire fonctionner sendmail d une manière simple et rapide mais certes avec des fonctionnalités limitées et un niveau de sécurité non optimal. 5/5

37 Great Circle Associates 1250 West Dana Street Mountain View, CA USA Jérôme Schaad Page 1/

38 ... 1 GREAT CIRCLE ASSOCIATES WEST DANA STREET MOUNTAIN VIEW, CA USA INTRODUCTION... 3 LE BUT DE CE DOCUMENT EST DE PRÉSENTER LE LOGICIEL MAJORDOMO AINSI QUE L INSTALLATION ET LA CONFIGURATION DE BASE PRÉSENTATION... 3 MAJORDOMO EST UN GESTIONNAIRE DE LISTES DE DIFFUSION GRATUIT. LE PRINCIPE D UN GESTIONNAIRE DE LISTES DE DIFFUSION EST DE GÉRER DES LISTES (EH! OUI) SUR LESQUELLES DES UTILISATEURS VONT ENSUITE POUVOIR ENVOYER DES MESSAGES, QUI SERONT DIFFUSÉS À TOUS LES ABONNÉS DE CETTE LISTE. LES LISTES DE DIFFUSION (OU MAILING LISTS EN ANGLAIS) SONT TOUT SIMPLEMENT DES COURRIERS ÉLECTRONIQUES, CONCERNANT UN THÈME PRÉCIS, ÉCHANGÉS AU SEIN D'UN GROUPE DE PERSONNES INSTALLATION CONFIGURATION UTILISATION CRÉATION D'UNE LISTE CONFIGURATION QUELQUES PRODUITS POUR CEUX QUI ONT LE COURAGE DE SE PASSER D'UNIX CONCLUSION... 9 Jérôme Schaad Page 2/

39 1. Introduction Le but de ce document est de présenter le logiciel Majordomo ainsi que l installation et la configuration de base. 2. Présentation Majordomo est un gestionnaire de listes de diffusion gratuit. Le principe d un gestionnaire de listes de diffusion est de gérer des listes (eh! oui) sur lesquelles des utilisateurs vont ensuite pouvoir envoyer des messages, qui seront diffusés à tous les abonnés de cette liste. Les listes de diffusion (ou Mailing Lists en anglais) sont tout simplement des courriers électroniques, concernant un thème précis, échangés au sein d'un groupe de personnes. Un message envoyé à une liste de diffusion est reçu par l'ensemble des personnes abonnées à cette liste, une réponse faite à un message reçu en tant qu'abonné à une liste de diffusion sera envoyé à tous les autres abonnés de la liste. abonnés à la liste de diffusion Abonné à la liste Serveur avec Majordomo Jérôme Schaad Page 3/

40 A la différence des forums de news, il n'y a pas de démarche "volontaire" pour lire les contributions puisque celles-ci arriveront directement dans votre boîte aux lettres électronique habituelle. Ces contributions ne seront en outre lues que par les abonnés et non publiques comme pour les news. Donc la liste de diffusion est plus "privée"que les news. L'expéditeur est toutefois identifié comme pour un courrier classique mais le destinataire est un groupe, dont vous ferez partie si vous vous abonnez à la liste de diffusion. Il vous sera bien sûr possible de vous désabonner à tout moment. Très souvent, les listes de diffusion proposent la consultation de leurs archives (tous les messages échangés depuis la création de la liste). Les listes de diffusions sont souvent utilisées afin de vérifier que le sujet abordé intéresse suffisamment de monde et génère un trafic justifiant la création d un nouveau groupe de news. L ensemble est dynamique, en effet, des listes sont crées, des utilisateurs s abonnent, se désabonnent. Pour corser le tout, on est en droit d imaginer un certain nombre d options dans les listes parmi lesquelles la possibilité d administrer les listes. Il en existe des milliers à travers le monde, sur des sujets très divers. Ces listes sont hébergées par des serveurs et gérées par une personne, appelée gestionnaire (le list-owner en anglais). 3. Installation Une fois perl installé et après que l'archive ait été décompressé, il ne nous reste plus qu'à compiler puis installer majordomo. Compilation Il est nécessaire de compiler le programme wrapper, qui est chargé de lancer les différents programmes perl. Il suffit d'éditer le fichier Makefile et de configurer les chemins d'accès. Je vous conseille d'installer majordomo dans le répertoire /usr/local/mail/majordomo. De même, il est conseillé de spécifier que le fichier de configuration de majordomo soit dans ce répertoire plutôt que dans /etc. Installation Pour effectuer l'installation, passer en super-utilisateur et lancer make install. Tous les programmes seront installés dans le répertoire que vous avez spécifié. L'installation des programmes est terminée. Il ne reste plus qu'à configurer l'outil, ce qui n'est pas forcément une simple affaire. 4. Configuration Jérôme Schaad Page 4/

41 L'opération de configuration est assez simple. Il suffit d'adapter le fichier sample.cf en fonction de la configuration locale. Il est ensuite nécessaire de le sauvegarder sous le nom de majordomo.cf. Voila, majordomo est prêt... enfin presque! Une fois les programmes installés, et majordomo configuré, il est ensuite nécessaire d'effectuer certaines opération d'administration système : créer un utilisateur majordom (sans o car 8 caractères maximum) majordom:*:1000:501:majordomo:/usr/local/mail:/dev/null éditer le fichier /etc/aliases, et y rajouter : # # Mailing list # majordomo: " /usr/local/mail/majordomo/wrapper majordomo" owner-majordomo: postmaster majordomo-owner: postmaster Le principe est que tout mail envoyé à majordomo est automatiquement traité par le programme. Wrapper n'est là que pour redistribuer le message en tout sécurité. Jérôme Schaad Page 5/

42 5. Utilisation Prenons un exemple concret : Pour souscrire à la liste Aviation, il suffit d envoyer un mail à majordomo: Destinataire : site> Message: subscribe Aviation commande nom de la liste votre adresse Vous recevrez quelques instants plus tard un courrier électronique avec le message d'introduction de la liste. Ensuite, une liste est quand même faite pour y écrire. Dans ce cas, l'adresse electronique est normalement inscrite dans le message introductif : ce n'est pas la même que celle pour souscrire! Les délais de réponses sont très variables. Tout dépend de la charge de la machine et de sa puissance. Enfin, la rapidité dépend également de la capacité d'envoie du courrier électronique du site. Il faut savoir qu'une liste très active et avec beaucoup de personnes est très consommatrice de ressources. Comment obtenir de l aide : Envoyer un mail à site> Message: help Quelques instants plus tard, vous allez recevoir la liste des principales commandes que vous pouvez utiliser. Voici une description des commandes utilisables (les champs entre crochets sont optionnels) : subscribe Nom_Liste [ ] : pour souscrire à une liste; unsubscribe Nom_Liste [ ] : pour se retirer d'une liste; get Nom_Liste Nom_Fichier : permet de récupérer des fichiers mis à la disposition des utilisateurs de la liste; index Nom_Liste : donne la liste des fichiers qui peuvent être récupérés par la liste; which [ ] : indique dans quelles liste vous êtes inscrit; who Nom_Liste : donne la liste des personnes qui ont souscrit à la liste; info Nom_Liste : renvoie le message d'introduction de la liste; lists : indique le nom des listes gérées par la machine; help : donne la liste des commandes; end : indique la fin de votre courrier (n'est utile que lorsque vous avez une signature qui peut perturber majordomo. Jérôme Schaad Page 6/

43 6. Création d'une liste Pour bien comprendre le mécanisme de création d'une nouvelle liste, je vais prendre la création de la liste Aviation. Dans un premier temps, il est nécessaire d'éditer le fichier /etc/aliases pour y rajouter la liste : # Liste Aviation Aviation -outgoing: :include:/usr/local/mail/lists/ Aviation Aviation:" /usr/local/mail/majordomo/wrapper resend -l Aviation -h rd.lectra.fr -r Aviation Aviation -outgoing" owner- Aviation: site>! du list-owner(gestionnaire) Aviation -request: " /usr/local/mail/majordomo/wrapper request-answer Aviation " Pour écrire à la liste, il suffit de faire : mail site> Subject: test Hello! L'alias qui est le plus important est celui ayant pour nom Aviation, car c'est à lui que l'on envoie les messages. Les options données spécifient : -l Aviation: spécifie la liste ; -h rd.<nom site>: donne l'adresse de la machine à indiquer dans les entêtes de courrier électronique ; -r Aviation: spécifie le champ Reply-To. 7. Configuration Une fois les alias correctement configuré, il est nécessaire de créer la liste au niveau de majordomo. Dans le répertoire /usr/local/mail/lists, il suffit de créer trois fichiers. Aviation: ce fichier contient toutes les adresses électroniques des personnes ayant souscrit à la liste se sera le carnet d adresses(il n'y a rien à faire) ; Aviation.info : message introductif renvoyé lors de la soubscription à la liste. Il s'agit d'un message au format texte ; Aviation.config : fichier de configuration de la liste. Le plus simple étant de prendre le fichier de configuration situé dans le fichier README de majordomo. Ce fichier de configuration est particulièrement bien commenté, et ne sera pas commenté ici. Majordomo permet de gérer également des listes dites «modérées». Dans ce cas, le courrier est tout d'abord envoyé au modérateur. Il est le seul habilité à envoyer un courrier dans la liste. Jérôme Schaad Page 7/

44 8. Quelques produits pour ceux qui ont le courage de se passer d'unix LetterRip MacOs ListSTAR MacOs Macjordomo MacOs Lyris Windows/NT ou 95 MDaemon windows-nt et 95 Mustang Web Essentials ListCaster windows-nt et 95 Pegasus Mercury windows-nt et 95 (liste perso) fastraq post server, windows nt4ou 95. SLMail Windows NT, 95 SVList windows95 La liste des produits est longue, voici une séléction. 1. Cerberus Mailer, produit commercial distribué en source perl 2. Petidomo produit commercial sous solaris, irix, linux, netbsd... Produit commercial mais gratuit pour «usage scientifique ou éducation». Ce produit s'installe très simplement avec en standard une interface d'administration de listes par serveur WWW. Le robot de listes est donc très facile à mettre en oeuvre mais son architecture (pas de daemon) n'est pas du tout fait pour supporter une charge importante. L'interface www d'administration pose des problèmes de sécurité puisqu'elle permet d'agir directement dans les alias! Petidomo semble être une très bonne solution pour des sites de petites tailles principalement pour des listes privées. 3. IDG (Internet Discussion Group) Plusieurs originalités de IDG réservent probablement son usage à de petites listes internes: o Une seule adresse pour les commandes et la liste. Ce qui n'est pas une commande est considéré comme un message... o Possibilité pour chaque utilisateur de définir un filtre par mots clefs pour sélectionner les messages que l'on désire recevoir. o Système simple de vote 4. ListProc, deux versions o V6 gratuite, parfois appelée Unix Listserv. ftp://cs-ftp.bu.edu/pub/listserv/current_version.z o CREN ListProc V7 gopher://info.cren.net (unix, windows-nt?) 5. LISTSERV, vendue par L-soft (E.Thomas). Windows-nt, Unix. (La doc d'administration fait 250 pages, celle à usage des propriétaires de listes ). 6. Mailbase : impose de disposer de ingres et perl utilisé pour le service académique de Janet : 1800 listes sur un serveur, probablement une bonne solution pour les gros sites. Jérôme Schaad Page 8/

45 7. MReply : Mail Forwarder Information, une boite à outil avec laquelle on peut faire des listes de diffusion. Configuration assistée par serveur WWW 8. SmartList : largement appuyé sur "procmail" écrit par le même programmeur. ftp://ftp.informatik.rwth-aachen.de. Ce gestionnaire de liste est assez original et offre de bons outils d'administration. 9. SYMPA : Système de Multi-Postage Automatique, une réécriture de TULP par le même auteur (C.Wolfhugel). ftp ://ftp.cru.fr/cru/listes/sympa. Les objectifs de la première version : maintenabilité du code, performances, authentification et purge sont atteints. L'Urec et le CRU y ont adaptée une première interface d'administration par WWW : weblist (fureter dans ftp://ftp.cru.fr/cru/listes ). 9. Conclusion Majordomo est très populaire sur l'internet parce qu il est libre de droit. Le langage utilisé pour développer majordomo est le PERL ce qui permet de nombreux ajouts. Il est rester longtemps sans concurrents, mais aujourd hui, on a un grand choix (voir point 8). Cela explique que toute la documentation le concernant est assez ancienne. Majordomo connaît certains problèmes de performances, en effet l'architecture de Majordomo n'est pas adaptée aux grosses listes. La stratégie adoptée par ce logiciel est de tout donner à sendmail. Cela signifie que Majordomo passe les messages à sendmail avec la liste des destinataires. Toute la charge repose donc sur sendmail et sur ses performances. Donc pour ceux qui veulent gérer des grosses listes, il ne vous reste plus qu à faire des recherches sur les autres produits. Jérôme Schaad Page 9/

46 Nicolas Leuenberger Procmail Technologies Web Module 2 Nicolas Leuenberger Page 1 /

47 Nicolas Leuenberger Introduction... 3 Fonctionnement... 3 La redirection de courrier... 4 Les filtres anti-spam... 4 Conclusion... 6 Références... 6 Page 2 /

48 Nicolas Leuenberger Introduction Procmail est un logiciel prévu pour fonctionner sous UNIX. C'est un outil très puissant qui permet de créer un serveur de messagerie, une liste de diffusion ou encore exécuter n'importe quel programme à l'arrivée d'un message. Mais il est avant tout utilisé pour filtrer les et il peut s'avérer très utile pour lutter contre un fléau croissant: "Le SPAM" dont on rapelle la définition: "Le spam (ou spamming, pourriel, junk ), c'est l'action d'envoyer des courriers électroniques, des s, dans un but publicitaire ou promotionnel, qu'ils soient commerciaux ou non, et en général en grand nombre, à des personnes qui ne l'ont pas sollicité." 1 Le meilleur moyen de présenter procmail est certainement de montrer quelques exemples de son fonctionnement et de son utilisation. Les parties contenues dans un encadré gris peuvent être utilisées tel quelle. Les parties de code en bleu servent pour les explications détaillées. Fonctionnement Pour pouvoir utiliser procmail, il faut qu'il soit installé et il faut que les utilisateurs possèdent dans leur répertoire personnel le fichier de configuration nommé ".procmailrc". Il faut placer dans ce fichier le lignes suivante pour que procmail puisse fonctionner: PATH=/bin:/usr/bin MAILDIR=$HOME/Mail SPAMBOX=spam LOGFILE=$MAILDIR/procmail.log PATH=/bin:/usr/bin Indique ou se trouve procmail (le chemin peut être différent). MAILDIR=$HOME/Mail Indique à procmail ou sauvegarder les messages, dans ce cas dans un dossier nommé "mail" dans le répertoire personnel. SPAMBOX=spam Crée une boite où les courriers de SPAM seront envoyés. Il est préférable de ne pas les supprimer directement car certains messages considérés à tort par procmail comme du SPAM pourraient être perdus. LOGFILE=$MAILDIR/procmail.log Permet de créer un journal qui enregistrera les actions de procmail. 1 Page 3 /

49 La redirection de courrier Nicolas Leuenberger Il faut maintenant créer des règles de filtrages pour utiliser véritablement procmail. Certains attributs des mails sont utilisés comme: "Subject", "From", "CC", "To". Ils sont défini par la rfc et sont donc standards. Voici un premier exemple d'utilisation d'une règle: :0! Avec cette règle, tout le courrier sera redirigé vers l'adresse le! est le caractère utilisé pour la redirection. Un exemple de redirection mais avec cette fois une condition. :0 c * ^Subject:.*[Uu]nix.*! :0 c Le "c" après le ":0" signifie qu'il faut garder une copie du mail sinon il sera simplement redirigé. * ^Subject:.*[Uu]nix.* L'étoile au début sert à indiquer qu'il s'agit d'une condition, la suite utilise les expressions régulières. Le "^" indique le début de la ligne, ".*" indique n'importe quelle chaîne de caractère ou aucune. Les lettres entre les crochets [ ] indiquent U ou u. Les expressions régulières peuvent être trouvées à l'adresse suivante: Cette règle signifie que les mails dont le sujet contient "Unix" seront redirigés vers Cette règle peut être utile par exemple pour un élève de la classe qui voudrait faire partager les mails concernant certains sujet à un de ses camarades ou même à plusieurs. Les filtres anti-spam Voici une règle très simple qui permet déjà d'éradiquer certains mail de SPAM: :0 * ^Subject:.*Viagra.* $SPAMBOX 2 Rfc sur les messages texte de 1982: ftp://ftp.rfc-editor.org/in-notes/rfc822.txt Page 4 /

50 Nicolas Leuenberger Cette règle enverra tous les courriers contenants le mot "Viagra" dans le sujet, directement dans le dossier SPAM. La règle suivante sert à filtrer des mails si ont connais l'adresse de l'expéditeur: :0 * $SPAMBOX Voici une manière un peu plus subtile de filtrer les mails: :0 * ^Content-Type:.*charset="ks_c_ "* $SPAMBOX * ^Content-Type:.*charset="ks_c_ "* Les ont un en-tête qui contient des informations, notamment un champ "Content-Type" qui contient l'encodage. Voici un aperçu de l'entête d'un message venant du secrétariat de l'esnig: On voit que la variable charset contient iso Il s'agit de la première partie de la norme internationale ISO qui défini le codage de caractères. Grâce à cette norme, les caractères utilisés dans les langues européennes peuvent être représentés. Si on avait voulu filtrer les mails européens c'est cette norme qui aurait du être placée dans la règle de filtrage. Dans le cas de mon exemple, les mails à filtrer sont ceux venant de Corée, la norme correspondante est donc "ks_c_ ". Tous les courriers venant de Corée seront donc envoyés vers la corbeille à SPAM. Page 5 /

51 Nicolas Leuenberger Conclusion J'ai présenté quelques possibilités de procmail, il en existe évidemment beaucoup d'autres plus puissantes, mais aussi plus difficiles à maîtriser. Les pages "man" fournissent beaucoup d'informations autant pour les débutants que pour les experts de procmail. En "man procmailex", une grande série d'exemples est proposée. Procmail est un outil puissant et polyvalent. Il convient néanmoins d'en faire un bon usage. Les règles définies ne doivent pas être trop restrictives, sinon certains courriers importants peuvent être perdus. Elles ne doivent pas être trop permissives non plus, sinon elles laissent passer trop de courriers indésirables. Références Site officiel de procmail: PDF sur procmail tiré du site linux-france: Une FAQ sur procmail: Un tutorial sur procmail avec exemples d'utilisation: Les expressions régulières: Les RFC: Page 6 /

52 P E R L O B J E T I N T R O D U C T I O N INTRODUCTION La programmation objet est, comme son nom l'indique basée sur les objets. Pour expliquer au mieux comment fonctionne le langage perl objet, je vais donc essayer de suivre la vie d'un objet. Partant tout d'abord de la classe de l'objet, qu'on pourrait un peu assimiler à un moule (ou un template pour faire plus "informatique"), je continue mon exposé par la création de l'objet puis l'objet lui-même. Une fois l'objet créé, il faudra pouvoir le manipuler. La suite de mon rapport parlera donc des méthodes, pour enfin en arriver la mort de l'objet, soit à la destruction. Je vais traiter la notion d'héritage en dernier car elle demande des pré requis qui seront expliquer au fur et à mesure de mon dossier. De plus, en annexe, je vais ajouter un exemple relativement simple mais complet dont le code sera repris au court du document afin d'illustrer la théorie. PERL OBJET Contrairement à d autres langages tels que smalltalk ou java, par exemple, perl n a pas été créé dans une vision de programmation objet.. Pour ne pas être en reste, la communauté perl a rapidement décidé de mettre en œuvre différentes extensions afin de pouvoir répondre aux exigences de ce type de programmation. Néanmoins, l idée étant de rependre un maximum d éléments existants dans le langage standard, il n a pas fallu un grand nombre de ces extensions pour étendre perl à l objet. Ainsi, perl objet existe depuis la version 5 datant d'environ 3 ans. Il subsiste néanmoins un bémol ; perl de part sa nature permissive, ne saurait être aussi strict que de "vrais" langages objets. C'est donc au programmeur qu'incombe la tâche de travailler le plus proprement possible. CLASSE Contrairement à d'autres langages orientés objet tel que le C++, perl n'a pas de syntaxe spéciale pour définir une classe. En perl, une classe sera représentée par un paquetage (package) qui contiendra les différentes méthodes et attributs définissant un type d'objet (l'objet étant la donnée-même). Un objet sera alors une référence sur ce paquetage. Exemple d'une classe "Vehicule" : # --- fichier Vehicule.pm --- package Vehicule; # nom de la classe use strict; # oblige le développeur a utiliser une syntaxe plus rigoureuse sub nouveau { } # constructeur sub tostring { } # méthode "tostring" sub DESTROY { } # destructeur 1; # code de retour Forchelet Réjane 2IGPTN-B

53 P E R L O B J E T I N T R O D U C T I O N Cependant, dans cet exemple, vous allez probablement vous demander où sont passés les attributs? Ils seront tout simplement contenus dans une table associative (ou table de hachage anonyme) créée à chaque déclenchement du constructeur soit lors de la création d'un nouvel objet. (cf. chapitre constructeur). Exemple d'affectation d'une table associative (rappel) : %vehicule = ( -NB_ROUES => 4, -COULEUR => bleu ); CONSTRUCTEUR Comme dans tout langage objet, le constructeur sera appeler lors de la création d'un nouvel objet. Cependant, contrairement au C++, entre autre, le constructeur ne doit pas nécessairement porté le nom de la classe. Nous sommes totalement libres concernant le nom de cette méthode. Cela a pour conséquence l'incapacité du compilateur à distinguer le constructeur des autres méthodes. C'est pourquoi, lorsqu'on voudra créer un objet, il faudra l'appeler explicitement, comme on le ferait avec toute autre méthode. Constructeur de "vehicule" sub nouveau { my ($class,$nbroues,$couleur) # 1 my $this = {}; # 2 bless($this, $class); # 3 $this->{nb_roues} = $nbroues; # 4 $this->{couleur} = $couleur; # 5 return $this; # 6 } #1 : Listes des paramètres effectifs de la fonction (passage par valeur. $classe représente le nom de la classe #2 : Création d'une référence anonyme vers une table associative vide. Elle est stockée dans la variable $this (souvent aussi appelé $self) qui représente notre futur objet. #3 : Permet de lier $this à la classe courante. En d'autre terme, on indique que notre futur objet est lié au package véhicule (=> notre objet est de type "véhicule"). On dit que la référence est alors bénie #4 : On affecte notre variable NB_ROUES (dans notre table associative) avec la variable nbroues passée en paramètre #5 : Idem mais avec la couleur #6 : On retourne le pointeur sur notre table associative remplie Il est également possible de créer plusieurs constructeurs pour une même classe, en affectant par exemple qu'un seul paramètre. On devra alors écrire le constructeur suivant : sub nouveau { my ($class, $couleur) # plus que 2 paramètres my $this = {}; bless($this, $class); $this->{nb_roues} = 0; # affectation à 0 $this->{couleur} = $couleur; return $this; } Forchelet Réjane 2IGPTN-B

54 P E R L O B J E T I N T R O D U C T I O N CREATION ET MANIPULATION D'OBJET La création d'un objet se fera par l'appel explicite du constructeur, comme je l'ai déjà mentionné ci-dessus. C'est donc à l'intérieur d'un script qu'on trouvera ce code. Exemple de création d'un "vehicule" #!/usr/bin/perl -w # --- script principal --- use strict; use Vehicule; my $v = Vehicule->nouveau( 2, "bleu" ); my $x = Vehicule->nouveau("rouge"); # idem ci-dessus # on spécifie qu'on veut utiliser la classe (le package) Vehicule # on crée une référence (v) qui va pointer sur un nouveau véhicule # on crée un autre objet à l'aide du deuxième constructeur A la place de my $v = Vehicule->nouveau( 2, "bleu" ) il est également possible d'utiliser la syntaxe suivante : my $v = nouveau Vehicule( 2, "bleu" ). Représentation de l'objet créé : Grâce au module Data::Dumper, il est possible d'afficher le contenu d'un objet en utilisant la commande ci-dessous : use Data::Dumper; print Dumper($v)."\n"; on obtiendra ainsi : $VAR1 = bless( { 'COULEUR' => 'bleu', 'NB_ROUES' => 2 }, 'Vehicule' ); Pour modifier ou récupérer l'attribut d'un objet on y accédera comme on le ferait pour une simple table associative, à savoir : affectation d'une valeur : $v{'couleur'} = 'vert'; récupération d'une valeur : $v{'couleur'}; # représente la valeur 'vert' (note de l'éditeur: à éviter l'accès direct, passer plutôt par des méthodes get et set définies dans ce but). Forchelet Réjane 2IGPTN-B

55 METHODE P E R L O B J E T I N T R O D U C T I O N Le but d'une méthode est, comme dans tout langage objet, de pouvoir manipuler et traiter un objet. C'est pourquoi, dans chaque méthode, le premier paramètre sera toujours notre objet (ou autrement dit notre référence bénie cf. chapitre constructeur). Méthode "tostring" (code écrit dans le package) sub tostring { my ($this) return "(Vehicule:$this->{NB_ROUES},$this->{COULEUR})"; } Appel (code écrit dans un script) print $v->tostring()."\n"; Après l'appel suivant, on obtiendra : (Vehicule:2,vert) DESTRUCTEUR Perl est un langage qui possède un garbage collector (comme java). Ainsi dès qu'une référence sur une table est libérée par la commande : $v = undef; l'objet devient inaccessible. Le garbage collector va donc automatiquement libérer l'espace mémoire occupé par l'objet. Le même mécanisme est enclenché lorsque la méthode x dans laquelle était définie la variable $v se termine (! mort de la variable $v). Il n'y a donc pas besoin de créer un destructeur comme en C++. Cependant, il existe une méthode spéciale, utilisant le mot réservé "DESTROY" qui sera déclenchée automatiquement juste avant que le garbage collector s'enclenche. On l'utilisera notamment pour libérer des ressources (fichiers, des bases de données, connexion réseau, etc.) Destructeur de véhicule (en l'occurrence sans grande utilité) sub DESTROY { my ($this) print "À la casse Vehicule! "; print "($this->{nb_roues} $this->{couleur})\n"; } Forchelet Réjane 2IGPTN-B

56 P E R L O B J E T I N T R O D U C T I O N HERITAGE L'héritage est un mécanisme permettant à une classe dite mère de transmettre ses méthodes à une classe fille. Afin d'indiquer que la classe y hérite de la classe x, on utilisera la Par exemple la classe Velo pourra hériter de la classe vehicule. # --- fichier Velo.pm --- package Velo; use strict; use Vehicule; = qw(vehicule); 1; En ce qui concerne la construction, le constructeur de la classe fille devra appeler celui de la classe mère, à l'aide du mot réservé SUPER puis ensuite rajouter les propres attributs relatifs uniquement à la classe fille. sub nouveau { my ($class,$couleur,$nbvitesses) my $this = $class->super::nouveau( 2, $couleur ); $this->{nb_vitesses} = $nbvitesses; return bless($this,$class); } On pourra ensuite définir autant de méthode qu'on veut, propre à la classe vélo (cf. chapitre méthode). De plus, la classe velo aura également le droit d'utiliser des méthodes de sa mère donc, dans notre script, les commandes suivantes seront tout à fait valide : use Velo; my $velo = Velo->nouveau('blanc',18); print $velo->tostring()."\n"; # création de l'objet # appel de la méthode On obtiendra alors : (Vehicule:2,blanc) Il est aussi possible de redéfinir une méthode de la classe mère si elle ne nous convient pas totalement. Par exemple, on pourrait compléter la méthode tostring afin qu'elle nous affiche également le nombre de vitesse. Redéfinition de la méthode "tostring" sub tostring { my ($this) my $s = "[Velo:$this->{NB_VITESSES}"; $s.= $this->super::tostring(); $s.= "]"; } Appel : print $velo->tostring()."\n"; Résultat : [Velo:18(Vehicule:2,blanc)] Forchelet Réjane 2IGPTN-B

57 P E R L O B J E T I N T R O D U C T I O N CONCLUSION Bien que ce dossier soit relativement succinct, j'ai essayé de donner les explications les plus complètes et les plus claires possibles en donnant un maximum d'exemple parlant. Je ne suis toutefois pas entrer dans les grands principes de la programmation objet, partant de l'idée que les futurs lecteur de ce document, à savoir les élèves de l'esnig, ont déjà tous des notions de programmations objet en C++. J'ai ainsi également tenté de faire le maximum de lien entre ces deux langages afin de leur donner des points de repaires. Ci-dessous, j'ai indiqué les sources que j'ai utilisé pour rédiger ce rapport afin de permettre au personne intéressée d'aller prendre plus de renseignement sur le sujet. SOURCE " " " " Forchelet Réjane 2IGPTN-B

58 P E R L O B J E T I N T R O D U C T I O N ANNEXE (EXEMPLE COMPLET) # --- fichier Vehicule.pm --- package Vehicule; use strict; sub nouveau { my ($class,$nbroues,$couleur) my $this = {}; bless($this, $class); $this->{nb_roues} = $nbroues; $this->{couleur} = $couleur; return $this; } sub nouveau { my ($class, $couleur) my $this = {}; bless($this, $class); $this->{nb_roues} = 0; $this->{couleur} = $couleur; return $this; } sub tostring { my ($this) return "(Vehicule:$this->{NB_ROUES},$this->{COULEUR})"; } sub DESTROY { my ($this) print "À la casse Vehicule! "; print "($this->{nb_roues} $this->{couleur})\n"; } 1; # --- fichier script.pl --- use strict; use Vehicule; my $v = Vehicule->nouveau( 2, "vert" ); $v{'couleur'} = 'bleu'; print $v->tostring()."\n"; # --- résultat --- (Vehicule:2,vert) # --- fichier Velo.pm --- package Velo; use strict; use Vehicule; Forchelet Réjane 2IGPTN-B

59 = qw(vehicule); P E R L O B J E T I N T R O D U C T I O N sub nouveau { my ($class,$couleur,$nbvitesses) my $this = $class->super::nouveau( 2, $couleur ); $this->{nb_vitesses} = $nbvitesses; return bless($this,$class); } sub tostring { my ($this) my $s = "[Velo:$this->{NB_VITESSES}"; $s.= $this->super::tostring(); $s.= "]"; } 1; # --- fichier script2.pl --- use strict; use Velo; my $velo = Velo->nouveau('blanc',18); print $velo->tostring()."\n"; # --- résultat --- [Velo:18(Vehicule:2,blanc)] Forchelet Réjane 2IGPTN-B

60 Travail Pratique de Web II 1 Solomon Sirak

61 Travail Pratique de Web II Présentation d Easy PHP Introduction EasyPhp est un langage de script côté serveur qui a été conçu spécifiquement pour le web. Dans un page HTML, vous pouvez inclure du code EasyPhp qui sera exécuté chaque fois qu un visiteur affichera la page. Ce code PHP est interprété au niveau du serveur Web et génère du code HTML ou tout autre donnée affichable dans le navigateur de l utilisateur. Php a été conçu en 1994 par Rasmus Lerdorf. Il a ensuite été adopté par d autres personnes influentes, et il a été récrit trois fois avant de devenir le produit abouti que nous connaissons aujourd hui. A la fin de l année 2002, il était utilisé dans plus de neuf millions de domaines et sa croissance est rapide. Vous trouverez des statistiques plus récentes sur le site Le but de cette présentation est d avoir un aperçu du langage EasyPhp, de comprendre comment le serveur interprète le code PHP ainsi que l installation du logiciel EasyPhp et l utilisation de MySQL. 2 Pourquoi EasyPHP? Le langage PHP est un langage extrêmement puissant : il permet de créer des pages web, au travers desquelles l'utilisateur peut échanger des informations avec le serveur ; c'est ce qu'on appelle des pages web dynamiques. Programmer en PHP est assez simple. En revanche, EasyPhp n'est pas un langage compilé, c'est un langage interprété par le serveur : le serveur lit le code EasyPhp, le transforme et génère la page HTML. Pour fonctionner, il a donc besoin d'un serveur web. Donc si vous souhaitez utiliser des pages en PHP dans votre site web, pour les tester, il faudra les exécuter sur un serveur web. Donc deux solutions : Soit vous les envoyez régulièrement grâce à un programme FTP sur votre serveur web pour les tester. C'est faisable, mais ça peut devenir fastidieux. Soit vous installez un serveur web en local, qui vous permettra de tester directement vos pages PHP. EasyPHP permet de réaliser simplement cette dernière solution. Enfin, EasyPHP permet également d'installer MySQL, le troisième et inséparable membre du trio Apache/PHP/MySQL. Vous n'avez alors plus à vous occuper de la manière dont les données sont stockées sur le disque dur, de simples instructions permettent d'ajouter, de supprimer, de mettre à jour et surtout de rechercher des données dans une base de donnée. On peut de plus accéder très facilement à une base de donnée MySQL à partir de PHP, ce qui permet de développer des sites web

62 Travail Pratique de Web II très performants et interactifs. En utilisant EasyPHP, vous pouvez installer un serveur web complet, qui vous permettra de faire tous vos tests de pages PHP en toute facilité. L'interprétation du code php par le serveur Un script PHP est un simple fichier texte contenant des instructions incluses dans un code HTML à l'aide de balises spéciales et stocké sur le serveur. Ce fichier doit avoir l'extension ".php" pour pouvoir être interprété par le serveur! Ainsi, lorsqu'un navigateur (le client) désire accéder à une page dynamique réalisé en php: le serveur reconnaît qu'il s'agit d'un fichier php il lit le fichier php Dès que le serveur rencontre une balise indiquant que les lignes suivantes sont du code php, il "passe" en mode php, ce qui signifie qu'il ne lit plus les instructions: il les exécute! Lorsque le serveur rencontre une instruction, il la transmet à l'interpréteur L'interpréteur exécute l'instruction puis envoie les sorties éventuelles au serveur A la fin du script, le serveur transmet le résultat au client (le navigateur) 3 Voici un exemple d intégration de code PHP dans du code HTML <html> <head> <title>mon premier page on PHP</title> </head> <body> <h1>voici mon premier page on PHP</h1> <?php echo <p><h3>bonjour tout le monde</h3> ; echo <br> ; echo date ( H :i, js F ) ; echo </p> ;?> </body> </html> Notez que l extension du fichier doit obligatoirement être php. Par exemple index.php

63 Travail Pratique de Web II Le serveur va interpréter le code php est il va donner le résultat au navigateur de la manière suivante: 4 Donc le code php stocké sur le serveur n'est pas visible directement par le client puisque dès qu'il en demande l'accès, le serveur l'interprète. De cette façon aucune modification n'est à apporter sur les navigateurs.

64 Travail Pratique de Web II 5 Installation et activation du serveur La mise en place d'easyphp est très simple. EasyPHP propose le téléchargement en une fois et l'installation en un assistant des trois programmes précédemment cités, Apache, PHP et MySQL. Cela permet d'installer automatiquement ceux-ci, en se libérant des problèmes liés à la configuration manuelle qui est souvent nécessaire lorsqu'on les installe séparément. L'activation du serveur n'est pas plus compliquée. Exécutez EasyPHP à partir du menu Démarrer (Démarrer > Programmes > EasyPHP > EasyPHP). Lorsqu'EasyPHP est lancé, les serveurs Apache et MySQL sont automatiquement lancés (il est même possible de le faire automatiquement au démarrage de Windows). Une petite icône s'installe dans la barre des tâches, à côté de l'horloge, permettant un accès rapide aux fonctions proposées par EasyPHP : Arrêter et Redémarrer les serveurs Apache et MySQL. Accéder au "Web local", c'est-à-dire la racine des sites web. Un panneau d'administration en PHP Un outil de configuration d'easyphp L'accès aux logs

65 Travail Pratique de Web II L'aide EasyPHP est activé Pour lancer l'interface d'easyphp, c'est très simple, il suffit soit de faire un clic droit sur l'icône EasyPHP, en bas à droite de l'écran, et sélectionnez Web local dans le menu qui apparaît, ou de lancer une page Internet Explorer en appliquant cette adresse (http:// ). Normalement une nouvelle fenêtre de votre navigateur par défaut s'ouvre sur l'interface d'easyphp. Elle vous permet d'effectuer plusieurs manipulations comme l'administration de la base de données, la gestion des projets, vérifier la version de PHP, etc... 6 Interface d'easyphp Utilisation de MySQL avec EasyPhp EasyPhp est livré avec PhpMyAdmin, En effet EasyPHP propose une base de données par défaut du nom de Test. Cliquez sur le bouton PHPMyAdmin dans l'interface d'easyphp. C'est avec cet outil que vous allez créer et administrer votre base de données en local. L'interface de PHPMyAdmin vous permet d'effectuer toutes les opérations que vous voulez sur votre base de données, tels le remplissage et la création de tables.

66 Travail Pratique de Web II Interface de PhpMyAdmin Quelques avantages d EasyPhp 7 Performances EasyPhp est très efficace. Avec un seul serveur d entrée de gamme, vous pouvez servir des millions de requêtes par jour. Intégration avec les bases de données EasyPhp contient des connexions natives vers la plupart des systèmes de bases de données. En plus de Mysql, vous pouvez vous connecter directement aux bases de données PostgreSQL, msql, Oracle etc. Grâce au standard ODBC(Open Database Connectivity), vous pouvez en fait vous connecter à n importe quelle base de données possédant un pilote ODBC, comme les produits de Microsoft. Bibliothèques intégrées Comme EasyPhp a été conçu pour être utilisé sur le web, il possède plusieurs fonctions intégrées permettant d effectuer la plupart des tâches en rapport avec le web. Vous pouvez ainsi générer des images GIF en temps réel, vous connecter à d autres services réseaux, envoyer des , travailler avec les cookies, et générer des documents PDF, avec seulement quelques linges de code. Coût EasyPhp est gratuit. Vous pouvez vous procurer la dernière version à n importe quel moment sur le site sans payer quoi que ce soit.

67 Travail Pratique de Web II Apprentissage d EasyPhp La syntaxe d EasyPhp est fondée sur celle d autres langages de programmation, essentiellement le C et Perl. Si vous savez déjà programme en C ou en Perl, ou en un autre langage analogue au C, comme C++ ou Java, vous serez presque immédiatement opérationnel avec EasyPhp. Portabilité EasyPhp est disponible pour plusieurs systèmes d exploitation différents. Vous pouvez écrire votre code php pour des systèmes d exploitation de type Unix, comme Linux ou FreeBSD, pour des versions commerciales d Unix comme Solaris ou IRIX ou pour différentes versions de Windows. Code Source Le code source d EasyPhp est accessible. Contrairement aux produits commerciaux, dont les sources ne sont pas distribuées, vous avez tout à fait la possibilité de modifier ce langage ou d y ajouter de nouvelles caractéristiques. 8 Remarques importante Il faut installer les trois composants suivent php, apache et mysql, ainsi vous pourrez commencer à travailler avec les codes EasyPhp pour générer des pages web dynamique. Si vous voulez faire une base de donnée à travers le web il faut faire très attention, car pour gérer le serveur Mysql et une base de données on peut utiliser deux méthodes : 1. Utilisation à travers le navigateur Mysql : le navigateur fait pour vous tout le travail pour la création, la modification et la suppression de la base de données. 2. Utilisation de la ligne de commande : pour l utiliser, il faut avoir une bonne connaissance des commandes SQL. Si vous utilisez les deux méthodes en même temps, vous aurez des problèmes. A moins que vous ne maîtrisiez les requêtes et toute l administration de SQL. Téléchargement Vous pouvez télécharger EasyPHP à l'adresse suivante :

68 Travail Pratique de Web II Références 9

69 Web II Travail pratique SAX (Simple API for XML) But du travail pratique Expliquer brièvement l'utilité de SAX avec exemples d'utilisation. Définition C'est une API qui permet d'extraire des données d'un document XML. Sa particularité est qu'elle travaille sur un mode événementiel, c'est-à-dire qu'elle va parcourir le document jusqu'à ce qu'elle trouve l'événement (balise) recherché. Elle est donc opposée à DOM, autre API, qui elle va construire l'arborescence du document XML dans son entier. figure extraite du rapport de Sabrina Antonioli Avantages Cela dépend évidemment du but pour lequel on utilise ces API. L'avantage principal est la légèreté du traitement, notamment pour les documents volumineux. SAX ne fait que parcourir le document jusqu'à l'événement souhaité, sans le stocker en mémoire (au contraire de DOM). Sax est donc plus rapide et moins vorace en mémoire. Désavantages C'est le défaut de ses qualités : SAX ne permet pas de connaître ce qui précède l'événement recherché. Si on a besoin de ce genre de renseignements, il faudra stocker nous-même dans des conteneurs (vecteur ou autre) les informations pour un usage ultérieur. C'est aussi plus difficile à programmer. L'élément rendu par le parseur est isolé de son contexte, il n'est pas toujours utilisable immédiatement. Olivier Martin Page 1 sur 6

70 Web II Travail pratique Contenu pour le langage Java L'API est contenue dans le package org.xml.sax de la librairie JAXP (Java API for XML Parsing). L'interface principale est ContentHandler (gestionnaire de contenu). Elle déclare 11 méthodes pour analyser le document XML. Principales méthodes de ContentHandler : public void startdocument() public void enddocument() public void startelement (String name, AttributeList attrs) public void endelement (String name) public void characters (char buf [], int offset, int len) : Cette méthode est appelée par le parser une et une seule fois au démarrage de l'analyse de votre flux xml. : Et son contraire, cette méthode est donc appelée à la fin du parcours du flux après toutes les autres méthodes. : est invoquée lors de la lecture d'un tag ouvrant. : est invoquée lors de la lecture d'un tag fermant. : Tout ce qui est dans l'arborescence mais n'est pas partie intégrante d'un tag, déclenche la levée de cet événement. En général, cet événement est donc levé tout simplement par la présence de texte entre la balise d'ouverture et la balise de fermeture comme dans l'exemple suivant: <mabalise>un peu de texte</mabalise> Mais le comportement peut varier lors de balises imbriquées Il est à noter que pour les utiliser, le programme doit utiliser un parser. C'est avec l'instanciation des classes SAXParserFactory et SAXParser qu'on crée ce parser (classes de la librairie javax.xml.parsers. Petit exemple simple Fichier XML source : <?xml version="1.0" encoding="utf-8"?> <!-- Document : TechTipArchive.xml --> <tips> <author id="glen" fullname="glen McCluskey"/> <tip title="random Access for Files" author="glen" htmlurl="/developer/techtips/2000/tt0509.html#tip1" texturl="/developer/techtips/txtarchive/may00_glenm.txt"> </tip> </tips> Le code java suivant va chercher la balise tip, extraire la valeur de ses 3 attributs. Ce code va écrire un fichier HTML avec les éléments extraits et d'autres textes écrits en dur dans le code. Olivier Martin Page 2 sur 6

71 Web II Travail pratique /* * UseSAX2.java * * Created on 6. mai 2004, 11:55 */ /** igp02martin */ import java.io.*; import java.net.*; import java.util.*; import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; /** * Builds a simple HTML page which lists tip titles * and provides links to HTML and text versions */ public class UseSAX2 extends DefaultHandler { StringBuffer htmlout; public String tostring() { if (htmlout!= null) return htmlout.tostring(); return super.tostring(); } public void startelement(string namespace, String localname, String qname, Attributes atts) { if (localname.equals("tip")) { String title = atts.getvalue("title"); String html = atts.getvalue("htmlurl"); String text = atts.getvalue("texturl"); htmlout.append("<br>"); htmlout.append("<a HREF="); htmlout.append(html); htmlout.append(">html</a> <A HREF="); htmlout.append(text); htmlout.append(">text</a> "); htmlout.append(title); } } public void processwithsax(string urlstring) throws Exception { System.out.println("Processing URL " + urlstring); htmlout = new StringBuffer("<HTML><BODY><H1>JDC Tech Tips Archive</H1>"); SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newsaxparser(); ParserAdapter pa = new ParserAdapter(sp.getParser()); pa.setcontenthandler(this); pa.parse(urlstring); htmlout.append("</body></html>"); } public static void main(string[] args) { try { UseSAX2 us = new UseSAX2(); us.processwithsax("c:/saxom/techtiparchive.xml"); String output = us.tostring(); System.out.println("Saving result to " + "C:/SAXom/Simple.html"); FileWriter fw = new FileWriter("C:/SAXom/Simple.html"); fw.write(output, 0, output.length()); fw.flush(); } Olivier Martin Page 3 sur 6

72 Web II Travail pratique } catch (Throwable t) { t.printstacktrace(); } } Le fichier de sortie est : <HTML> <BODY> <H1>JDC Tech Tips Archive</H1> <br> <A HREF=/developer/TechTips/2000/tt0509.html#tip1>HTML </A> <A HREF=/developer/TechTips/txtarchive/May00_GlenM.txt>TEXT </A> Random Access for Files </BODY> </HTML> N.B. J'ai mis manuellement les retours à la ligne, le programme écrit tout sur une seule ligne. Olivier Martin Page 4 sur 6

73 Web II Travail pratique Deuxième exemple Ce code va simplement parcourir le fichier XML et envoyer sur la sortie standard (System.out.println)ce même document mais avec une mise en page corrigée au niveau des indentations, qui seront correctes en fonction du niveau d'imbrication import java.io.*; import org.xml.sax.*; import javax.xml.parsers.saxparserfactory; import javax.xml.parsers.saxparser; public class Echoing extends HandlerBase { // Pour gérer l'indentation du document final. private String indentstring = " "; private int indentlevel = 0; // Démarrage de votre programme public static void main (String args []) { if (argv.length!= 1) { System.err.println ("Usage: cmd filename"); System.exit(-1); } SAXParserFactory factory = SAXParserFactory.newInstance(); try { SAXParser saxparser = factory.newsaxparser(); saxparser.parse( new File(argv [0]), new Echoing() ); } catch (Throwable t) { t.printstacktrace (); } } System.exit(0); ///////////////////////////////////////////////////////////// // Les gestionnaires d'évènements SAX /////////////////////// ///////////////////////////////////////////////////////////// public void startdocument () throws SAXException { System.out.println("START DOCUMENT"); System.out.println("<?xml version='1.0' encoding='utf-8'?>"); } public void enddocument () throws SAXException { System.out.println("END DOCUMENT"); if (indentlevel > 0) System.out.println("AIEEEE"); } public void startelement (String name, AttributeList attrs) throws SAXException { tabs(); System.out.print("<" + name); if (attrs!= null) { for (int i = 0; i < attrs.getlength (); i++) { System.out.println(); tabs(); System.out.print(" "); System.out.print(attrs.getName (i)); System.out.print(" = \""); Olivier Martin Page 5 sur 6

74 Web II Travail pratique } } System.out.print(attrs.getValue (i)); System.out.print("\""); } if (attrs.getlength() > 0) { System.out.println(""); tabs(); } System.out.println(">"); indentlevel++; public void endelement (String name) throws SAXException { indentlevel--; tabs(); System.out.println("</" + name + ">"); } public void characters (char buf [], int offset, int len) throws SAXException { String s = new String(buf, offset, len); if (!s.trim().equals("")) { tabs(); System.out.println(s); } } ///////////////////////////////////////////////////////////// // Fonctions utilitaires //////////////////////////////////// ///////////////////////////////////////////////////////////// } private void tabs() { for(int i=0;i<indentlevel;i++) { System.out.print(indentString); } } Malheureusement, je n'ai pas d'exemple à montrer, je n'ai pas pu faire tourner ce code. Conclusion SAX est une API qui amène des avantages lors de certains traitements sur les fichiers XML. On trouve plutôt des exemples d'utilisation avec le langage Java. Comme je ne connaissais par ce langage, j'ai eu passablement de difficultés à faire tourner ces codes. La compréhension du programme n'était pas trop difficile, mais l'utilisation de l'environnement Java m'a posé beaucoup de problèmes, notamment au niveau de l'importation des classes. Références Magazine LOGIN numéro spécial XML Olivier Martin Page 6 sur 6

75 Magali Arnoux 2IGPTC Mai 2004 WEB 2 ESNIG Salle 33

76 ESNIG Magali Arnoux Table des matières TABLE DES MATIÈRES... 1 PRÉSENTATION DU PROBLÈME... 2 MÉTHODE... 2 DÉVELOPPEMENT... 2 MODIFICATION... 2 MISE EN PAGE... 3 Explication d'un bout de code posant quelques problèmes... 3 CONCLUSION... 4 RÉFÉRENCE... 4 ANNEXES... 5 DTD... 5 FEUILLE XSL... 5 FICHIER XML... 7 FICHIER HTML

77 ESNIG Magali Arnoux Présentation du problème Le problème consiste à créer un fichier XSL pour faire le passage entre un fichier XML et un fichier HTML. Le fichier HTML doit avoir une mise en page agréable et structurée. Il va présenter une fiche qui traitera de différents sujets (article, livre, site Web, chapitre, rapport, court), donc qui sera de différents types. La fiche que j'ai reprise avait déjà été crée en classe. Mon but était surtout de l'améliorer. Méthode Pour la première version de la fiche, nous avons travaillé avec le logiciel UXML de M.Pochon. Mais pour ma version, j'ai préférer utiliser NetBeans IDE 3.5.1, car je l'utilise pour mon projet partiel et c'est celui avec lequel je suis le plus à l'aise. Pour m'aider, j'ai aussi consulté quelques sites internet dont vous trouverez les références ci-après. Développement Pour commencer, nous avons décidé des modifications que j'allais faire sur la première fiche et de sa nouvelle mise en page. Pour cela nous avons travaillé sur le fichier DTD. Modification L'élément TYPE deviendra un attribut de FICHE qui pourra avoir comme valeur : - Article - Livre - SiteWeb - Chapitre - Rapport - Cours Si aucune valeur n'est entrée, Livre se mettra par défaut. Les élément LANGUE et STYLE deviendront eux aussi des attributs optionnels de FICHE. Un élément META a été rajouté pour indiquer le nom du langage et pouvoir mettre des mots clés pour le référencement. Il comprend deux attributs NAME et CONTENU. 2

78 ESNIG Magali Arnoux Une entité signature a été créée pour englober l'élément AUTEUR et DATE. Pour finir, on a ajouté un + à l'entité reference pour donner la possibilité de choisir entre l'élément REF et URL ou alors de prendre les deux. Mise en page Voici le schéma approximatif de la mise en page : Titre Référence ou/et URL Résumé Remarques Auteur Nom et Prénom Date jour/mois/année Pour modifier la mise en page, on doit travailler dans le fichier XSL. Pour cela j'ai utilisé les commandes de base de ce langage : - <xsl:template match=" "> - <xsl:apply-templates/> - <xsl:value-of select="."/> Explication d'un bout de code posant quelques problèmes Pour la définition de la mise en page de l'url, on utilise la commande attribut pour créer le lien avec l'adresse. <xsl:template match="url"> <TABLE WIDTH="90%" ALIGN="CENTER"> <TR> <TD WIDTH="20%"><B>URL : </B></TD> <TD> <a><xsl:attribute name="href">http://<xsl:value-of select="."/> </xsl:attribute> <xsl:value-of select="."/> </a> </TD> </TR> </TABLE> </xsl:template> 3

79 ESNIG Magali Arnoux Le nom (name) de cet attribut deviendra l'attribut de la balise HTML <a>. J'ai ajouté pour que l'adresse soit complète. La première balise <xsl:value-of select="."/> permet d'ajouter l'adresse après le et la deuxième permet de l'ajouter entre les balises <a> et </a>. Conclusion Ce travail m'a permis de bien comprendre les liens qu'il y a entre ces différents fichiers. Je me sens beaucoup plus à l'aise avec le XML et le XSL. J'ai vraiment apprécié faire ce travail pratique, il m'a aidé à faire le rapprochement entre la théorie et la pratique. Référence 4

80 ESNIG Magali Arnoux Annexes DTD <!-- Fiche de resume --> <!ENTITY % reference "(REF URL)+"> <!ENTITY % date "JOUR,MOIS,ANNEE"> <!ENTITY % fiche "META,TITRE,REFERENCE,RESUME,REMARQUE,SIGNATURE"> <!ENTITY % auteur "NOM,PRENOM"> <!ENTITY % signature "AUTEUR,DATE"> <!ELEMENT FICHE (%fiche;)> <!ATTLIST FICHE TYPE ( article livre siteweb chapitre rapport cours ) "livre" LANGUE CDATA #IMPLIED STYLE CDATA #IMPLIED > <!ELEMENT META EMPTY> <!ATTLIST META NOM CDATA #IMPLIED CONTENU CDATA #IMPLIED > <!ELEMENT TITRE (#PCDATA)> <!ELEMENT RESUME (#PCDATA)> <!ELEMENT REFERENCE (%reference;)> <!ELEMENT AUTEUR (%auteur;)> <!ELEMENT DATE (%date;)> <!ELEMENT REMARQUE (#PCDATA)> <!ELEMENT URL (#PCDATA)> <!ELEMENT REF (#PCDATA)> <!ELEMENT JOUR (#PCDATA)> <!ELEMENT MOIS (#PCDATA)> <!ELEMENT ANNEE (#PCDATA)> <!ELEMENT NOM (#PCDATA)> <!ELEMENT PRENOM (#PCDATA)> <!ELEMENT SIGNATURE (%signature;)> Feuille XSL <!DOCTYPE xsl:stylesheet SYSTEM "fichepresent.dtd"> <!-- --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output doctype-public="-//w*c//dtd HTML 4.0 Transitional //EN" /> <!--used by: fichepresent.xml --> <xsl:template match="/"> <HTML> <TITLE>Fiche de resume</title> <xsl:apply-templates/> </HTML> </xsl:template> <xsl:template match="meta"> <HEAD> <xsl:apply-templates/> </HEAD> </xsl:template> 5

81 ESNIG Magali Arnoux <xsl:template match="fiche"> <BODY> <xsl:apply-templates/> </BODY> </xsl:template> <xsl:template match="titre"> <H1 ALIGN="CENTER"> <xsl:value-of select="."/> </H1> </xsl:template> <xsl:template match="reference"> <xsl:apply-templates/> </xsl:template> <xsl:template match="ref"> <TABLE WIDTH="90%" ALIGN="CENTER"> <TR> <TD WIDTH="20%"><B>REFERENCE : </B></TD> <TD> <xsl:value-of select="."/> </TD> </TR> </TABLE> </xsl:template> <xsl:template match="url"> <TABLE WIDTH="90%" ALIGN="CENTER"> <TR> <TD WIDTH="20%"><B>URL : </B></TD> <TD> <a><xsl:attribute name="href">http://<xsl:value-of select="."/> </xsl:attribute> <xsl:value-of select="."/> </a> </TD> </TR> </TABLE> </xsl:template> <xsl:template match="resume"> <TABLE WIDTH="90%" ALIGN="CENTER"> <TR> <TD WIDTH="20%"><B>RESUME : </B></TD> <TD> <xsl:value-of select="."/> </TD> </TR> </TABLE> </xsl:template> <xsl:template match="remarque"> <TABLE WIDTH="90%" ALIGN="CENTER"> <TR> <TD WIDTH="20%"><B>REMARQUES : </B></TD> <TD> <xsl:value-of select="."/> </TD> </TR> </TABLE> </xsl:template> <xsl:template match="signature"> <TABLE WIDTH="90%" ALIGN="CENTER"><TR> <TD WIDTH="20%"><B>AUTEUR : </B></TD> <TD> <xsl:value-of select="auteur/nom"/> <xsl:value-of select="auteur/prenom"/> 6

82 ESNIG Magali Arnoux </TD> <TD WIDTH="20%"><B>DATE : </B></TD> <TD> <xsl:value-of select="date/jour"/> / <xsl:value-of select="date/mois"/> / <xsl:value-of select="date/annee"/> </TD> </TR></TABLE> </xsl:template> </xsl:stylesheet> Fichier XML <!DOCTYPE FICHE SYSTEM "fichepresent.dtd"> <?XML-STYLESHEET TYPE="text/xsl" HREF="XslFichePresent.xsl"?> <FICHE TYPE="livre" LANGUE="fr"> <META NOM="html"/> <TITRE>TITRE LIVRE</TITRE> <REFERENCE><URL>www.commentcamarche.net</URL><REF>Reference</REF></REFERENC E> <RESUME>blabla bla bla blabla bla</resume> <REMARQUE>Il y a 45 pages</remarque> <SIGNATURE> <AUTEUR><NOM>Arnoux</NOM><PRENOM>Magali</PRENOM></AUTEUR> <DATE><JOUR>24</JOUR><MOIS>mars</MOIS><ANNEE>2004</ANNEE></DATE> </SIGNATURE> </FICHE> Fichier HTML <!DOCTYPE HTML PUBLIC "-//W*C//DTD HTML 4.0 Transitional //EN"> <HTML> <HEAD> <TITLE>Fiche de resume</title> </HEAD> <BODY> <H1 ALIGN="CENTER">TITRE LIVRE</H1> <TABLE WIDTH="90%" ALIGN="CENTER"><TR><TD WIDTH="20%"><B>URL : <a href=""http://www.commentcamarche.net">www.www.commentcamarche.net<a></b> </TD> <TD></TD> </TR> </TABLE> <TABLE WIDTH="90%" ALIGN="CENTER"><TR><TD WIDTH="20%"><B>REFERENCE : </B> </TD> <TD>Reference</TD> </TR> </TABLE> <TABLE WIDTH="90%" ALIGN="CENTER"><TR><TD WIDTH="20%"><B>RESUME : </B> </TD> <TD>blabla bla bla blabla bla</td> </TR> </TABLE> <TABLE WIDTH="90%" ALIGN="CENTER"><TR><TD WIDTH="20%"><B>REMARQUES : </B> </TD> <TD>Il y a 45 pages</td> </TR> 7

83 ESNIG Magali Arnoux </TABLE> <TABLE WIDTH="90%" ALIGN="CENTER"><TR><TD WIDTH="20%"><B>AUTEUR : </B> </TD> <TD>ArnouxMagali</TD> <TD WIDTH="20%"><B>DATE : </B> </TD> <TD>24 / mars / 2004</TD> </TR> </TABLE> </BODY> </HTML> 8

ANNEXE 1 : Les normes utilisées en visioconférence.

ANNEXE 1 : Les normes utilisées en visioconférence. ANNEXE 1 : Les normes utilisées en visioconférence. La grande variété de constructeurs de matériel pour la visioconférence a poussé les organismes de normalisation à étudier des recommandations dans ce

Plus en détail

sdeon@cloud-morning.fr Septembre 2015

sdeon@cloud-morning.fr Septembre 2015 sdeon@cloud-morning.fr Septembre 2015 1 Le chiffrement seul permet de protéger les informations Pour HTTP, il y a une couche de chiffrement, d authentification et de contrôle d intégrité avec la surcouche

Plus en détail

Génération & Intégration Des certificats SSL Dans Apache & IIS

Génération & Intégration Des certificats SSL Dans Apache & IIS Génération & Intégration Des certificats SSL Dans Apache & IIS Classification : Non sensible public 2/11 Table des matières 1 Obtention d un certificat SSL... 4 2 Installation dans Apache/Linux... 5 2.1

Plus en détail

Projet Magistère: SSL

Projet Magistère: SSL Université Joseph Fourier, IMA Janvier 2010 Table des matières 1 Introduction 2 Qu est ce que SSL? 3 Historique de SSL/TLS 4 Théorie à propos du fonctionnement de SSL 5 Structure d un certificat 6 SSL

Plus en détail

Les certificats. Mise en place d une autorité de certification

Les certificats. Mise en place d une autorité de certification Les certificats Mise en place d une autorité de certification Imaginez une entreprise qui met en service un serveur web. Ce service peut faire l objet d une stratégie de sécurité. On souhaite donc mettre

Plus en détail

TP Cryptographie. Seul les services ssh et http/https sont accessibles depuis le poste de travail vers le serveur

TP Cryptographie. Seul les services ssh et http/https sont accessibles depuis le poste de travail vers le serveur TP Cryptographie Utiliser la machine virtuelle : devil crypto.tar.bz2!! Utiliser l'annexe en fin de TP. Le serveur devil sera considéré comme le serveur web, de plus il met à disposition: Le login administrateur

Plus en détail

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.

Plus en détail

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0 M I N I - P K I SRS Epita Promo 2009 SÉCURITÉ DU SI SUJET (3): Mini PKI Version : 1.0 Denoun Jérémy De Daniloff Cyril Bettan Michael 1 4-1 6 r u e v o l t a i r e 9 4 2 3 0 K r e m l i n B i c ê t r e

Plus en détail

HTTPS. Sommaire : Définition A quoi sert-il? Son but Différences HTTP/HTTPS SSL Fonctionnement Le cryptage Avantage/Inconcénient Mise en oeuvre

HTTPS. Sommaire : Définition A quoi sert-il? Son but Différences HTTP/HTTPS SSL Fonctionnement Le cryptage Avantage/Inconcénient Mise en oeuvre HTTPS Sommaire : Définition A quoi sert-il? Son but Différences HTTP/HTTPS SSL Fonctionnement Le cryptage Avantage/Inconcénient Mise en oeuvre Définition HTTPS (HyperText Transfer Protocol Secure) C'est

Plus en détail

VPN L2TP/IPsec en utilisant un certificat X.509 v3

VPN L2TP/IPsec en utilisant un certificat X.509 v3 VPN L2TP/IPsec en utilisant un certificat X.509 v3 Installer une autorité de certification d entreprise : Dans notre cas de figure nous sommes dans un domaine qui s appelle «konoha.com». Une autorité de

Plus en détail

HTTPS : HTTP Sécurisé

HTTPS : HTTP Sécurisé HTTPS : HTTP Sécurisé Décembre 2000 sa@cru.fr Objectifs Crypter la communication entre le client et le serveur Authentifier le serveur Authentifier la personne 1 Principes élémentaires de crypto Cryptage

Plus en détail

Les Services de Messagerie

Les Services de Messagerie Les Services de Messagerie Principe de fonctionnement Serveur SMTP Opérateur Internet b.durand Recherche SMTP «récupère route DNS» le Le a.dupont Message confie est remis son message Enregistrement message

Plus en détail

Certificats électroniques

Certificats électroniques Certificats électroniques Matthieu Herrb Jean-Luc Archimaud, Nicole Dausque & Marie-Claude Quidoz Février 2002 CNRS-LAAS Plan Services de sécurité Principes de cryptographie et signature électronique Autorités

Plus en détail

Travaux pratiques sur l API Openssl

Travaux pratiques sur l API Openssl Travaux pratiques sur l API Openssl Ces travaux pratiques sont basés sur Openssl. Openssl est l Api de crypto la plus répandue. Elle est open source avec licence GPL. On trouvera toutes les informations

Plus en détail

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents. Serveur de partage de documents Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents. Table des matières Création de la machine virtuelle Debian... 3 Présentation

Plus en détail

Services Réseaux - Couche Application. TODARO Cédric

Services Réseaux - Couche Application. TODARO Cédric Services Réseaux - Couche Application TODARO Cédric 1 TABLE DES MATIÈRES Table des matières 1 Protocoles de gestion de réseaux 3 1.1 DHCP (port 67/68)....................................... 3 1.2 DNS (port

Plus en détail

CONFIGURATION P 2 P 3 P 3 P 10 P 11 P 13 P 14 P 16

CONFIGURATION P 2 P 3 P 3 P 10 P 11 P 13 P 14 P 16 CONFIGURATION 1 Présentation 2 Topologie du projet 3 Installation 4 Configuration 4.1 Création de la DMZ publique 4.2 Accès vers l Internet 4.3 Publication d Exchange 4.4 Rapports d activité et alertes

Plus en détail

Fonctionnement et protocoles des couches applicatives

Fonctionnement et protocoles des couches applicatives Chapitre 3 : Fonctionnement et protocoles des couches applicatives Introduction La plupart d entre nous utilisons Internet via le Web, les services de messagerie et les programmes de partage de fichiers.

Plus en détail

Manuel d'utilisation d'apimail V3

Manuel d'utilisation d'apimail V3 Manuel d'utilisation d'apimail V3 I Préambule Page 3 II Présentation Page 4 III Mise en route Configuration Page 5 Messagerie Serveur smtp Serveur pop Compte pop Mot de passe Adresse mail Laisser les messages

Plus en détail

SISR3- Mise à disposition d une application web sécurisée

SISR3- Mise à disposition d une application web sécurisée Contexte : Le laboratoire pharmaceutique Galaxy-Swiss Bourdin (GSB) désire mettre à disposition des visiteurs médicaux une application Web de gestion des frais de remboursement. Il souhaite disposer d'une

Plus en détail

TP RESEAU N 3. Mise en place du système d'un serveur Apache SSL

TP RESEAU N 3. Mise en place du système d'un serveur Apache SSL TP RESEAU N 3 Mise en place du système d'un serveur Apache SSL Master Management de la Sécurité des Systèmes Industriels et des Systèmes d Information année 2005/2006 Julien VEHENT 1. Introduction Ce compte

Plus en détail

1: Pourquoi faire ça?

1: Pourquoi faire ça? Table des matières 1: Pourquoi faire ça?...1 2: Présentation des techniques employées:...1 3: Créer son autorité de certification et des certificats pour les deux sites en https...2 l autorité de certification...2

Plus en détail

PKI : Public Key Infrastructure

PKI : Public Key Infrastructure PKI : Public Key Infrastructure Diplômant : Denis Cotte Professeur responsable : Gérald Litzistorf Collaboration avec : Sylvain Maret e-xpert e solutions 1 Sommaire PKI : Infrastructure à clé publique

Plus en détail

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS FOURNIER VINCENT 29/04/2015 1.2 Ce tutoriel est réalisé sous debian 7.7 avec une synchronisation

Plus en détail

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel. Environnement des outils de gestion Comme nous allons utiliser principalement des outils orientés Web pour la gestion de notre domaine, pour que ceux-ci fonctionnent autant sous Windows que sous Linux,

Plus en détail

Services réseau. 6.1 Clients, serveurs et leur interaction. 6.1.1 Relation client-serveur

Services réseau. 6.1 Clients, serveurs et leur interaction. 6.1.1 Relation client-serveur Page 1 sur 35 Services réseau 6.1 Clients, serveurs et leur interaction 6.1.1 Relation client-serveur Tous les jours, nous utilisons les services disponibles sur les réseaux et sur Internet pour communiquer

Plus en détail

DNS, Apache sous Linux

DNS, Apache sous Linux BTS SIO DNS, Apache sous Linux Nicolas CAESENS 2014 Sommaire I. Introduction Introduction au contexte GSB p.2 II. Installation et configuration du DNS Configuration du fichier named.conf p.3 Configuration

Plus en détail

Authentification CAS : module apache V2 mod_cas

Authentification CAS : module apache V2 mod_cas Page 1 of 8 Authentification CAS : module apache V2 mod_cas Ce document décrit l'installation et le paramétrage du module mod_cas esup-portail pour apache V2. Vincent Mathieu Université Nancy 2 Dates de

Plus en détail

RAPPORT D INSTALLATION

RAPPORT D INSTALLATION RAPPORT D INSTALLATION Team 21 PPE 2 Serveur de données Table des matières Objectifs... 2 Installation du serveur de données Owncloud... 3 Installation du serveur sous Windows Server 2012 R2... 3 Installation

Plus en détail

Chapitre 4 PROTOCOLES SÉCURISÉS

Chapitre 4 PROTOCOLES SÉCURISÉS Chapitre 4 PROTOCOLES SÉCURISÉS 52 Protocoles sécurisés Inclus dans la couche application Modèle TCP/IP Pile de protocoles HTTP, SMTP, FTP, SSH, IRC, SNMP, DHCP, POP3 4 couche application HTML, MIME, ASCII

Plus en détail

Réseaux virtuels Applications possibles :

Réseaux virtuels Applications possibles : Réseaux virtuels La mise en place d'un réseau privé virtuel permet de connecter de façon sécurisée des ordinateurs distants au travers d'une liaison non fiable (Internet), comme s'ils étaient sur le même

Plus en détail

Installation et utilisation d'un certificat

Installation et utilisation d'un certificat 1 IceWarp Merak Mail Server Installation et utilisation d'un certificat Icewarp France octobre 2007 2 Icewarp Merak Mail Serveur : Guide de mises à jour à la version 9 Sommaire Introduction...3 Situation

Plus en détail

Cible de sécurité CSPN

Cible de sécurité CSPN Cible de sécurité CSPN ClearBUS Application cliente pour la communication sécurisée Version 1.12 Le 25/11/2011 Identifiant : CBUS-CS-1.12-20111125 contact@clearbus.fr tel : +33(0)485.029.634 Version 1.12

Plus en détail

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

Le Web: les machines parlent aux machines

Le Web: les machines parlent aux machines Le Web: les machines parlent aux machines Historique Année 70 : ARPA (Advanced Research Project Agency). Relier les centres de recherche : ARPANET. 1972 : Premières spécifications TCP/IP (IP internet Protocol)

Plus en détail

Internet. PC / Réseau

Internet. PC / Réseau Internet PC / Réseau Objectif Cette présentation reprend les notions de base : Objectif, environnement de l Internet Connexion, fournisseurs d accès Services Web, consultation, protocoles Modèle en couches,

Plus en détail

Configuration des clients de messagerie de type IMAP ou POP

Configuration des clients de messagerie de type IMAP ou POP Configuration des clients de messagerie de type IMAP ou POP Les personnes qui désirent utiliser IMAP ou POP, même si ces protocoles ne sont pas recommandés par le SITEL, doivent utiliser les paramètres

Plus en détail

PKI, PGP et OpenSSL. Pierre-Louis Cayrel

PKI, PGP et OpenSSL. Pierre-Louis Cayrel Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 pierre-louis.cayrel@xlim.fr Licence professionnelle Administrateur de Réseaux et de Bases de Données IUT

Plus en détail

Comment utiliser mon compte alumni?

Comment utiliser mon compte alumni? Ce document dispose d une version PDF sur le site public du CI Comment utiliser mon compte alumni? Elena Fascilla, le 23/06/2010 Sommaire 1. Introduction... 2 2. Avant de commencer... 2 2.1 Connexion...

Plus en détail

Sommaire. Cegedim Logiciels Médicaux Guide d utilisation de SMM 2/40

Sommaire. Cegedim Logiciels Médicaux Guide d utilisation de SMM 2/40 Secure Médical Mail Guide d utilisation Sommaire Sommaire... 2 Glossaire Technique... 3 Messagerie Sécurisée... 4 Quels sont les plus d une messagerie homologuée GIP-CPS?... 5 Pré-requis techniques...

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Architecture client/serveur

Architecture client/serveur Architecture client/serveur Table des matières 1. Principe du client/serveur...2 2. Communication client/serveur...3 2.1. Avantages...3 2.2. Inconvénients...3 3. HTTP (HyperText Transfer Protocol)...3

Plus en détail

Avoir un ordinateur physique ou un logiciel de virtualisation pour installer ce serveur en tant que machine virtuelle.

Avoir un ordinateur physique ou un logiciel de virtualisation pour installer ce serveur en tant que machine virtuelle. Rappel - installer LAMP Durée indicative de cet atelier : 3 heures u Objectif Dans les ateliers suivants, vous allez utiliser un serveur Linux pour installer et configurer OCS Inventory NG et GLPI. Voici

Plus en détail

Sécurité des réseaux IPSec

Sécurité des réseaux IPSec Sécurité des réseaux IPSec A. Guermouche A. Guermouche Cours 4 : IPSec 1 Plan 1. A. Guermouche Cours 4 : IPSec 2 Plan 1. A. Guermouche Cours 4 : IPSec 3 Pourquoi? Premier constat sur l aspect critique

Plus en détail

Le courrier électronique. F. Nolot

Le courrier électronique. F. Nolot Le courrier électronique F. Nolot 1 Le courrier électronique Une des applications les plus importantes dans Internet Particularité du courrier électronique Un destinataire (ou l'expéditeur) n'est pas toujours

Plus en détail

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens Hébergement WeboCube Le service d'hébergement WeboCube a pour but de sécuriser la présence internet grâce à un suivi personnalisé et une maintenance active de votre serveur internet. Un espace de gestion

Plus en détail

TLS C.1 CRYPTAGE SYMÉTRIQUE. Objectif

TLS C.1 CRYPTAGE SYMÉTRIQUE. Objectif C TLS Objectif Cette annexe présente les notions de cryptage asymétrique, de certificats et de signatures électroniques, et décrit brièvement les protocoles SSL (Secure Sockets Layer) et TLS (Transport

Plus en détail

Base de connaissance K.SSL Générez votre CSR

Base de connaissance K.SSL Générez votre CSR Pour effectuer votre demande de certificat serveur, vous devez générer une CSR (Certificate Signing Request, ou Requête de Signature de Certificat en français) depuis le serveur sur lequel vous installez

Plus en détail

Tunnels et VPN. 20/02/2008 Formation Permanente Paris6 86. Sécurisation des communications

Tunnels et VPN. 20/02/2008 Formation Permanente Paris6 86. Sécurisation des communications Tunnels et VPN 20/02/2008 Formation Permanente Paris6 86 Sécurisation des communications Remplacement ou sécurisation de tous les protocoles ne chiffrant pas l authentification + éventuellement chiffrement

Plus en détail

Base de connaissances

Base de connaissances Base de connaissances Page 1/14 Sommaire Administration du système... 3 Journalisation pour le débogage... 3 Intellipool Network Monitor requiert-il un serveur web externe?... 3 Comment sauvegarder la

Plus en détail

Devoir Surveillé de Sécurité des Réseaux

Devoir Surveillé de Sécurité des Réseaux Année scolaire 2009-2010 IG2I L5GRM Devoir Surveillé de Sécurité des Réseaux Enseignant : Armand Toguyéni Durée : 2h Documents : Polycopiés de cours autorisés Note : Ce sujet comporte deux parties. La

Plus en détail

GENERATION & INTEGRATION DES CERTIFICATS SSL GIP-CPS DANS. APACHE 1.3.x & IIS

GENERATION & INTEGRATION DES CERTIFICATS SSL GIP-CPS DANS. APACHE 1.3.x & IIS GROUPEMENT D INTERET PUBLIC GENERATION & INTEGRATION DES CERTIFICATS SSL GIP-CPS DANS APACHE 1.3.x & IIS 18 Août 2004 Réf : intégration_certificatssl_gip_v1.0.doc 18 Août 2004 Document GIP "CPS" Page 1

Plus en détail

C. Configuration des services de transport

C. Configuration des services de transport Page 282 Chapitre 8 Dans la version 2013 d'exchange, les dossiers publics sont devenus un type de boîtes aux lettres et utilisent les mêmes mécanismes de routage que les e-mails. - Le message est destiné

Plus en détail

WebFTP Un client Web sécurisé pour FTP

WebFTP Un client Web sécurisé pour FTP WebFTP Un client Web sécurisé pour FTP Jirung Albert SHIH, Shih@math.Jussieu.fr Université Paris 7 JRES 2001 Introduction Nous allons dans ce document présenter une solution mise en œuvre sur le réseau

Plus en détail

Manuel COMMENCE. Connect For Email

Manuel COMMENCE. Connect For Email Manuel COMMENCE Connect For Email Sommaire SOMMAIRE 2 CHAPITRE 1 : INTRODUCTION 4 A QUOI ÇA SERT? 4 CHAPITRE 2 : PRISE EN MAIN 5 MINIMUM REQUIS POUR EXÉCUTER CONNECT FOR EMAIL 5 CE QUE GÉNÈRE L INSTALLATION

Plus en détail

Compte-rendu GSB. I- Configuration des différents serveurs. 1. Serveur Web. Tout d abord, il faut installer différents paquets : - Apache2 - PHP5

Compte-rendu GSB. I- Configuration des différents serveurs. 1. Serveur Web. Tout d abord, il faut installer différents paquets : - Apache2 - PHP5 Compte-rendu GSB I- Configuration des différents serveurs 1. Serveur Web Tout d abord, il faut installer différents paquets : - Apache2 - PHP5 - Proftpd - Phpmyadmin Apres l'installation du service apache2

Plus en détail

MISE EN PLACE DU HTTPS

MISE EN PLACE DU HTTPS BTS SIO 2014/2015 PPE 2 MISE EN PLACE DU HTTPS Installation des système d exploitations au préalable (Debian / Windows) Création du certificat a. Création du certificat serveur Génération de la clé privée

Plus en détail

Réussir l intégration de Payzen

Réussir l intégration de Payzen Réussir l intégration de Payzen Version 1.4b Réussir l intégration de Payzen 1/16 SUIVI, HISTORIQUE Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom

Plus en détail

II- Préparation du serveur et installation d OpenVpn :

II- Préparation du serveur et installation d OpenVpn : I- Etude du VPN a. Qu est-ce qu un VPN? Un VPN(Virtual Private Network = Réseau Privé Virtuel) permet de créer une connexion sécurisée entre un ordinateur et un serveur VPN. Ce dernier servira de relai

Plus en détail

Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3

Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3 Tsoft et Groupe Eyrolles, 2005, ISBN : 2-212-11623-3 Configuration requise ForestPrep DomainPrep Installation interactive 5 Installation sans surveillance Module 5 : Installation d Exchange Server 2003

Plus en détail

HostExplorer 8.0. Nouvelles fonctionnalités

HostExplorer 8.0. Nouvelles fonctionnalités HostExplorer 8.0 Nouvelles fonctionnalités Copyright Hummingbird 2002 Page 1 of 10 Sommaire 1 Généralités 3 - Conformité à la section 508 de la Rehabilitation Act des Etats-Unis 3 - Certification Windows

Plus en détail

Mac OS X Server Administration du service de courrier. Pour la version 10.3 ou ultérieure

Mac OS X Server Administration du service de courrier. Pour la version 10.3 ou ultérieure Mac OS X Server Administration du service de courrier Pour la version 10.3 ou ultérieure KApple Computer, Inc. 2003 Apple Computer, Inc. Tous droits réservés. Le propriétaire ou l utilisateur autorisé

Plus en détail

Installation avancée du serveur Apache 2.0.55 MI3-2

Installation avancée du serveur Apache 2.0.55 MI3-2 Installation avancée du serveur Apache 2.0.55 MI3-2 Guillaume Dabosville 4 novembre 2005 Attention : Avant toute modification du fichier httpd.conf, faites une copie de sauvegarde avec cp /etc/httpd/conf/httpd.conf

Plus en détail

Configuration du routeur. Installer le service de certificats

Configuration du routeur. Installer le service de certificats Page 1 sur 21 Avec les paramètres par défaut, Outlook Web Access transmet tout le traffic en clair (y compris les noms d'utilisateur et les mots de passe) entre le serveur et le client. C'est pourquoi

Plus en détail

Installation de GFI FAXmaker

Installation de GFI FAXmaker Installation de GFI FAXmaker Systèmes Requis Avant d installer FAXmaker, vérifiez que vous remplissez bien les conditions suivantes : Serveur FAX GFI FAXmaker : Serveur sous Windows 2000 ou 2003 avec au

Plus en détail

18 TCP Les protocoles de domaines d applications

18 TCP Les protocoles de domaines d applications 18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

Cisco Certified Network Associate

Cisco Certified Network Associate Cisco Certified Network Associate Version 4 Notions de base sur les réseaux Chapitre 3 01 Quel protocole de la couche application sert couramment à prendre en charge les transferts de fichiers entre un

Plus en détail

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D. 2013 Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D. Table des matières 1 Les architectures sécurisées... 3 2 La PKI : Autorité de certification... 6 3 Installation

Plus en détail

Guide SSL. (Secure Socket Layer)

Guide SSL. (Secure Socket Layer) Guide SSL (Secure Socket Layer) Pour obtenir des informations de base sur le réseau et les fonctions réseau avancées de l appareil Brother : uu Guide utilisateur - Réseau. Pour télécharger le dernier manuel,

Plus en détail

Réf. 2402 Implémentation et gestion de Microsoft Exchange Server 2003

Réf. 2402 Implémentation et gestion de Microsoft Exchange Server 2003 Public Ce cours est destiné aux informaticiens qui gèrent une messagerie électronique dans un environnement comprenant entre 250 et 5000 utilisateurs, réparti sur de nombreux sites, utilisant divers protocoles

Plus en détail

Installation d un serveur web Apache2 SSL sous Ubuntu Propriétaire Tavares José Classification Public Date dernière 01 Octobre 2009

Installation d un serveur web Apache2 SSL sous Ubuntu Propriétaire Tavares José Classification Public Date dernière 01 Octobre 2009 Titre Installation d un serveur web Apache2 SSL sous Ubuntu Propriétaire Tavares José Classification Public Date dernière 01 Octobre 2009 modification Chemin\NomFichier \\10.1.1.1\FilesTD\Group4\Personnel\Tavares\00_EIG\Sécuriser_SSL_Apache.doc

Plus en détail

Service de certificat

Service de certificat Service de certificat Table des matières 1 Introduction...2 2 Mise en place d une autorité de certification...3 2.1 Introduction...3 2.2 Installer le service de certificat...4 3 Sécuriser un site web avec

Plus en détail

Fiche procédure Serveur web Debian

Fiche procédure Serveur web Debian Galaxy Swisse Bourdin Rodrigue Marie Fiche procédure Serveur web Debian 2013 Installation du serveur Débian via Virtual Box Lancer VirtalBox puis exporter l image nommé «Debian-Srv.ova». Fichier => importer

Plus en détail

Guide d utilisation. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP.

Guide d utilisation. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP. Manuel d utilisation et d installation du système d exploitation UBUNTU 10.04.3 et d'installation d'un serveur LAMP. -- 1 -- Lycée Bahuet Table des matières Avant propos... - 5 - Démarrage d Ubuntu...

Plus en détail

SERVEUR HTTPS MMI - SEMESTRE 4. Objectif. Démarche. Méthode. Préparé pour : M4204 Préparé par : Patrice GOMMERY 29 septembre 2015

SERVEUR HTTPS MMI - SEMESTRE 4. Objectif. Démarche. Méthode. Préparé pour : M4204 Préparé par : Patrice GOMMERY 29 septembre 2015 MMI - SEMESTRE 4 SERVEUR HTTPS Préparé pour : M4204 Préparé par : Patrice GOMMERY 29 septembre 2015 Objectif Créer un Site Web accessible avec le protocole HTTPS Démarche Créer un site web virtuel sous

Plus en détail

1 Introduction. 2 Rappels. Réseaux et Télécommunications TP M3105 2 e année 2014/15 MD, DB, MAB. Services de messagerie

1 Introduction. 2 Rappels. Réseaux et Télécommunications TP M3105 2 e année 2014/15 MD, DB, MAB. Services de messagerie Réseaux et Télécommunications TP M3105 2 e année 2014/15 MD, DB, MAB Services de messagerie 1 Introduction La couche 7 du modèle OSI définit les protocoles dits applicatifs. Dans ce TP nous nous centrerons

Plus en détail

SSL ET IPSEC. Licence Pro ATC Amel Guetat

SSL ET IPSEC. Licence Pro ATC Amel Guetat SSL ET IPSEC Licence Pro ATC Amel Guetat LES APPLICATIONS DU CHIFFREMENT Le protocole SSL (Secure Socket Layer) La sécurité réseau avec IPSec (IP Security Protocol) SSL - SECURE SOCKET LAYER Historique

Plus en détail

TP Protocole HTTPS avec Pratiquer l algorithmique

TP Protocole HTTPS avec Pratiquer l algorithmique TP Protocole HTTPS avec Pratiquer l algorithmique Introduction : Le protocole HTTPS permet l échange de données entre client et serveur de manière sécurisée, en ayant recours au cryptage (technologie SSL).

Plus en détail

SCOoffice Mail Connector for Microsoft Outlook. Guide d'installation Outlook 2002

SCOoffice Mail Connector for Microsoft Outlook. Guide d'installation Outlook 2002 SCOoffice Mail Connector for Microsoft Outlook Guide d'installation Outlook 2002 Rév 1.1 4 décembre 2002 SCOoffice Mail Connector for Microsoft Outlook Guide d'installation - Outlook XP Introduction Ce

Plus en détail

Services de vidéo en ligne

Services de vidéo en ligne Services de vidéo en ligne Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée Des services diversifiés Télévision numérique : s appuie sur des standards de format (standards ETSI) utilise plusieurs

Plus en détail

Middleware eid v2.6 pour Windows

Middleware eid v2.6 pour Windows Manuel d'utilisation Middleware eid v2.6 page 1 de 19 Table des matières Introduction...3 Installation...4 Les éléments du logiciel eid...6 Module pour la zone de notification dans la barre des tâches...7

Plus en détail

Ateliers Multimédia de la Ville de Dieppe. Découverte de l'informatique

Ateliers Multimédia de la Ville de Dieppe. Découverte de l'informatique Ateliers Multimédia de la Ville de Dieppe Découverte de l'informatique Fiche La messagerie électronique - 1 L'email et la boite mail Email et virus 1 LA BOITE MAIL Nous appelons «Boite mail» le site gérant

Plus en détail

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD2 Exercices Exercice 1 : Dressez la liste des 5 périphériques finaux, 6 périphériques intermédiaires et 3 formes de support réseau. Périphériques finaux (hôtes): ordinateur de bureau, ordinateur

Plus en détail

Réaliser un inventaire Documentation utilisateur

Réaliser un inventaire Documentation utilisateur Référence : 11662 Version N : 6 Créé le : 29 Janvier 2014 Créé par : Bruno RICHOUX Téléphone : 0811 65 60 02 Sommaire 1. Conventions... 3 2. Introduction... 4 3. Principes généraux... 5 3.1. Depuis les

Plus en détail

DOCUMENTATION DU COMPAGNON ASP

DOCUMENTATION DU COMPAGNON ASP DOCUMENTATION DU COMPAGNON ASP MANUEL UTILISATEUR VERSION 1.0 / SEPTEMBRE 2011 Rédacteur Gilles Mankowski 19/09/2011 Chapitre : Pre requis CONTENU Pre requis... 3 Introduction... 3 Comment fonctionne l'asp?...

Plus en détail

Guide de configuration IPsec

Guide de configuration IPsec Guide de configuration IPsec Version 0 CAN-FRE Définitions des remarques Ce guide de l utilisateur utilise l'icône suivante : Les remarques indiquent la marche à suivre dans une situation donnée ou donnent

Plus en détail

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5 Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur

Plus en détail

Tutorial Terminal Server sous

Tutorial Terminal Server sous Tutorial Terminal Server sous réalisé par Olivier BOHER Adresse @mail : xenon33@free.fr Site Internet : http://xenon33.free.fr/ Tutorial version 1a Page 1 sur 1 Index 1. Installation des services Terminal

Plus en détail

Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I

Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I Configuration du nouveau Bureau Virtuel (BV) collaboratif de Lyon I Date : 13 octobre 2009 / Auteur : David ROMEUF / Version : 1.1 / Diffusion : Utilisateurs Table des matières Cas 1 : un poste MS-Windows

Plus en détail

Installation et configuration d un serveur Web Sauvegarde et restauration

Installation et configuration d un serveur Web Sauvegarde et restauration Installation et configuration d un serveur Web Sauvegarde et restauration Serveur Web Page 1 Sommaire Présentation 3 Configuration d une machine virtuelle 3 Création d une machine virtuelle 3 Configuration

Plus en détail

SIGNATURE DIGITALE ET AUTHENTIFICATION FORTE

SIGNATURE DIGITALE ET AUTHENTIFICATION FORTE SIGNATURE DIGITALE ET AUTHENTIFICATION FORTE Michel Laloy 18/06/2002 Objectifs Expliquer les mécanismes de la signature digitale et de l authentification forte Montrer comment ces mécanismes s'appliquent

Plus en détail

1. Mise en œuvre du Cegid Web Access Server en https

1. Mise en œuvre du Cegid Web Access Server en https 1. Mise en œuvre du Cegid Web Access Server en https Principe d usage La mise en œuvre du mode https sur un serveur Web Access implique : De disposer d un certificat pour le nom d hôte configuré sur le

Plus en détail

Activité - Serveur sous Linux Suse

Activité - Serveur sous Linux Suse Activité - Serveur sous Linux Suse Configuration de services réseaux Problématique : Configurer les services réseaux (DHCP, SAMBA, APACHE2) sur un serveur afin de répondre au besoin des postes clients

Plus en détail

Guide Numériser vers FTP

Guide Numériser vers FTP Guide Numériser vers FTP Pour obtenir des informations de base sur le réseau et les fonctions réseau avancées de l appareil Brother : consultez le uu Guide utilisateur - Réseau. Pour obtenir des informations

Plus en détail

TARDITI Richard TSIO1 Mise en place d un serveur Apache

TARDITI Richard TSIO1 Mise en place d un serveur Apache TARDITI Richard TSIO1 Mise en place d un serveur Apache Dans le cadre d un travail dirigé j ai mis en place un serveur Apache avec des hôtes virtuels et un certificat, sous une machine virtuelle Linux.

Plus en détail

Apache Créer un serveur Web «sécurisé»

Apache Créer un serveur Web «sécurisé» Apache Créer un serveur Web «sécurisé» Roger Yerbanga contact@yerbynet.com Transfer 1.3 - Bobo-Dioulasso - Décembre 2012 Apache & mod_ssl Apache est un serveur HTTP libre, populaire et très apprécié mod_ssl

Plus en détail

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

Plus en détail