cote lab o service web

Upload: -

Post on 17-Feb-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Cote Lab o Service Web

    1/29

    Ct Labo : le service Web

    Description du thme

    Proprits Description

    Intitul long Mise disposition d'une application Web scurise

    Formation concerne BTS Services Informatiques aux r!anisations

    Matire SI"

    Prsentation #'ob$ectif de ce cot labo %mis en &uvre en module est de se familiariseravec la confi!uration d'un service Web( Il se droule en ) parties *

    les principaux param+tres d'excution du serveur , la !estion des acc+s aux pa!es distribues , la mise disposition de l'application Web , l'acc+s scuris l'application Web(

    Le contete est celui du laboratoire pharmaceuti!ue "ala#$%&iss

    'ourdin ("%')L'objectif est de mettre disposition des utilisateurs l'application degestion de frais avec un accs scuris.

    %avoirs #es savoirs suivants peuvent faire l'ob$et d'un cours partir d'applicationsexistantes installes et confi!ures par le professeur *

    arc-itecture du service Web , r.le et protocole associ au service W/B * 0TTP , c-iffrement et certificat , le protocole 0TTPS et service Web scuris(

    %avoir$*aire 1aractriser un service et le serveur associ/xploiter les fonctions de base d2un lan!a!e de commandes(Installer3 confi!urer et administrer un service4rer les -abilitations d2acc+s aux ressources d'un serveur et d2un serviceMettre en &uvre un protocole scuris associ un service

    +ransversalit SI5

    ,utils %- * serveur #inux debian Squee6e %stable(%erveurs.sevices * apac-e73 m8sql9serverClients * navi!ateur :eb sur ST; #inux3 Windo:s ou autre s8st+me(utils d'anal8se et de tests de bon fonctionnement ainsi que p-pm8admin(Contete * or!anisation

  • 7/23/2019 Cote Lab o Service Web

    2/29

    Contete

    #e laboratoire p-armaceutique 4alax89S:iss Bourdin %4SB dsire mettre disposition des visiteursmdicaux une application Web de !estion des frais de remboursement(Il sou-aite disposer d'une application en li!ne3 scurise3 accessible depuis un navi!ateur par le nompleinement qualifi gestion*rais1gsb1coop(

    1ette application ncessite * un serveur Web scuris %0TTPS3 SS#

  • 7/23/2019 Cote Lab o Service Web

    3/29

    Pralable et rappels

    /vant de commencer 4 modi*ier la con*iguration3 fates une sauve!arde du rpertoire%par exemple * cp -r /etc/apache2 /etc/apache2.ori(

    Pour retrouver rapidementle fic-ier et le numro de la li!ne dans lequel se trouve une directive ouune expression particuli+re3 vous pouve6 utiliser le filtre F !rep G avec les options F ni G par exemple *

    grep -ni listen /etc/apache2/* renvoie :/etc/apache2/ports.conf:9: Listen 80/etc/apache2/ports.conf:17: Listen 443/etc/apache2/ports.conf:21 Listen 443

    grep -ni oc!"entroot /etc/apache2/* ne renvoie rien

    grep -ni oc!"entroot /etc/apache2/*/* renvoie :/etc/apache2/sites-availa#le/efa!lt:4: $oc!"ent%oot /var/&&&/etc/apache2/sites-availa#le/efa!lt-ssl:': $oc!"ent%oot /var/&&&/etc/apache2/sites-ena#le/000-efa!lt:4: $oc!"ent%oot /var/&&&

    L'option ni permet de c-erc-er sans tenir compte de la casse et de renvo8er aussi le numro de lali!ne( #'astrisque peut tre remplac par un nom de fic-ier(

    Pour accder directement une li!ne F n G d'un fic-ier * vi nom_fichier +nEuand vous dite6 un fic-ier avec l'diteur F vi G3 pour rechercher un mot il suffit de saisirF

  • 7/23/2019 Cote Lab o Service Web

    4/29

    Droulement de la s!uence

    91 Les principau paramtres d2ecution du serveur

    Hrifie6 que les serveurs de base de donnes et Web sont installs et oprationnels(

    Selon le sc-ma d'articulation des applications3 explique6 quel est le t8pe de client serveur N

    Processus et variables

    O partir de la liste des processus acti*s d2/pache%commande ps -ef ) grep apache *

    ?epre6 le numro du processus p+re lanc par l'utilisateur F root G(

    #e nombre de processus fils lancs par l'utilisateur s8st+me F :::9data G(

    Dans le *ichier de con*iguration principaled';pac-e73 quelles sont les valeurs des directives *

    >ser N Pidile N

    StartsServers %du module F mpmJperforJmodule G N

    Dans le *ichier envvars ; :

    Euelle est la valeur de la variable d'environnement F;P;10/J?>@J>S/? G N

    Euelle est la valeur de la variable d'environnement F ;P;10/JPIDJI#/ G N

    1onsulte6 le fic-ier correspondant la variable d'environnement F ;P;10/JPIDJI#/ G , quoi correspond le nombre inscrit N

    La directive %erver8ame

    La directive %erver8ame ; d*init le nom d2hte du serveur , ce nom doit correspondre uneadresse IP et tre rensei!n dans un serveur D@S %ou fic-ier -osts( S'il n'est pas dfini3 alors leserveur tentera de le rsoudre partir de sa propre adresse IP( #a confi!uration de la 6one inverse duserveur D@S n'tant pas oprationnelle3 cette rsolution n'aboutit pas(

    #ance6 la commande qui permet de vrifier la s8ntaxe apache2ctl configtest( Euerenvoie9t9elle N

    1e n'est qu'un simple :arnin! n2empc-ant pas le serveur de se lancer mais le mieux est decrer la directive F Server@ame G dans le fic-ier /etc/apache2/httpd.confet de la rensei!neravec le nom de votre serveur pleinement qualifi(

    ?ec-ar!e6 le fic-ier de confi!uration et teste6 nouveau la confi!uration(

    Q9a9t9il une autre possibilit qu'un serveur D@S pour obtenir une rsolution de nom N

    Le port d2coute

    Euelle est la directive qui dfinit le port d'coute N

    Modifie6 ponctuellement ce port d'coute en le mettant RRR et relance6 le serveur Web(

    Euelle est l'>?# que vous deve6 saisir pour accder votre serveur Web N

    ?evene6 un port d'coute RA(

    Divers

    1ite6 un module disponible mais non c-ar!(

    -ttp*

  • 7/23/2019 Cote Lab o Service Web

    5/29

    61 Page d2accueil et page par d*aut

    ;pr+s avoir rappel ci9apr+s quel est le fic-ier reprsentant la pa!e d'accueil du serveur etdans quel rpertoire il se trouve3 modifie69le rapidement pour affic-er aussi le nom etl'adresse IP de votre serveur( Hrifie6 vos modifications avec l'>?# *http:..nom

  • 7/23/2019 Cote Lab o Service Web

    6/29

    >1 La gestion des accs au ressources

    Pouve69vous accder cette documentation partir du serveur lui9mme %on utilisera leclient W/B en mode texte F l8nx G N

    Pouve69vous 8 accder partir de votre navi!ateur client N Euel est le messa!e d'erreur etquelles sont ventuellement les directives qui vous en empc-ent %voir en annexe lesexplications sur les directives de !estion d'un rpertoire N

    Modifie6 le paramtra!e de mani+re permettre toutes les mac-ines clientes du rseaudans lequel vous tes3 d'accder la documentation et teste61

    Installe6 la documentation d';pac-e7 en local %paquet apac-e79doc et vrifie6 que vouspouve6 8 accder partir de l'>?# http:..nom

  • 7/23/2019 Cote Lab o Service Web

    7/29

    Le principe de mise 4 disposition d2une application Web est le suivant :

    installer les fic-iers :eb sur l'espace de stoca!e avec les droits ncessaires , installer la base de donnes et en permettre l'acc+s l'application , confi!urer le%s site%s virtuel%s dans un fic-ier de confi!uration spcifique situ dans

    /etc/apache2/sitesavailable/, activer ce site , confi!urer le serveur D@S de mani+re ce que n'importe quel -.te puisse accder aux

    diffrents sites %cette tape sera ralise par le professeur partir des donnes que vous luicommuniquere6(

    Dmarche

    #'arc-ive contenant les fic-iers de l'application est appli,rais.-ip et celle contenant les fic-iers

    permettant de crer et d'initialiser la base de donnes est bdd+ppli,rais.-ip

    ?cupre6 directement l'arc-ive contenant les fic-iers de l'application avec la commande

    F :!et G partir du serveur(

    ;pr+s dcompression avec l'utilitaire F un6ip G3 copie6 les fic-iers de l'application %dossier

    appli,rais compris dans un dossier /var/!!!/appli)& %ce dernier doit tre cr

    pralablement(

    Euelle est la commande permettant d'attribuer les droits corrects sur le rpertoireF applirais G N

    O partir de l'arc-ive contenant les fic-iers permettant de crer et d'initialiser la base dedonnes3 importe6 les fic-iers SE# de cration de la base et d'insertion des donnes(

    Selon la valeur des param+tres de la fonction de connexion la base de donnes de

    l'application3 cre6 l'utilisateur m8sql requis et accorde69lui les droits ncessaires et suffisants(

    Hrifie6 que vous pouve6 accder l'application via l'>?# F classique G(

    Hrifie6 que vous pouve6 vous aut-entifier pour accder au contenu de l'application partir

    d'un lo!in et d'un mot de passe contenu dans la table F visiteurs G(

    1onfi!ure6 le site virtuel de mani+re 8 accder partir de l'>?# *

    -ttp*

  • 7/23/2019 Cote Lab o Service Web

    8/29

    La suite du $% doit tre ralise par groupe de 2 tudiants3 l'un jouant le r4le de l'autorit decertification et l'autre le r4le du reprsentant de la socit )& demandant un certificat pour ensuiteinverser les r4les 5chacun des tudiants devant faire au final l'ensemble du travail6.

    19 $ Le rle de l2autorit de certi*ication

    Dans un s8st+me simplifi3 l';utorit de certification %;1 ou 1; a pour r.le3 apr+s vrification de

    l'identit du demandeur du certificat3 de si!ner3 mettre et maintenir des certificats ainsi qu'une liste dervocation desdits certificats(

    /lle doit3 pour cela3 possder son propre certificat %auto9mis

  • 7/23/2019 Cote Lab o Service Web

    9/29

    countryName = FR stateOrProvinceName = Europe localityName = Paris organizationName = GSB organizationalUnitName = Laboratoire France commonName = gestionfraisServ1.gsb.coop emailAddress = [email protected]

    X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 7B:B2:96:A9:FC:05:74:60:C0:35:E3:48:D0:BF:83:0B:C3:6D:F4:5A X509v3 Authority Key Identifier: keyid:AF:34:68:0A:D4:FA:8F:09:5E:1F:B2:2D:31:38:4C:44:1C:0D:C8:A6

    Certificate is to be certified until Apr 2 21:32:43 2013 GMT (365 days)Sign the certificate? [y/n]:y

    1 out of 1 certificate requests certified, commit? [y/n]yWrite out database with 1 new entriesData Base Updated

    Hous pouve6 aussi consulter le contenu du certificat du serveur :eb !nr1

    /n fonction de la sortie cran et

  • 7/23/2019 Cote Lab o Service Web

    10/29

    #'ob$ectif est que l'application soit accessible non plus en 0TTP mais en 0TTPS(

    1opie6 le fic-ier de confi!uration /etc/apache2/siteavailable/site+ppli,rais en le renommant/etc/apache2/sitesavailable/site+ppli,rais&&L(

    Dsactive6 le site accessible en 0TTP et vrifie6 qu'il ne soit plus accessible(

    1onfi!ure6 %dans le fic-ier /etc/apache2/sitesavailable/site+ppli,rais&&L l'-.te virtuel pour

    qu'il soit accessible en 0TTPS( ;ctive6 le nouveau site3 redmarre6 le serveur et s'il n'8 a pas d'erreurs teste6 une connexion

    en 0TTPS , l'alerte de scurit %:arnin! au niveau du certificat est F normal G %voir ci9apr+s(

    +est du serveur Web scuris

    #orsque vous tente6 d'accder votre site Web scuris %par exemple3 avec l'>?#https:..gestion*rais%erv91gsb1coop3 le navi!ateur renvoie une alerte de scurit qui se prsenteainsi sur le navi!ateur F firefox G *

    ?di!e6 une note en direction des visiteurs mdicaux prcisant les raisons de cette alerte descurit et la procdure pour 8 remdier %la solution F ;$outer une exception G n'est pasrecevable V(

    -ttp*

  • 7/23/2019 Cote Lab o Service Web

    11/29

    /nnees

    /nnee 9 : architecture du serveur Web

    919 /rchitecture Client$%erveur

    #e r.le du service Web est de diffuser de l2information sur Internet ou sur un Intranet ainsi que demettre disposition des utilisateurs des applications Web(

    1e service rendu aux utilisateurs s'appuie sur des services rseaux comme le service D@S dersolution de nom et ncessite des outils complmentaires comme un serveur de bases de donnes(Il concerne donc tous les acteurs de l'or!anisation %aussi bien les administrateurs rseau et s8st+meque les dveloppeurs(

    #a notion de serveur reprsente la mac-ine %p-8sique ou virtuelle et aussi l'application installe etconfi!ure qui permet de rendre le service(Selon le $ournal du net %-ttp*n serveur Web contient donc des pa!es Web %lies entre elles par des liens -8pertexte et beaucoupd2ob$ets incorpors( 1-acun de ces ob$ets %ima!es3 sons3 [ est un ob$et indpendant rcuprsparment(#e client :eb rcup+re le texte %0TM# suivi des ob$ets lis(

    1-aque pa!e du site est identifie par son >?# %>niform ?esource #ocator(

    Il existe plusieurs possibilits d'-ber!ement Web * -ber!ement local * l'or!anisation dispose et !+re son %ses propre%s serveur%s %rel%s ou

    virtuel%s , -ber!ement Internet %par exemple3 H0(com %-ttp*

  • 7/23/2019 Cote Lab o Service Web

    12/29

    916 Installation et dmarrage du serveur

    91619 Installation

    Si ;pac-e7 n'est pas install3 la commande apt-get install apache2 libapache2-mod-php5installera le serveur Web avec ses dpendances ainsi que le module p-p(

    #es paquets installs peuvent tre lists avec la commande dpkg -l | grep apache2ii apache2-mpm-prefork %moteur du serveur * faLon dont le serveur intercepte les requtesii apache2-utils%contient les divers utilitaires facilitant la !estion du serveurii apache2.2-bin %contient les excutables du serveurii apache2-common%contient le serveur et les modules standards ;pac-e7ii libapache2-mod-php5%module p-p" pour ;pac-e 7

    Pour installer la documentation en local * apt-get install apache2-doc/lle est installe dans/usr/share/doc/apache2doc

    ?appel * iI existe aussi une excellente documentation en li!ne %en franLais *-ttp*

  • 7/23/2019 Cote Lab o Service Web

    13/29

  • 7/23/2019 Cote Lab o Service Web

    14/29

    91=16 Complments sur !uel!ues directives

    %erveroot

  • 7/23/2019 Cote Lab o Service Web

    15/29

    91=1= Con*iguration d2un hte virtuel (ou virtual host ;)

    #es directives concernant un hte virtuel doivent tre comprises dans les balises ;?irtual#ostadresse(%

  • 7/23/2019 Cote Lab o Service Web

    16/29

    91> Les *ichiers d2activit

    #e serveur ;pac-e7 enre!istre son activit dans des $ournaux %lo!s3 situs dans

  • 7/23/2019 Cote Lab o Service Web

    17/29

    /nnee 6 : accs scuris 4 un serveur Web via le protocole ++P%

    619 Prparation du s#stme

    penSS# fournit une application pour crer des certificats client ou serveur( Il s'appuie sur un fic-ierde confi!uration/etc/ssl/openssl.confToutes les commandes d'openssl vont c-erc-er divers param+tres dans ce fic-ier % adapter auxbesoins sauf si la li!ne de commande donne d'autres directives(

    0oici l2etrait !ui nous intresse *

    [ CA_default ]ir ./e"o ;here everthing is 6eptcerts

  • 7/23/2019 Cote Lab o Service Web

    18/29

    Deuime tape : gnration du certi*icat auto$sign de l2autorit de certi*ication

    Il est possible de crer en une seule commande3 partir de cette cl3 un certificat x"AC auto9si!n *openssl re@ -ne& -'09 -as !rAe=en n#re=Bo!rs -6e che"in/ca6e.pe" -o!tche"in/no"=certificat.pe"

    re! $ne&* demande d'un nouveau certificat$?GH* le certificat demand est auto9si!n

    $da#s dure

  • 7/23/2019 Cote Lab o Service Web

    19/29

    %o#e7 trs vigilant sur le Common 8ame (C8) * celui9ci doit correspondre exactement au nompleinement qualifi %nom D@S * celui que vous alle6 saisir dans l'>?# de votre serveur qui correspondaussi la directive Server@ame dans le fic-ier de confi!uration d';pac-e(

    emar!ue * il est possible d'utiliser un autre c-amp que 1@3 le c-amp F sub$ect;lt@ame G pourspcifier le nom D@S du serveur( 1e dernier c-amp permet en outre de prciser un ou plusieurs nomsD@S %ceux correspondant aux diffrents virtuals -osts( 1e qui implique qu'il suffit d'un seul certificat

    pour l'ensemble des -.tes virtuels d'un serveur :eb(Mais il faut pour cela paramtrer plus finement le fic-ier openssl(conf(

    La troisime et dernire tape consiste 4 signer ce certi*icat1 1ette tape %comme celleconcernant la !nration d'un certificat d'autorit de certification n'aurait pas lieu d'tre si nousfaisions appel une autorit de certification externe laquelle on aurait tout simplement envo8%selon une procdure dfinie par l'autorit de certification la demande de certificat(

    +roisime tape : production du certi*icat sign par l2autorit de certi*ication

    1ette si!nature et la production du certificat se ralisent avec la commande suivante *

    openssl ca $polic# polic#

  • 7/23/2019 Cote Lab o Service Web

    20/29

    emar!ue *#es erreurs de confi!uration sont frquentes3 il faut s'aider du fic-ier d'activit /var/log/apache2.log( Ilest mme possible d'isoler les erreurs relatives 0TTPS %c'est beaucoup mieux pour F debu!!uer Gavec la directive *-rrorLog

  • 7/23/2019 Cote Lab o Service Web

    21/29

    Klments de correction

    91 Les principau paramtres d2ecution du serveur

    Hrifie6 que les serveurs de base de donnes et Web sont installs et oprationnels(

    O partir d'une connexion SS0 sur le serveur *dp! 9l !rep m8sqlii libdbd9m8sql9perlii libm8sqlclient=5ii m8sql9clientii m8sql9client9"(=ii m8sql9commonii m8sql9serverii m8sql9server9"(=ii m8sql9server9core9"(=ii p-p"9m8sql

    dp! 9l !rep apac-e7

    ii apac-e79mpm9preforii apac-e79utilsii apac-e7(79binii apac-e79commonii libapac-e79mod9p-p"

    nmap local-ostStartin! @map "(AA % -ttp*

  • 7/23/2019 Cote Lab o Service Web

    22/29

    Dans le *ichier de con*iguration principaled';pac-e 73 quelles sont les valeurs des directives * >ser * ;P;10/J?>@J>S/? Pidile * ;P;10/JPIDJI#/ StartsServers %du module mpmJperforJmodule G * "

    Dans le *ichier envvars ; : quelle est la valeur de la variable d'environnement ;P;10/J?>@J>S/?* :::9data

    quelle est la valeur de la variable d'environnement ;P;10/JPIDJI#/ N?# que vous deve6 saisir pour accder votre serveur Web N-ttp*

  • 7/23/2019 Cote Lab o Service Web

    23/29

    61 Page d2accueil et page par d*aut

    ;pr+s avoir rappel ci9apr+s quel est le fic-ier reprsentant la pa!e d'accueil du serveur etdans quel rpertoire il se trouve3 modifie69le rapidement pour affic-er aussi le nom etl'adresse IP de votre serveur( Hrifie6 vos modifications avec l'>?# *http:..nom

  • 7/23/2019 Cote Lab o Service Web

    24/29

    #es pa!es :eb de F p-pM8;dmin G se trouvent9elles dans le rpertoire/var/!!!/phpm"admin/N

    @on mais il existe un mcanisme d';lias qui permet de ran!er les pa!es :eb d'uneapplication n'importe quel endroit de l'espace de stoca!e(

    #'acc+s aux pa!es Web de F p-pM8;dmin G se ralise !rce au fic-ier /etc/phpm"admin/apache.conf

    c-ar! par la confi!uration d';pac-e( /n effet3 l'installation de F p-pM8;dmin G a eu pour effetd'a$outer dans le dossier /etc/apache2/conf.d/ un lien appel phpm"admin.conf vers/etc/phpm"admin/apache.conf(

    1onsulte6 ce dernier fic-ier et dtermine6 quelle est la directive permettant d'accder l'application F p-pM8;dmin G via l'>?# * http:..nom

  • 7/23/2019 Cote Lab o Service Web

    25/29

    ?1 Con*iguration d2un hte virtuel et mise 4 disposition de l2application Web

    #'arc-ive contenant les fic-iers de l'application est appli,rais.-ip et celle contenant les fic-iers

    permettant de crer et d'initialiser la base de donnes est bdd+ppli,rais.-ip

    ?cupre6 directement l'arc-ive contenant les fic-iers de l'application avec la commande

    F :!et G partir du serveur(:!et juser^((( 99pass:ord^((( -ttp*?# F classique G(

    -ttp*?# *

    -ttp*

  • 7/23/2019 Cote Lab o Service Web

    26/29

    1 L2accs scuris 4 l2application Web

    Hrifie6 que les paqueta!es F openssl G et F libssl G sont installs

    k dp! 9l !rep opensslii openssl A(C(Ro9)squee6eU

    k dp! 9l !rep libssl

    ii libsslA(C(R A(C(Ro9)squee6e"

    19 $ Le rle de l2autorit de certi*ication

    Prparation du s#stme

    Il est ncessaire d'adapter le s8st+me et le fic-ier de confi!uration d'openssl aux besoins( #a cl del'autorit de certification3 les demandes de certificats et certificats %mis et rvoqus seront crsdans le dossier

  • 7/23/2019 Cote Lab o Service Web

    27/29

    1re6 le certificat de l'autorit de certification auto9si!n %valide pour " ans et nommcacert.pemet consulte69le(

    k openssl req 9ne: 9x"AC 9da8s =R7" 9e8 private

  • 7/23/2019 Cote Lab o Service Web

    28/29

    16 $ Le rle de la socit "%'

    #e r.le de la socit est de !nrer la demande de certificat et de confi!urer le serveur W/B(

    "nration de la demande de certi*icat du serveur Web

    4nre6 la cl prive du serveur Web d'une lon!ueur de )AC5 bits dans un fic-ier

    servgsb8e".pem(k openssl !enrsa 9out private

  • 7/23/2019 Cote Lab o Service Web

    29/29

    Dsactive6 le site accessible en 0TTP et vrifie6 qu'il ne soit plus accessible(

    a7dissite site;pplirais&ite site+ppli,rais disabled.Dun '/etc/init.d/apache2 reload' to activate ne! configurationW

    k