Technologie Web. Serveur Http Apache. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Serveur Http Apache 1/28



Documents pareils
SERVEUR HTTP Administration d apache

Module 7 : Configuration du serveur WEB Apache

UE5A Administration Réseaux LP SIRI

Les serveurs WEBUne introduction

Installation d un hébergement Web à domicile

2011 Hakim Benameurlaine 1

TP Service HTTP Serveur Apache Linux Debian

SERVEUR WEB LINUX LAMP. Raymond RAZAFIMAMONJY Administration LINUX / UNIX Chapitre 15

Configuration du serveur Web Apache. Master 1 STIC-Informatique 1

Le serveur Web : Apache

Apache 2.4 Installation et configuration

CYBERGATE -TP-APACHE_2.DOC

REPARTITION DE CHARGE LINUX

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Serveur Subversion Debian GNU/Linux

Installation et présentation du serveur Apache

Dans l'épisode précédent

Maîtriser Apache. Benjamin Drieu. version

Installation et configuration d Apache sous Linux RedHat 7.1. Pascal AUBRY Ambroise DIASCORN IFSIC Université de Rennes 1

Procédure d'installation du serveur Apache HTTPD pour Windows

Tutoriel compte-rendu Mission 1

Table des matières Hakim Benameurlaine 1

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

Administration Linux - Apache

TD4 - Supervision et métrologie des réseaux. 1 Supervision des applications et services réseaux et des ressources locales

Appropriation d'un serveur Apache

Installation GLPI-OCSNG-SSL Linux Debian Sarge

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

Procédure d'installation

Différentes installations sur un serveur Windows 2000 ou 2003.

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Préparation d un serveur Apache pour Zend Framework

Installation Installation. Windows. Tout-en-un. Un livre de Wikilivres.

Comment avoir le logiciel? Le serveur web APACHE peut être téléchargé gratuitement du site web de APACHE:

Serveurs et environnements de développement. Serveur Web

Administration réseau sous Linux

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

Installation de Zabbix

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

APACHE 2.4. Installation et configuration. Nicolas MARTINEZ

Séquence 8 - Bases des réseaux - suite Jean.Saquet@info.unicaen.fr, Gaetan.Richard@info.unicaen.fr

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Travaux Pratiques Introduction aux réseaux IP

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Exemple : vous voulez tester votre site en local avant de l uploader via FTP chez votre hébergeur externe.

Présentation Serveur Apache et pour RePeGlio

A. Laisser le navigateur Web choisir l'encodage approprié...35 B. Changer le jeu de caractères utilisé par défaut par le Serveur Web Apache2...

Protection d'un serveur Apache

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Serveur Web Apache - SSL - PHP Debian GNU/Linux

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

DOCUMENTATION ADMINISTRATEUR

InstallatIon et configuration d une Infrastructure réseau sans-fil. Avec. Interface de gestion utilisateurs

Hébergement de site web Damien Nouvel

CDS Invenio Installation et configuration de base

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

TP création et publication d'un site web statique

INSTALLATION APACHE POUR WINDOWS (XP OU 2000)

Le serveur web Apache

Utilisation de l espace personnel (Serveur DATA)

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

Projet de mise en œuvre d un serveur ftp sur serveur dédié

Gérer ses environnements de développement avec Vagrant RMLL 2012

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

Aubert Coralie, Ruzand Brice GTR 2002 Bonvarlet Manuel, Desroches Alexandre, Magnin Cyril DRT Notice technique 1

BTS SIO Dossier BTS. PURCHLA Romain

Apache PHP4.0.2+MySQL

Réaliser un inventaire Documentation utilisateur

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

installer_un_serveur_debian - Documentation Ubuntu Francophone Installation complète d'un serveur web sous Debian 6.0

Projet de Semestre. Page Web Didactique de Visualisation d Algorithme. Université de Genève - semestre de printemps 2012

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

SUPERVISION DE RÉSEAU AVEC NAGIOS

Les Serveurs sous Linux

Pratique et administration des systèmes

Mandataires, caches et filtres

ADF Reverse Proxy. Thierry DOSTES

L installation du module Webmail nécessite également quelques prérequis, à savoir :

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

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

CGI et SSI. La programmation CGI. Sources. Objectifs. Qu'est ce qu'un programme CGI? CGI

