Vous êtes sur la page 1sur 54

SERVICES WEB

PLAN

Mettre en place un serveur web

Grer un serveur web (OpenSSL, )

Mettre en place un serveur proxy (squid)

SERVICE WEB

Dfinition: Un service web est un


programme informatique permettant la
communication et l'change de donnes entre
applications et systmes htrognes dans
des environnements distribus.

Il s'agit d'un ensemble de fonctionnalits


exposes sur internet par et pour des
applications ou machines, sans intervention
humaine, et de manire synchrone.

SERVICE WEB

DFINITIONS

Un serveur web est un logiciel permettant de


rendre accessibles de nombreux ordinateurs (les
clients) des pages web stockes sur le disque.

Le service HTTP est la base de tous les services


lheure actuelle grce la modularit et la
flexibilit du protocole.

On retrouve ainsi de lHTTP dans les messageries


instantanes, lappel de procdure distance, etc.
5

DFINITIONS

la configuration dun serveur Apache,


les

logiciels libres,

Apache

est le serveur majoritairement utilis sur

Internet.
Il

est disponible sous quasiment toutes les plate-

formes
dispose

dune grande communaut avec une

centaine de projets connexes.


6

HTTP ET NAVIGATION

Pour accder un site Web, il vous faut utiliser un


client Web, communment appel navigateur, par
exemple : firefox, lynx, opera,

L'adresse de la page se dcoupe ainsi :

protocole://sd.SLD.TLD/

protocole Protocole_rseau : http, ftp

sd sous-domaine : www, ftp, doc, httpd

SLD(Second Level Domain)


Domaine_de_deuxime_niveau : ubuntu-fr, apache

TLD(Top Level Domain) Domaine_de_premier_niveau: org,


com, fr

VOCABULAIRE

HTTP est l'acronyme anglais de Protocole de Transfert


HyperTexte.

Un document hypertexte est un document contenant des


hyperliens.
Ceux-ci permettent de lier les pages les unes avec les autres.

Il existe une version scurise du HTTP : le HTTPS.


Afin de diffrencier quel protocole on utilise, on leur
rserve un port, par dfaut le 80 pour le mode non
scuris et le 443 pour le mode scuris.
8

MODE DE FONCTIONNEMENT
HTTP

Au moment de son dmarrage, Apache charge les fichiers de configuration de


la machine locale et se met en attente de requtes sur les interfaces rseaux.

Lorsque vous utilisez votre navigateur Web (un client HTTP), que vous cliquiez
sur un lien ou que vous rentriez directement l'adresse dans la barre
d'adresse, vous effectuez une requte :

Le client dtermine et se connecte au serveur ;

Le client effectue une requte HTTP sur le serveur, par la mthode GET du
protocole HTTP : il lui demande une page ;

Aprs l'analyse de la requte, le serveur renvoie la page concerne sous


forme de code

Une fois toutes les donnes envoyes, le serveur ferme la connexion ;

Paralllement le client analyse et construit l'affichage partir du code reu.

CONFIGURATION DAPACHE

Gnralits

Apache 1.3 est modeste en ne proposant par dfaut qu


un fichier : /etc/apache/httpd.conf. Cest le fichier de
configuration global.

Une fonctionnalit intressante dApache 2 est de


pouvoir diviser sa configuration dans de multiples
rpertoires et fichiers.

Imaginons que chaque service de votre entreprise


souhaite un espace sur votre serveur pour la publication
de leurs mmos.

10

CONFIGURATION DAPACHE

Soit vous vous chargez de tout grer pour eux,

Soit vous leur dlguez la tche en leur crant


leur propre espace de travail.

La configuration de leur rpertoire ou espace


se fera via des fichiers .htaccess, ces
derniers permettent de configurer plus
finement les accs, options, redirections ou
messages derreur par exemple.

11

INSTALLATION DU SERVEUR
APACHE 2

Apache 2 a trs certainement t install par


dfaut.

Pour le vrifier :dpkg -l | grep apache2


apache2
apache2-common
apache2-mpm-prefork
apache2-utils

ii libapache2-mod-perl2
libapache2-mod-php4 (ou libapache2-mod-php5)

12

INSTALLATION DU SERVEUR
APACHE 2

