22
Cours Introduction - Systèmes/Services - Unix Cours 4 : Serveurs et configuration Le Cocq Michel [email protected] Licence de Sciences et Technologies - Mention Informatique 24 Janvier 2017

Cours Introduction - Systèmes/Services - Unix - Cours 4

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours Introduction - Systèmes/Services - Unix - Cours 4

Cours Introduction - Systèmes/Services - UnixCours 4 : Serveurs et configuration

Le Cocq [email protected]

Licence de Sciences et Technologies - Mention Informatique

24 Janvier 2017

Page 2: Cours Introduction - Systèmes/Services - Unix - Cours 4

Rappel plan général

Introduction au système UNIXServices, processus, signauxScripting shellApplications Client/Serveur et WebServeurs et configuration

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 2 / 22

Page 3: Cours Introduction - Systèmes/Services - Unix - Cours 4

Plan du cours 6 : Serveurs et configuration

1 Serveur Web

2 Votre propre serveur HTTP en python

3 Apache

4 Apache utilisation

5 Apache Configuration

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 3 / 22

Page 4: Cours Introduction - Systèmes/Services - Unix - Cours 4

Serveur WebPrésentation

Qu’est-ce qu’un serveur web ?logiciel servant des requêtes sur le protocole HTTP développépour le World Wide Web.un ordinateur sur lequel tourne un serveur HTTP est un serveurWeb.serveur web peut aussi désigner le logiciel en lui même.

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 4 / 22

Page 5: Cours Introduction - Systèmes/Services - Unix - Cours 4

Serveur WebPrésentation

Les serveurs HTTP les plus utilisés sont :Apache : HTTP serveur de la Apache Software Foundation.IIS : Internet Information Services de Microsoft (IIS)Sun ONE : Sun Microsystems

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 5 / 22

Page 6: Cours Introduction - Systèmes/Services - Unix - Cours 4

Serveur WebPrésentation

Un serveur HTTP est à l’écoute des connections sur un portdonné.Le port standard pour un serveur HTTP est le numéro 80.Le client d’un serveur HTTP est le navigateur Internet.A chaque requête qu’il reçoit le serveur présente à l’utilisateur lapage demandée.

Examplesquand dans un navigateur internet un internaute saisit l’adressehttp://www.google.fr/, il envoit une requête au serveur HTTP del’entreprise Google qui transfère des données (une page au formatHTML) qui sont interprétées et affichées par votre navigateur.

Sur certains serveurs le port d’écoute n’est pas 80 mais parexemple 1234. Dans ce cas on accèdera au serveur par l’adressesuivante : http://www.site.com:1234/ .

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 6 / 22

Page 7: Cours Introduction - Systèmes/Services - Unix - Cours 4

Serveur WebQue peut faire un serveur web ?

Servir une page (fichier) en ajoutant des entêtes appropriésExécuter un script et renvoyer le résultat comme une page. CGI(traitement de formulaires, etc).Interpréter des instructions encodées dans des tags HTMLVérifier la machine d’origine : gestion d’autorisations suivantprovenanceVérifier un mot de passe et un login : autorisations suivantutilisateur

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 7 / 22

Page 8: Cours Introduction - Systèmes/Services - Unix - Cours 4

Serveur WebQue peut faire un serveur web ? suite

Reconnaître les entêtes de requêtes et servir des pagesdifférentes suivant le client ou ses préférences

I Avoir des pages différentes selon le navigateur (browser)I Parler la langue demandéeI Voir http://www.apache.org/docs/content-negotiation.html

Lister des répertoiresI Voir http://www.apache.org/docs/mod_dir.html

Encrypter les données et sécuriser les transactionsI protocole httpsI Voir http://www.apache-ssl.org

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 8 / 22

Page 9: Cours Introduction - Systèmes/Services - Unix - Cours 4

Serveur WebQue peut faire un serveur web ? suite et fin