Côté Labo : le service Web

SECURIDAY 2012 Pro Edition

1. La plate-forme LAMP

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

Web statique : client-serveur. Web et LAMP. Discussion HTTP. Caractéristiques du HTTP

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Formation owncloud Thierry DOSTES - Octobre

INSTALLATION DE NAGIOS 2.10 et CENTREON sous Debian ETCH 4.0r1

Installation sur un serveur personnel

Compte rendu d'activité PTI n 2

Administration d'infrastructures logicielles avec Jade

table des matières Administration système

Transcription:

INSA - ASI TechnoWeb : Serveur Http Apache 1/28 Technologie Web Serveur Http Apache Alexandre Pauchet INSA Rouen - Département ASI BO.B.RC.18, pauchet@insa-rouen.fr

INSA - ASI TechnoWeb : Serveur Http Apache 2/28 Plan 1 Description 2 Configuration générale 3 Configuration des accès et opérations 4 Répertoires et authentification 5 Serveurs virtuels 6 Optimisation et sécurité

INSA - ASI TechnoWeb : Serveur Http Apache 3/28 Description (1/3) Présentation : A PAtCHy server Basé sur du code existant et une série de patchs Serveur open source : http://httpd.apache.org Conforme au protocole HTTP/1.1 (rfc2616) Serveur le plus utilisé au monde 2 versions actuelles : 1.3.X et 2.X (réécrit et multi-threads) Multi-plateformes (Unix, Windows, Novell Netware) Très configurable et modulaire

INSA - ASI TechnoWeb : Serveur Http Apache 4/28 Description (2/3) Installation par paquets Le serveur Apache Http peut s installer directement par paquets (apt-get ou via le gestionnaire de paquets) Paquets à installer : libapr1, apache2, apache2.2-common, apache2-utils et apache2-mpm-worker Modules complémentaires : PHP5 : php5-common, php5, php5-gd et libapache2-mod-php5 + modules optionnels php5 SQLite : php5-sqlite et sqlite3 MySQL : php5-mysql, mysql-server et libapache2-mod-auth-mysql POSTGRESQL : postgresql libapache2-mod-auth-pgsql

INSA - ASI TechnoWeb : Serveur Http Apache 5/28 Description (3/3) Installation par compilation des sources 1 Récupération des dernières versions Apache et PHP sur http://www.apache.org et http://www.php.net 2 Configuration et compilation d Apache Http $. / c o n f i g u r e p r e f i x=apache Path with i n c l u d e d a p r $ make $ make i n s t a l l 3 Configuration, compilation et installation du module PHP $. / c o n f i g u r e p r e f i x=php Path with a p x s 2=Apache Path / b i n / a p x s $ make $ make i n s t a l l 4 Prise en compte des fichiers.php dans Apache Ajouter AddType application/x httpd php.php dans le httpd.conf

INSA - ASI TechnoWeb : Serveur Http Apache 6/28 Configuration générale (1/5) Systèmes de fichiers Version classique (VC) Principal fichier de configuration : httpd.conf Ajout de modules par inclusion de sous-fichiers de configuration dans httpd.conf : Include conf/extra/fichier-à-ajouter.conf Version Debian/Ubuntu (VDU) Principal fichier de configuration : apache2.conf Ajout de modules par création de liens symboliques du répertoire mods-available vers mods-enabled. Pour chaque module, 2 fichiers à lier :.conf et.load. Ajout de sous-fichiers de configuration dans httpd.conf : Include fichier-à-ajouter.conf

INSA - ASI TechnoWeb : Serveur Http Apache 7/28 Configuration générale (2/5) Identification du serveur et emplacement des fichiers Configuration générale (VC : httpd.conf, VDU : sites-enabled/000-default) ServerName : nom du serveur (VDU : apache2.conf) Ex : ServerName 127.0.0.1, ServerName localhost:8080, ServerName www.example.com:80 ServerRoot : spécifie le répertoire où est installé le serveur (VDU : apache2.conf) Ex : ServerRoot "/tmp/apache2" ServerAdmin : adresse mail de l administrateur DocumentRoot : spécifie le répertoire racine d Apache ErrorLog : spécifie le fichier de log des erreurs CustomLog : spécifie le fichier de log contenant les requêtes au serveur Types MIME reconnus : directive TypesConfig dans mime.types (VDU : fichier présent dans mods-enabled)