Si Apache2 n'est pas install, la commande :

apt-get install apache2installera le serveur


web avec ses dpendances.

On aura besoin dinstaller par la suite le


module php :

apt-get

install libapache2-mod-php4

apt-get

install libapache2-mod-php5

La documentation:apt-get install apache2doc

13

LES FICHIERS DE CONFIGURATIONS


DAPACHE

14

*.LOAD

Les fichiers avecl'extension loadcharge les modules


dynamiques :

15

*.CONF

Les fichiers avecl'extension confsont les


fichiers de configuration des modules

16

/ETC/APACHE2/MODS-ENABLED

On trouve les fichiers concernant les


modulesactivsdans le rpertoire
/etc/apache2/mods-enabled /:

ce sont uniquement ces fichiers qui sont


inclus dans le fichier de configuration
principal par les directives :

17

/ETC/APACHE2/MODS-ENABLED

Et ces fichiers sont en fait des liens qui


pointent vers les fichiers
de/etc/apache2/mods-available

Pour activer un module(ce qui revient donc


crer le lien), il est pratique d'utiliser la
commande suivante :

a2enmod mod_userdir.

18

/ETC/APACHE2/SITES-ENABLED/

On trouve tous les fichiers de configuration des


serveurs web/etc/apache2/sites-available/

On trouve les fichiers de configuration des sites


webactivsdans le rpertoire

/etc/apache2/sites-enabled/

ce sont uniquement ces fichiers qui sont inclus


dans le fichier de configuration principal par la
directive :

19

/ETC/APACHE2/SITES-ENABLED/

Et ces fichiers sont en fait des liens qui


pointent vers les fichiers
de/etc/apache2/sites-available

De mme que pour les modules,pour activer


un site, il existe une commande :

a2ensite fichier_conf.

"fichier_conf" tant un fichier de configuration


prsent dans/etc/apache2/sites-available/

20

La documentation est dans/usr/share/doc.

Les journaux sont dans/var/log/apache2/.

Le script de lancement du service serveur est


dans/etc/init.d

Pour que le serveur Web puisse rpondre


une demande d'un client, il doit tre dmarr

/etc/init.d/apache2 start.
21

INSTALLATION D'UN SERVICE


HTTP

une sauvegarde des fichiers de configuration


avant de procder toutes modifications

cp -rp /etc/apache2 /etc/apache2.init

Les modifications ne seront prises en compte


que si les fichiers de configurations sont relus
/etc/init.d/apache2

reload

ou si le service est redmarr


/etc/init.d/apache2

restart.

22

INSTALLATION D'UN SERVICE


HTTP

Vous pouvez vrifier la syntaxe des fichiers


de configuration par la
commande :apache2 -t

23

LE
FICHIER/ETC/APACHE2/PORTS.CONF

Listen 80, indique quel est le port utilis par le


service (par dfaut 80).

Il est possible d'utiliser un autre port, par contre vous


devrez spcifier au navigateur quel est le port utilis
par le serveur.

Si vous configurez par exemple le port 8080 (Listen


8080) sur une machinewww.MonDomaine.edu, vous
devrez spcifier dans le navigateur
www.MonDomaine.edu:8080,

pour que le serveur reoive et traite votre requte.

24

/ETC/APACHE2/APACHE2.CONF

user www-dataetgroup www-data, spcifient le compte


anonyme utilis par le serveur une fois qu'il est lanc.

Pour accder aux ports infrieurs 1024, le serveur utilise un


compte administrateur, ce qui prsente des dangers.

Une fois le processus actif, il utilisera l'UIDd'un autre compte


(ici www-data).

Ce compte doit pouvoir lire les fichiers de configuration et ceux


de la racine du serveurHTTP(attention donc aux droits sur les
pages web desservies).

D'autres distributions utilisent le compte nobody ou apache

25

/ETC/APACHE2/APACHE2.CONF

ServerRoot/etc/apache2, indique l'adresse du rpertoire


racine du serveur, o sont stocks les fichiers de
configuration du serveurHTTP.

PidFile/var/run/apache2.pid, indique le fichier o le


serveur en excution stocke son numro de processus
(PID).

ErrorLog, fichiererror_log, journalisation des erreurs.


L'adresse est calcule partir de ServerRoot.