Répondre différemment suivant le nom de la machineI Une même machine peut porter plusieurs adresses IP (interfaces

virtuelles)une seule machine avec une seule carte réseau et une seule adresseIP peut héberger plusieurs serveurs WWW virtuelspar exemple : répondre à http://www.toto.fr et http://www.tata.fr enrenvoyant des pages différentes et en maintenant des logs et desconfigs propres à chaque serveur virtuel

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 9 / 22

Page 10: Cours Introduction - Systèmes/Services - Unix - Cours 4

Votre propre serveur HTTP Python

Un petit serveur web en python, rapidement pour pouvoir partagerponctuellement des fichiers.

Examplespython -c ’import SimpleHTTPServer;SimpleHTTPServer.test()’

Lance un petit serveur http sur le port 8000, partageant les fichiers durépertoire courant. Pointez vôtre navigateur sur http://127.0.0.1:8000/et vous servira le fichier index.html si il existe, sinon il listera lerépertoire courant.

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 10 / 22

Page 11: Cours Introduction - Systèmes/Services - Unix - Cours 4

ApachePrincipales caractéristiques

Ecrit en C (portable), plate forme UNIX (ou Linux) recommandéeMulti-processus / multi-thread (daemon httpd)Configuration très flexibleArchitecture modulaireComment obtenir Apache ?

I inclu dans la plupart des distributions linux (httpd)I sources et binaires sur http://www.apache.org/dist/httpd

première version décembre 1995dernière version : Apache 2.2

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 11 / 22

Page 12: Cours Introduction - Systèmes/Services - Unix - Cours 4

ApacheModules

compilés (statiques) ou liés dynamiquement (.so ou .dll)permettent d’ajouter des fonctionalités, exemples:

I mod_speling : correction des URL erronéesI mod_ssl : gestion SSL (https)I mod_cgi : gestion protocole CGII mod_alias : définition d’alias (URL)I etc... plusieurs dizaines de modules

directives de configuration spécifiques à chaque modulel’API des modules est documentée: on peut définir de nouveauxmodules (en langage C) si besoin.

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 12 / 22

Page 13: Cours Introduction - Systèmes/Services - Unix - Cours 4

ApacheLes répertoires importants

/usr/loca/bin/httpd : l’exécutable Apache/etc/apache : les fichiers de configuration httpd.conf/www : le site web/var/log/apache/logs : les journaux

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 13 / 22

Page 14: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apachestart / stop / restart

lancer apache : /etc/init.d/httpd startstop apache : /etc/init.d/httpd stop

apachectl : Apache HTTP Server Control Interfacestart Start the Apache httpd daemon.stop Stops the Apache httpd daemon.restart Restarts the Apache httpd daemon.fullstatus Displays a full status report from mod_status.status Displays a brief status report.graceful Gracefully restarts the Apache httpd daemon.graceful-stop Gracefully stops the Apache httpd daemon.configtest Run a configuration file syntax test.

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 14 / 22

Page 15: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apache Configuration

Fichier httpd.conf (RedHat/Fedora: /etc/httpd/conf/httpd.conf)Principales options:

ServerName : définit le nom du serveurmonserveur.org

port TCP (défaut 80)Listen 80

Répertoire où ce trouve le serveurServerRoot "/etc/httpd"

fichier où le serveur écrira le PID du processus/var/run/httpd.pid

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 15 / 22

Page 16: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apache Configuration (suite)

Modules à chargerLoadModule ldap_module modules/mod_ldap.so