INSA - ASI TechnoWeb : Serveur Http Apache 8/28 Configuration générale (3/5) Configuration réseau Listen détermine le port de connexion au serveur (classiquement 80 pour http, parfois 8080) VC : httpd.conf / VDU : ports.conf KeepAlive spécifie si les connexions persistantes sont autorisées VC : httpd-default.conf / VDU : apache2.conf KeepAliveTimeout temps à partir duquel la connexion est coupée VC : httpd-default.conf / VDU : apache2.conf Timeout temps de réception d une requête ou d une réponse VC : httpd-default.conf / VDU : apache2.conf Remarque C est le serveur qui définit le mode de connexion par défaut La rfc2616 préconise une connexion persistante

INSA - ASI TechnoWeb : Serveur Http Apache 9/28 Configuration générale (4/5) Configuration des processus StartServer, MaxSpareServers, MinSpareServers définissent le nombre de processus fils VC : httpd-mpm.conf / VDU : apache2.conf MaxRequestsPerChild nombre de requêtes traitées par fils VC : httpd-mpm.conf / VDU : apache2.conf

INSA - ASI TechnoWeb : Serveur Http Apache 10/28 Configuration générale (5/5) Démon Http User/Group : utilisateur et groupe sous lesquels est exécuté le démon Http. Dans httpd.conf pour VC <I f M o d u l e! mpm_netware_module> User daemon Group daemon </IfModule > Dans apache2.conf (et envvars par délégation) pour VDU

INSA - ASI TechnoWeb : Serveur Http Apache 11/28 Configuration des accès et opérations (1/7) Fichier par défaut DirectoryIndex : le(s) fichier(s) par défaut (index.html index.htm index.xhtml index.cgi index.php...) VC : httpd.conf / VDU : dir.conf

INSA - ASI TechnoWeb : Serveur Http Apache 12/28 Configuration des accès et opérations (2/7) Système de fichiers

INSA - ASI TechnoWeb : Serveur Http Apache 13/28 Configuration des accès et opérations (3/7) Système de fichiers UserDir spécifie le nom du répertoire web des utilisateurs (usuellement public_html) VC : httpd-userdir.conf / VDU : userdir.conf Alias : association d une URL à un répertoire local VC : httpd.conf / VDU : alias.conf ScriptAlias : idem, mais uniquement pour les CGI VC : httpd.conf / VDU : alias.conf AccessFileName : fichier de contrôle d accès (.htaccess) VC : httpd-default.conf / VDU : apache2.conf

INSA - ASI TechnoWeb : Serveur Http Apache 14/28 Configuration des accès et opérations (4/7) Le contrôle des traitements Redirect : redirection d une URL sur une autre Exemple : Redirect /google http://www.google.fr VC : httpd.conf / VDU : apache2.conf AddHandler : association d une extension à un gestionnaire Exemple : AddHandler cgi-script.cgi VC : httpd.conf / VDU : mime.conf ErrorDocument : spécifie le document à renvoyer si erreur Exemple : ErrorDocument 404 /doc_missing.html VC : httpd.conf / VDU : apache2.conf

INSA - ASI TechnoWeb : Serveur Http Apache 15/28 Configuration des accès et opérations (5/7) Le contrôle des opérations : configuration des répertoires Encapsulation de directives liées à un répertoire : <D i r e c t o r y r é p e r t o i r e > Options... A l l o w O v e r r i d e... <L i m i t GET POST... >... </Limit >... </D i r e c t o r y > Options : options du répertoire None/All ExecCGI FollowSymLinks/SymLinksIfOwnerMatch Indexes... AllowOverride : ce que le.htaccess peut outrepasser All/None AuthConfig FileInfo Indexes Limit... s appliquent aux répertoires du serveur et aux répertoires utilisateurs.

INSA - ASI TechnoWeb : Serveur Http Apache 16/28 Configuration des accès et opérations (6/7) Le contrôle sur les méthodes d accès à un répertoire Limitation de l accès d un répertoire <L i m i t GET POST... >... </Limit > <Limit> est (souvent) associé avec les directives : de type require : require [group user] nom 1,..., nom n require valid-user AuthName : Information transmise à l utilisateur AuthType : Basic Digest AuthUserFile : chemin absolu vers le.htpasswd AuthGroupFile : chemin absolu vers le.htgroup