Si ServerRoot est:/etc/httpdet ErrorLog :logs/error_log, le


chemin complet est: /var/log/apache/logs/error_log.

26

/ETC/APACHE2/APACHE2.CONF

Il est frquent d'hberger plusieurs serveurs web sur un


mme poste
ladclaration

et le paramtrage des diffrents serveurs

est mis dans des fichiers placer


dans/etc/apache2/sites-available/.

Le fichierdefaulty est dj prsent pour assurer le


paramtrage du site principal par dfaut dont la racine se
trouve, toujours par dfaut /var/www/.

Le site par dfaut est dj activ ; on retrouve donc un


lien vers ce fichier dans/etc/apache2/sites-enabled.

27

PRINCIPE

28

Les directives qui suivent correspondent


des serveurs spcifiques et sont donc
incluses dans les fichiers de configuration
prsents dans/etc/apache2/sites-available/,
notamment celui par
dfaut/etc/apache2/sites-available/default.

29

30

LES DIRECTIVES

31

EXEMPLES

1.

Exemple:
Vous voulez que
www.MonDomaine.edu/test/index.html, ne
corresponde pas physiquement un rpertoire sur la
racine du serveurHTTP(dfini par la directive
prcdente DocumentRoot) mais un emplacement
qui serait /usr/local/essai.
Vous

pouvez mettre dans le fichier de configuration d'Apache

un alias de la forme: alias /test/ /usr/local/essai/

32

DIRECTORYINDEX

33

DIRECTORY INDEX

Par exemple sur une requte http://www.MonDomaine.edu, le


serveur va rechercher dans l'ordre s'il trouve un fichier
index.html, index.stml, index.cgi... en fonction des paramtres
de cette variable.

On peut activer ou non (active par dfaut) l'option "Indexes"


au niveau d'un rpertoire de manire ce que si une URL pointe
sur un rpertoire, et aucun fichier dfini par DirectoryIndex
n'existe dans ce dernier, alors le serveur retourne une liste du
contenu du rpertoire. Si l'indexation n'est pas active (ce qui
est plus scuris), on obtient une page d'erreur 403 ("You don't
have permission to access /repertoire on this server").

34

SCURISATION DES ACCS

Chaque rpertoire dont le contenu doit tre


gr par Apache2 peut tre configur
spcifiquement.

Pour chaque rpertoire "UnRpertoire", sur


lequel on dsire avoir une action, on utilisera
la procdure suivante:

35

Tout ce qui est entre les balises s'applique au rpertoire


"UnRpertoire".

Quelques options :