Inclusion d’autre fichiers de configurationInclude conf.d/*.conf

Utilisateur unix utilisé par le daemon (sécurité)User apache Group apache

Bien choisir les droits associés à l’utilisateur “apache” (propriétés desfichiers et répertoires)

Répertoire racine (pages HTML à servir)DocumentRoot "/var/www/html"

Ainsi, http://serveur/page.html sera associé au fichier/var/www/html/page.html

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 16 / 22

Page 17: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apache Configuration (répertoires)

Options associées à chaque répertoire servi<Directory "/var/www/html">Options Indexes FollowSymLinks# controle d’accèsOrder allow,denyAllow from all</Directory>

Examplesrepertoire secret réservé à une machine: <Directory"/var/www/html/secret">Order allow,denyAllow from ma.machine.orgDeny from all</Directory>

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 17 / 22

Page 18: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apache Configuration (index)

Que faire lorsque le client demande un répertoire ? (et non un fichier)

http://mon.beau-site.org/ (pas de nom de fichier)Directive DirectoryIndexDirectoryIndex index.htmlVoir aussi l’option Indexes

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 18 / 22

Page 19: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apache Configuration (logs)

Logs d’accès et d’erreurs configurablesErrorLog logs/error_logLogLevel warnLogFormat "%h %l %u %t %r %>s %b" common CustomLoglogs/access_log common

193.101.94.101 - - [21/Nov/2004:17:18:47 +0100] "GET /robots.txt HTTP/1.1" 200 87 "-" "Mozilla/4.0 (compatible; MSIE 5.0;Windows95) VoilaBot BETA 1.2 (http://www.voila.com/)"195.101.94.101 - - [21/Nov/2004:17:18:58 +0100] "GET /Departement/Visite/Bureaux/O211 HTTP/1.1" 200 6173 "-""Mozilla/4.0(compatible; MSIE 5.0; Windows 95) VoilaBot BETA 1.2 (http://www.voila.com/)"81.65.74.2 - - [21/Nov/2004:17:19:07 +0100] "GET /favicon.ico HTTP/1.1" 200 1406 "-" "Mozilla/4.0 (compatible; MSIE 6.0;WindowsNT 5.1)"218.175.198.189 - - [21/Nov/2004:17:20:28 +0100] "GET /img/logoGTR HTTP/1.0" 200 1091"http://www-gtr.iutv.univ-paris13.fr/Equipe" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"83.254.108.216 - - [21/Nov/2004:17:20:57 +0100] "GET /Cours/Mat/Communication/DocSyntheses/synthese0 HTTP/1.1" 20020903 "-""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FREE; SV1; .NET CLR 1.0.3705)"217.175.187.189 - - [21/Nov/2004:17:21:37 +0100] "GET /Departement/Formation HTTP/1.0" 200 6921"http://www-gtr.iutv.univ-paris13.fr/Equipe" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 19 / 22

Page 20: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apache Configuration (alias)

La directive Alias permet de redéfinir certaines URL

ExamplesAlias /icons/ "/var/www/icons/"Alias /error/ "/var/www/error/"

Pour les scripts (CGI), utiliserScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

Pour des ré-écriture plus complexes, voir le modulemod_rewrite et sa directive RewriteRule

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 20 / 22

Page 21: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apache Configuration (cgi)

On repère habituellement les scripts CGI par leur extension (ex. ".cgi")ou leur répertoire.

Configurations simples typiques

Scripts dans un répertoireScriptAlias /cgi-bin/ "/var/www/cgi-bin/"<Directory "/var/www/cgi-bin">AllowOverride NoneOptions NoneOrder allow,denyAllow from all</Directory>

Ou bien traiter les fichiers .cgi comme des scripts CGIAddHandler cgi-script .cgi

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 21 / 22

Page 22: Cours Introduction - Systèmes/Services - Unix - Cours 4

Apache (pour en savoir plus...)

Après ce bref survol, consulter:apache.org : documentations, logicielsApache, la référence par Ben Peter Laurie, O’ReillyApache 2.0, guide de configuration Linux, Charles Aulds, Eyrolles2003.

Le Cocq Michel (Licence de Sciences et Technologies - Mention Informatique)Cours Introduction - Systèmes/Services - Unix 24 Janvier 2017 22 / 22