INSA - ASI TechnoWeb : Serveur Http Apache 17/28 Configuration des accès et opérations (7/7) Le contrôle de l accès à certaines machines Dans les <Directory> comme dans les <Limit>, il est possible de contrôler l accès de certaines machines : Deny from nom nom partiel IP IP partiel idem Allow from... Order Deny,Allow ou Order Allow,Deny Exemple <D i r e c t o r y / docroot > Order Deny, Allow Allow from 192.1 Deny from apache. org. net </D i r e c t o r y >

INSA - ASI TechnoWeb : Serveur Http Apache 18/28 Répertoires et authentification (1/4).htaccess & AllowOverride AllowOverride autorise la redéfinition de directives locales à un répertoire dans un fichier.htaccess situé dans ce dernier : None : les fichiers.htaccess sont ignorés All : tout type de redéfinition est autorisé dans le.htaccess AuthConfig : autorise l authentification d utilisateurs FileInfo : autorise les directives liées aux types de documents Indexes : autorise l indexation des répertoires Limit : autorise les directives de gestion d accès Options : autorise les directives se rapportant aux fonctionnalités des répertoires

INSA - ASI TechnoWeb : Serveur Http Apache 19/28 Répertoires et authentification (2/4) Exemples de <Directory> Déclaration d authentification nécessaire <D i r e c t o r y /home/ o f r a i s / p u b l i c _ h t m l / technoweb> A u t h U s e r F i l e /home/ o f r a i s / l o g i n /. h t p a s s w d A u t h G r o u p F i l e / dev /. g r o u p s AuthName " Acces R e s t r e i n t " AuthType B a s i c <L i m i t GET POST> r e q u i r e v a l i d u s e r </Limit > </ Directory > Délégation au.htaccess avec AllowOverride Exemple, dans userdir.conf de technoweb : <D i r e c t o r y /home/ / p u b l i c _ h t m l > A l l o w O v e r r i d e F i l e I n f o A u t h C o n f i g L i m i t Options MultiViews I n d e x e s SymLinksIfOwnerMatch IncludesNoExec </ Directory >

INSA - ASI TechnoWeb : Serveur Http Apache 20/28 Répertoires et authentification (3/4) Le fichier.htaccess Le fichier.htaccess AuthName TEXTE AuthType B a s i c A u t h U s e r F i l e <chemin absolu >/. htpasswd A u t h GroupFile <chemin absolu >/. htgroup <L i m i t GET POST> r e q u i r e group groupe1... groupen r e q u i r e u s e r u t i l i s a t e u r 1... u t i l i s a t e u r N </Limit > Remarque : la directive require valid-user accepte tout utilisateur déclaré

INSA - ASI TechnoWeb : Serveur Http Apache 21/28 Répertoires et authentification (4/4) Utilisateur et mots de passe Fichier.htgroup groupe1... u t i l i s a t e u r 1... u t i l i s a t e u r N groupen u t i l i s a t e u r 1... u t i l i s a t e u r N Fichier.htpasswd u t i l i s a t e u r 1 : mot de... p a s s e c r y p t é u t i l i s a t e u r N : mot de p a s s e c r y p t é fichier créé à l aide de la commande htpasswd fourni avec Apache Remarque Attention : tous ces fichiers doivent être inaccessibles!!!

INSA - ASI TechnoWeb : Serveur Http Apache 22/28 Serveurs virtuels (1/3) Principe des serveurs virtuels Plusieurs serveurs web sur une même machine Deux possibilités de serveurs virtuels basés sur les IP : une adresse IP pour chaque serveur virtuel basés sur les noms : même adresse IP, mais nom pour chaque serveur virtuel Pour VC : httpd-vhosts.conf Pour VDU : ports.conf et sites-enabled/000-default Remarque Host: dans l en-tête Http est indispensable en cas de serveur virtuel