Indexes: autorise l'affichage du contenu d'un rpertoire (si un


fichier par dfaut n'y est pas trouv).

FollowSymLinks: le serveur est autoris suivre les liens


symboliques dans ce rpertoire.

ExecCGI: l'excution de scripts CGI est autoris.

36

Pour dsactiver les options (par exemple


Indexes)

37

SCURISER UN RPERTOIRE EN
AUTORISANT/REFUSANT L'ACCS

On peut rglementer pour chaque rpertoire le droit d'accder


aux pages contenues dans ce rpertoire, en fonction de la
machine cliente et/ou de l'utilisateur qui se connecte.

Le fichier dans lequel ce paramtrage s'effectue est un fichier


de configuration prsent dans/etc/apache2/sites-available/.

Exemple: On dsire autoriser l'accs du rpertoire "/intranet"


aux machines du rseau d'adresse 192.168.1.0/24 et de nom
de domaine MonDomaine.edu, et l'interdire tous les autres.

38

SCURISER UN RPERTOIRE EN
AUTORISANT/REFUSANT L'ACCS

Il importe de prciser dans quel ordre les


rgles de restriction vont tre appliques.

Cet ordre est indiqu par le mot rserv


order,

Exemple: order deny,allow (On refuse puis


on alloue l'accs quelques adresses, c'est
dire que toutes les rgles deny vont tre lues
d'abord, puis ce sera le tour de toutes les
rgles allow) ou order allow,deny

39

Exemple: On dsire que l'accs soit


majoritairement accept, sauf pour un ou
quelques sites.

40

AUTHENTIFIER L'ACCS UN
RPERTOIRE

ce procd va permettre de scuriser l'accs un


rpertoire ou des fichiers.

L'accs sera autoris une ou plusieurs personnes


ou encore un ou plusieurs groupes de personnes.

Vous pouvez crer ce fichier partir du fichier


/etc/passwd ou avec la commande "htpasswd"
d'Apache.

41

42

AUTHENTIFIER L'ACCS UN
RPERTOIRE

Exemple du mode d'utilisation de la commande


"htpasswd" :

AuthGroupFiledfinit le fichier qui contient la liste


des groupes et la liste des membres de chaque
groupe,
Requirepermet de dfinir quelles personnes,
groupes ou listes de groupes ont une permission
d'accs.

43

AUTHENTIFIER L'ACCS UN
RPERTOIRE

Exemple de fichier AuthUserFile :

Exemple de fichier AuthGroupFile :

Exemple d'autorisation :

44

AUTHENTIFIER L'ACCS UN
RPERTOIRE

Exemple d'accs scuris sur un rpertoire :

45

AUTHENTIFIER L'ACCS UN
RPERTOIRE

Voici la fentre scurise que propose


Netscape sur l'URL http://localhost/essai:

46

AUTHENTIFIER L'ACCS UN
RPERTOIRE

La dclaration d'un accs authentifi sur un


rpertoire peut tre aussi faite en crant un fichier
".htaccess" dans le rpertoire que l'on souhaite
scuriser.

Le fichier ".htaccess" contient les mmes directives


que celles qui auraient t dclares dans le fichier
httpd.conf.

Ainsi, il est possible de dlocaliser la gestion de la


configuration, au moyen de fichiers spciaux appels
par dfaut .htaccess.

47

AUTHENTIFIER L'ACCS UN
RPERTOIRE

Le ".htaccess" contient les directives


suivantes :

48

UN SERVEUR WEB PERSONNEL


POUR CHAQUE UTILISATEUR

Une directive particulire Userdir public_html


permet de grer pour chaque utilisateur (chaque
possesseur d'un compte) des pages personnelles.

Dans apache2, cette directive est en fait associ un


module non activ par dfaut.

Il suffit donc d'activer le module correspondant par la


commandea2enmod mod_userdir, ce qui aura
pour effet de crer deux liens vers les fichiers
correspondants userdir.conf et userdir.load.

49

UN SERVEUR WEB PERSONNEL


POUR CHAQUE UTILISATEUR

Dans userdir.conf, on trouve par dfaut les


directives suivantes :

UserDir public_html, ce paramtre dcrit le


processus utilis pour accder aux pages
personnelles d'une personne, si ces pages
sont stockes dans son rpertoire personnel.

Par dfaut :
50

UN SERVEUR WEB PERSONNEL


POUR CHAQUE UTILISATEUR

Supposons que vous tes l'utilisateur "bestof" du


rseau et que vous ayez des pages personnelles.

Il sera possible d'accder vos pages, avec


l'adresse suivante:
www.MonDomaine.edu/~bestof/index.html.

Le (tilde "~") permet d'accder votre


rpertoire personnel.

La requte sera excute sur


"/home/bestof/public_html/index.html.

51

UserDir disabled root, ce paramtre, par


mesure de scurit ne permet pas
l'utilisateur "root" de mettre en ligne un web
personnel.

La configuration par dfaut n'est pas trs


scurise car elle oblige mettre les droits
de lecture tout le monde (755) sur le
rpertoire personnel.

52

ACTIVATION DU SERVEUR

Utilisez les commandes suivantes pour activer, dsactiver le


serveur:

/etc/init.d/apache start

/etc/init.d/apache stop

Pour relire le fichier de configuration alors qu'apache est dj


lanc, utilisez :

/etc/init.d/apache reload

Pour activer et dsactiver un module, utilisez :

a2enmod nomModule
53

a2dismod nomModule

ACTIVATION DU SERVEUR

nomModule est le nom d'un module prsent


dans/etc/apaches2/mods-available

Pour activer et dsactiver un site WEB, utilisez:

a2ensite nomSite

a2dissite nomSite

nomSite est le nom d'un fichier de configuration du site


prsent dans/etc/apaches2/sites-available

Dans tous les cas il faut consulter les journaux afin de


dtecter les dysfonctionnements.

54