INSA - ASI TechnoWeb : Serveur Http Apache 23/28 Serveurs virtuels (2/3) Serveurs virtuels basés sur les IPs Directive <VirtualHost nom IP >...</VirtualHost> Exemples <V i r t u a l H o s t 1 9 3. 2 5 4. 1 0 5. 7 8 > ServerAdmin c a n a r i @ t i t i. f r DocumentRoot / t i t i / documents ServerName www. t i t i. f r E r r o r L o g / t i t i / l o g s / e r r o r _ l o g T r a n s f e r L o g / t i t i / l o g s / a c c e s s _ l o g </ VirtualHost > <V i r t u a l H o s t 1 9 3. 2 5 4. 1 0 5. 7 9 > ServerAdmin matou@gros minet. f r DocumentRoot / gros minet / documents ServerName www. gros minet. f r E r r o r L o g / g r o s m i n e t / l o g s / e r r o r _ l o g T r a n s f e r L o g / g r o s m i n e t / l o g s / a c c e s s _ l o g </ VirtualHost > Configuration des serveurs par ajout de directives internes. Chaque serveur virtuel doit connaître à la fois son IP et son nom.

INSA - ASI TechnoWeb : Serveur Http Apache 24/28 Serveurs virtuels (3/3) Serveurs virtuels basés sur les noms Directives NameVirtualHost IP[:Port] <VirtualHost nom IP >...</VirtualHost> Exemple N a m e V i r t u a l H o s t 1 9 3. 2 5 4. 1 0 5. 7 8 <V i r t u a l H o s t 1 9 3. 2 5 4. 1 0 5. 7 8 > ServerAdmin c a n a r i @ t i t i. f r DocumentRoot / t i t i / documents ServerName www. t i t i. f r E r r o r L o g / t i t i / l o g s / e r r o r _ l o g T r a n s f e r L o g / t i t i / l o g s / a c c e s s _ l o g </ VirtualHost > <V i r t u a l H o s t 1 9 3. 2 5 4. 1 0 5. 7 8 > ServerAdmin matou@gros minet. f r DocumentRoot / gros minet / documents ServerName www. gros minet. f r E r r o r L o g / g r o s m i n e t / l o g s / e r r o r _ l o g T r a n s f e r L o g / g r o s m i n e t / l o g s / a c c e s s _ l o g </ VirtualHost >

INSA - ASI TechnoWeb : Serveur Http Apache 25/28 Optimisation et sécurité (1/3) Droits sur la racine du serveur Remarque Les répertoires bin, conf, logs sont des répertoires très sensibles Le propriétaire du répertoire du serveur et l utilisateur User doivent être différents Seul le propriétaire du serveur peut modifier les fichiers (chmod 755) Il faut faire particulièrement attention à la configuration des SSI (Server Side Includes) et des CGI (Common Gateway Interface)

INSA - ASI TechnoWeb : Serveur Http Apache 26/28 Optimisation et sécurité (2/3) Sécurisation des SSI et des CGI Sécurisation des SSI : Extension des fichiers SSI différentes des fichiers HTML Désactivation de la commande exec (IncludesNOEXEC) Sécurisation des CGI : Non ScriptAlias versus ScriptAlias CGI Non ScriptAlias (faille de sécurité importante) appel de type http://<serveur>/~user/cgi-bin/script.cgi confiance envers les utilisateurs aucun contrôle sur les scripts des utilisateurs ScriptAlias (solution la plus utilisée) appel de type http://<serveur>/cgi-bin/<user>/script.cgi confiance envers les utilisateurs centralisation des scripts CGI contrôle relativement aisé Problème : tous les CGI s exécutent sous le même utilisateur solution : configurer Apache en suexec (CGI et SSI sous des UID différents de l utilisateur)

INSA - ASI TechnoWeb : Serveur Http Apache 27/28 Optimisation et sécurité (3/3) Protection des fichiers de configuration et des fichiers du serveur Dispositifs de sécurité minimums Interdire l utilisation des.htaccess à partir de la racine Interdire l accès à la racine du serveur <D i r e c t o r y /> A l l o w O v e r r i d e None Order Deny, Allow Deny from a l l </D i r e c t o r y >

INSA - ASI TechnoWeb : Serveur Http Apache 28/28 Références http://www.apache.org : Apache software foundation http://doc.ubuntu-fr.org/apache2 : Documentation Ubuntu sur Apache Http http://apachetoday.com : site d informations sur Apache Http http://www.jalix.org/ressources/reseaux/apache/_fiches_ httpd/httpd.ps : cours de Maurice Szmurlo http://www.php.net/ : site officiel PHP