Vous êtes sur la page 1sur 14

Installation et Configuration d'Apache2

Gnralits

I Pour connaitre la version exacte installe : apache2 -v --> Server version: Apache/2.0.52 Pour installer la documentation localement: apt-get install apache2-doc Il s'agit ici de comprendre et de prendre en main sa configuration en agissant sur ses principaux paramtres et directives contenus dans les fichiers de configuration. En gnral les distributions placent ces fichiers dans le rpertoire : /etc/apache2/ (debian 3.1) ou /etc/httpd/conf/ (Redhat, Mdk) Mais attention, chaque distribution particularise la configuration d'Apache, et de surcroit celle-ci peut varier grandement d'une version la suivante .. Ici, le fichier de configuration principal est : /etc/apache2/apache2.conf L'architecture du serveur est modulaire. Chaque module assure des traitements spcifiques.. Pour connaitre les modules compils avec le core : apache2 -l Les modules dynamiques chargeables (fichiers .so) sont tous placs dans /usr/lib/apache2/modules/. Chacun possde des fichiers de configuration spcifiques placs dans /etc/apache2/mods-available/ Le serveur WEB enregistre sans cesse son activit dans des journaux (logs), situs dans /var/log/apache2/. On peut consulter et comprendre les requtes en provenance des clients dans le fichier access.log o elles sont archives. Pour chercher l'emplacement de clauses particulires, il est commode d'interroger le fichier de configuration avec l'utilitaire grep. Par exemple pour chercher les numros de lignes o se trouvent les mots UserDir, puis alias (sans tenir compte de la casse) : grep -n "UserDir" /etc/apache2/apache2.conf grep -ni "alias" /etc/apache2/apache2.conf

Conseils - Il est prudent de sauvegarder le fichier de configuration d'origine : cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.old

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

- A chaque modification, vrifier la syntaxe de ce fichier en passant la commande : apache -t - Pour que Apache prenne en compte ces modifications : /etc/init.d/apache2 reload

/etc/init.d/apache2 restart Description des diffrents fichiers de configuration

Voici les principales clauses de configuration. Certaines seront approfondies en TP. Il est possible de reconfigurer le serveur interactivement avec la commande apacheconfig

Le fichier de configuration lui-mme est modulaire : le fichier principal inclut des directives provenant d'autres fichiers grce aux clauses Include. Cette directive accepte des jokers ce qui permet le chargement de multiples fichiers de configuration. Observer le rsultat de la commande grep -ni include /etc/apache2/apache2.conf. ServerName www.esp.sn Le nom doit correspondre une adresse IP, donc tre renseign dans un serveur DNS (car la machine hte est jointe par son adresse IP) Si aucun nom n'est spcifi, alors le serveur tente de dduire un nom en procdant un "lookup inverse" partir de l'adresse IP. ServerRoot "/etc/apache2" Il s'agit du rpertoire o le serveur trouvera son rpertoire de configuration PidFile /var/run/apache2.pid C'est le fichier o le serveur en excution stocke son premier numro de processus (PID) DocumentRoot /var/www/ fixe la racine du serveur Web, c'est--dire le rpertoire de base o sont cherches par dfaut les pages html, lorsque l'URL se limite au nom du serveur et ne comporte pas de chemin de rpertoire (dans certaines distributions, c'est /var/www/html) Listen Cette directive est (pour Apache2) indispensable.Elle spcifie les adresses IP des interfaces locales et les ports sur lesquels Apache doit tre en coute (par dfaut les requtes sont acceptes de toutes les interfaces IP, et donc en gnral seul(s) le(s) numros de port(s) sont renseigns ). Sur apache2, ces dclarations sont incluses dans apache2.conf par Include /etc/apache2/ports.conf # lequel peut contenir par exemple

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

# pour que le serveur accepte des connexions la fois sur les ports 80 et 8080 Listen 80 Listen 8080

User www-data Group www-data Apache doit tre dmarr par root, mais par scurit ses processus auront pour propritaire l'utilisateur www-data, sans privilge. ServerAdmin esp@esp.sn S'il a un problme, le serveur crit un message cette adresse AccessFileName .htaccess Cette clause fixe le nom du fichier trouver dans un rpertoire pour que son accs soit protg, en imposant l'utilisateur une authentification par nom et mot de passe. Ces comptes sont spcifiques Apache et n'interfrent pas avec les comptes Linux. DirectoryIndex index.html index.php index.htm ... Il est courant d'omettre le nom du fichier de la page d'accueil d'un site ou de l'un de ses sous-rpertoires. Pour ne pas retourner systmatiquement une erreur 404 signalant une adresse erronne, le serveur possde une liste standard de noms de fichiers qu'il s'efforce de trouver dans le rpertoire. Cette liste ordonne est indique par la clause DirectoryIndex UserDir public_html Ce paramtre (plac ici dans /etc/apache2/mods-available/userdir.conf ) signifie que n'importe quel utilisateur peut publier ses pages WEB personnelles dans un sous-rpertoire de son rpertoire perso, lequel doit tre obligatoirement nomm public_html. Pour l'utilisateur kane, c'est dans /home/kane/public_html. Sa page d'accueil sera alors accessible par l'URL : http://www.esp.sn/~kane , o www.esp.sn est le nom du serveur ou son adresse IP.

Les modules

Apache est un serveur modulaire. Autour d'un noyau qui rassemble les fonctions de base on peut inclure des modules de faon dynamique ( condition de s'y connaitre !). Il existe un module spcial mod_dso, qui doit avoir t compil avec le noyau, pour permettre justement ce chargement dynamique. Procdure de chargement et configuration Dans la version tudie, la directive d'inclusion LoadModule de chaque module chargeable, est dporte et mise dans un fichier spcifique situ dans /etc/apache2/mods-available/. De plus, un fichier de configuration spcifique par module se trouve dans le mme rpertoire.

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

Ces fichiers de configuration par module sont eux-mmes pris en compte dans apache2.conf par la directive : Include /etc/apache2/mods-available/*.load (ligne 116) Include /etc/apache2/mods-available/*.conf

Les fichiers .load et .conf Ils portent le nom d'un module dynamique. Par exemple : # userdir.load LoadModule userdir_module /usr/lib/apache2/modules/mod_userdir.so # php4.load LoadModule php4_module /usr/lib/apache2/modules/libphp4.so

Les sites virtuels La dernire ligne du fichier de configuration, Include /etc/apache2/sitesenabled/[#]* permet d'inclure le seul fichier ici prsent /etc/apache2/sitesavailable/default. Ce fichier dcrit la configuration de base du site web. La place du rpertoire d'accueil du site est prcise par le chemin qui suit la directive DocumentRoot /var/www/

Rglages d'excution

Timeout 300 Paramtre important qui fixe le temps (en ms) d'attente maximum du serveur d'une rponse une requte envoye un programme extrieur (comme un gestionnaire de base de donnes) KeepAliveon MaxKeepAliverequests 100 KeepAliveTimeout 15 Autorise les connexions persistantes d'un client, afin de lui permettre l'envoi de plusieurs requetes sans dconnexion, avec un plafond fix pour un client, pour servir aussi d'ventuels autres clients ! et un temps d'attente maxi de la requete suivante provenant du meme client. MinSpareServers 4 MaxSpareServers 20 Nombres maximum et minimum de processus serveurs devant tre en permanence disponibles, en attente de nouvelles connexions clientes StartServers 5 Nombre de processus serveurs dmarrs l'initialisation, en plus du processus pre. ps aux|grep apache donne le nombre de PID enfant proprit de wwwdata.

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

MaxClients 20 Nombre maximum de processus qu'Apache peut lancer et grer simultanment. Ce nombre ne peut pas excder 254 MaxRequestsPerChild 500 Nombre maximum de requetes HTTP traites par un processus enfant avant qu'il ne soit limin.

Gestion et suivi des connexions

La commande tail -f /var/log/apache2/access.log > /dev/tty11 & affiche les dernires requtes au serveur Apache, "en direct" sur la pseudo-console 11 (pour l'activer : alt-F11). On peut utiliser aussi less /var/log/apache/access.log puis Shift-F pour basculer la fin du fichier en attente de donnes (Ctrl-C pour finir)

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

Serveur apache scuris

Pourquoi installer SSL sur Apache ? SSL (=Secure Socket Layer) est un protocole de cryptage qui s'applique aux pages transmises par le serveur aux navigateurs et qui assure ainsi une bonne scurit pour les donnes Il s'agit ici de permettre de scuriser un htes virtuel grce au protocole SSL Installer la bibiothque openssl 1. Les paquets indispensables sont-ils dj installs ? # dpkg -l | grep ssl libssl0.9.8, openssl, ssl-cert 2. Installation apt-get install openssl installe openssl version 0.9.8a 3. Activation du module SSL sur Apache2 Il faut s'assurer que le module soit bien charg par Apache2 cd etc/apache2/mods-available a2enmod ssl /etc/init.d/apache2 reload 4. Qu'est ce qu'un certificat ? Les certificats permettent de fournir divers informations concernant l'identit de son dtenteur. Ce certificat s'accompagne d'une cl publique indispensable pour que la communication entre les machines soit chiffre. De mme, afin de garantir l'authenticit du certificat, ce dernier est sign numriquement par le biais d'une cl dite prive provenant soit d'un organisme officiel (Socit spcialise dans la certification) soit par le dtenteur du certificat lui mme. Dans ce dernier cas, on parlera de certificat autosign 5. Gnration du certificat auto-sign 1. Gnration du certificat cd /etc/apache2/ssl apache2-ssl-certificate et on rpond aux questions : - Country Name (2 letter code) [GB] --> FR - State or Province Name (full name) [Some-State]: --> France - Locality Name (eg, city) []: --> ... - Organization Name (eg, company; recommended) []:

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

- Organizational Unit Name (eg, section) []: - server name (eg. ssl.domain.tld; required!!!) []: Il s'agit du site que nous voulons scuriser par ssl --> fall.esp.sn - Email Address []: --> ... 2. Rgler le serveur pour qu'il coute (aussi) sur le port 443 Par dfaut, Apache2 est configur pour couter sur le port 80. Voir la commande : netstat -nlt Or le protocole SSL a besoin d'mettre sur un port spcifique pour pouvoir fonctionner, celui qui est adopt en gnral est le port 443. Pour cela on ajoute cette directive de configuration dans le fichier /etc/apache2/ports.conf : Listen 443 /etc/init.d/apache2 reload netstat -nlt 3. Cration du fichier de configuration Si on passe la requte : https//localhost, on n'a accs nulle part. Normal puisque nous n'avons pas encore dclar de rpertoire pour tre accd par le port 443 et le protocole scuris https ! Il est ncessaire d'ajouter un fichier de configuration spcifique pour le service WEB qui bnficier du chiffrement. Pour cela dans le rpertoire /etc/apache2/sites-available # fichier de configuration /etc/apache2/sitesavailable/falls.conf NameVirtualHost 10.194.2.xxx:443 <VirtualHost 10.194.2.xxx:443> DocumentRoot /var/www/fall ServerName fall.esp.sn <Directory /var/www/fall> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from all </Directory> SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem SSLCertificateKeyFile /etc/apache2/ssl/6cc37e2e.0 </VirtualHost>
(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

4. Commemntaires sur les directives - NameVirtualHost 10.194.2.xxx:443 pour dclarer un site virtuel accessible au port 443 - SSLEngine : pour activer le "moteur" SSL - SSLCertificateFile : dfinit le certificat authentifiant le serveur auprs des clients. - SSLCertificateKeyFile : dfinit la cl prive utilise pour signer l'change de cl entre le client et le serveur. Ici la cl se trouve dans le mme fichier que le certificat (/etc/apache2/ssl). En fait, il s'agit d'un lien symbolique vers /etc/apache2/ssl/apache.pem. 6. Tests Ensuite recharger la configuration d'apache2, puis passer l'URL : https://falls.esp.sn/ip/ On reoit la fentre d'avertissement usuelle. Faire ensuite le ncessaire pour que l'accs la page d'authentification de kanene s'obtienne plus par une requte adresse au port 80

Authentification des utilisateurs

1. Authentification locale basique

Objectif On demande ici de protger l'accs au sous-site priv de l'tablissement, suppos situ dans le sous-rpertoire /var/www/prive/. Il ne devra tre accessible qu' un ensemble limit de comptes Apache (et non Linux) qui seront crer La premire requte adresse ce rpertoire protg provoquera l'affichage d'une boite de dialogue par laquelle l'utilisateur devra s'authentifier (nom et mot de passe). Etapes 1. Crer le rpertoire /var/www/prive, y placer quelques pages HTML. Tester leur accessibilit pour tous. Si ncessaire ajuster les permissions Linux sur ces fichiers : chown -R www-data /var/www/prive chmod -R 700 /var/www/prive

2. Vous constatez que l'on peut parcourir le contenu de ce nouveau rperoire. Expliquez pourquoi. II. Dans quel rpertoire allez-vous crire le fichier qu'on nommera perso qui
(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

doit contenir la configuration du rpertoire /var/www/prive ? III. Crer dans ce fichier prcdent une section <Directory /var/www/prive> .. </Directory> contenant les directives usuelles (voir TP 2), en interdisant son indexation, tout en autorisant l'accs de partout. IV. Tester l'accs au rpertoire et l'apparition d'une erreur 403 "forbidden" 1. Inclure les clauses d'authentification "basique" AuthType Basic AuthName "Accs rserv" Require valid-user AuthUserFile /etc/apache2/users # si on veut limiter l'accs aux requtes GET #<limit GET> # require valid-user #</limit> 2. Tests - Tester l'accs http://www.esp.sn/prive par un compte linux, par exemple root fctice et notez l'apparition d'une erreur 401 "Authorization Required" - Dans ces conditions o se trouvera le fichier d'authentification ? - Crer quelques comptes Apache l'aide de l'utilitaite htpasswd - Examiner le fichier /etc/apache2/users contenant les comptes ainsi crs - Tester. La protection fonctionne t-elle ? 3. Utilisation d'un fichier .htaccess Revoir son principe (cf TP 2) V. Crer le fichier .htaccess directement dans /var/www/prive VI. Y crire les clauses d'authentification Basic VII. Relancer la navigateur et tester l'accs au rp. prive VIII. Comment savoir quel est le fichier actif ? Conclusion ? IX. Modifier en consquence la clause AllowOverride concernant ce rpertoire X. Relancer le navigateur. Est-ce convenable ? XI. Qu'obtenez vous en demandant : http://www.esp.sn/prive/.htaccess ? Expliquez pourquoi.

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

ANNEXES Authentification

Objectif Par dfaut le protocole http n'exige pas d'authentification. Une ressource correctement demande et existante est fournie aussitt que possible la machine cliente pourvu que celle-ci soit autorise, par les directives Order .. et Allow from .. L'autorisation des accs n'est donc pas lie aux personnes. A l'inverse, les dispositifs complmentaires que nous allons voir s'appliquent rglementer les accs une arborescence, de faon les rserver un ensemble d'utilisateurs autoriss. Pour accder ces ressources, les utilisateurs devront alors satisfaire une procdure d'authentification par login et mot de passe. Mthodes On peut implmenter diverses mthodes : - Basic et digest : l'utilisateur doit possder un compte pour s'authentifier auprs d'APACHE. Dans la mthode Basic le mot de passe circule en clair entre le client et le serveur. - Https - base de donnes - authentification gre par l'application, ce qui require du code, actuellement principalement crit en java, perl ou php

La mthode Basic

Directives Voici les directives usuelles et leur signification Directive AuthType basic AuthName texte AuthUserFile chemin/fichier Action type d'authentification communment adopt (fait circuler les mots de passe en clair) affichera ce texte comme invite dans une boite de dialogue prcise le fichier qui contient les comptes et mots de passe des utilisateurs ayant droit d'accs

Require validl'accs s'applique tous les comptes du user fichiers, ou seulement aux comptes Require listenumrs dans la liste noms Exemple de procdure Supposons que l'espace priv soit situ dans le rpertoire /var/www/prive et son accs rserv un ensemble d'utilisateurs : admin, webmaster et kane 1. Directives dans le fichier default <Directory "/var/www/prive"> AuthType Basic

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

AuthUserFile /etc/apache/users AuthName "Accs priv" # autres clauses # AuthGroupFile /etc/apache/groups <limit GET> # ATTENTION : GET en majuscules ! require valid-user # require user toto # require group profs </limit> </Directory> 2. Faire relire la configuration au serveur. Testez l'accessibilit au rpertoire priv : http://ip/prive/ 3. Cration des comptes Ils doivent tre placs dans le fichier spcifi par la clause AuthUserFile, et sont crs avec la commande htpasswd. Pour crer les 2 premiers comptes Apache (qui n'ont pas de raison d'tre des comptes du systme hte) cd /etc/apache2 htpasswd -c users admin --> mot de passe demand, puis confirm htpasswd users kane Attention ! le fichier users doit pouvoir tre lu par l'utilisateur wwwdata utilis par le serveur. Examinez le fichier /etc/apache/users. Une ligne doit tre prsente par compte Apache cr 4. Test Testez l'accessibilit au rpertoire priv : http://serveur/prive/ Le serveur WEB affiche une boite de dialogue pour rclamer un couple login/mot de passe : Authentification dans .htaccess

On peut placer les directives d'authentification "Basic" dans un fichier .htaccess, plac directement dans le rpertoire protger. L'avantage de ce procd : l'accs ce fichier ne requiert pas de privilge d'administration d'Apache. On peut alors procder une vritable dlgation des droits d'administration, parfaitement contrl puisque limit aux rpertoires autoriss par l'administrateur du serveur. S'il s'agit de l'hbergement du site, normalement l'accs complet en est attribu au gestionnaire, qui peut ainsi grer lui-mme les autorisations d'accs de ses visiteurs, en modifiant ce fichier. Mais on considre alors que la scurit est alors plus limite.. Voici un exemple :

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

cd /var/www/prive less .htaccess Options -Indexes Order allow,deny deny from all allow from .. AuthType Basic AuthUserFile /etc/apache2/users AuthName "Accs priv" Require valid-user

Rappelons que ce fichier de configuration ne supplante (override) les clauses places dans les fichiers de /etc/apache2, que si la clause suivante est prsente dans le paragraphe grant ce mme rpertoire, par exemple dans /etc/apache2/sites-available/ <Directory /var/www/prive> ........... Allowoverride All </Directory>

Remarques - l'exprience montre qu'il est parfois indispensable de redmarrer le navigateur client pour que les modifications soient prises en compte. - Pour empcher l'affichage du contenu de ce fichier .htaccess, bien vrifier la prsence dans apache2.conf de la directive : <Files ~ "^\.ht"> Order allow,deny Deny from all </Files>

Alias et sites virtuels

Prcaution Faites une sauvegarde du fichier /etc/apache2/sites-available/default en default.svg, par exemple. Dfinir des alias Il peut tre utile de remplacer un chemin de rpertoire par un nom symbolique grce la directive "alias". Ces rpertoires renomms doivent tre paramtrs comme les autres. Les alias sont utiliss pour masquer les chemins
(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

d'accs rels, souvent situs en dehors de l'arborescence standard. Syntaxe : Alias /alias/ /chemin/vers/arborescence/

Installer des serveurs virtuels

Il s'agit d'hberger et de grer plusieurs sites, dits "virtuels", par un seul et mme serveur. Ces sites seront appels par les clients sous diffrentes adresses IP ou diffrents noms. Remarque : cette situation est bien distinguer du cas de l'excution de plusieurs serveurs qui coutent sur des ports diffrents (comme le fait SambaEdu3) 3 solutions peuvent tre envisages : - sites virtuels bass sur l'IP. Dans ce cas, le serveur coute plusieurs adresses IP, chacune est associ un nom de site - sites virtuels attachs des ports diffrents sur une mme adresse IP - sites virtuels bass sur le nom. C'est la solution la plus simple que nous allons mettre en oeuvre : le serveur coute une seule adresse IP, laquelle sont associes plusieurs noms de sites. Objectif du TP Il s'agit de configurer 4 sites virtuels ddis aux applications kaneet mbaye et l'accs du site "priv" (prcdemment protg par mot de passe). On devrait y accder par les URL http://fall.esp.sn, http://mbaye.esp.sn , http://prive.esp.sn et http://www.esp.sn pour l'accs la racine du site (en interdisant l'indexation) Dclaration A la fin du fichier /etc/apache2/apache2.conf, insrer NameVirtualHost 10.194.2.xxx:80, avant le ligne d'inclusion des sites vrtuels. Commentez la 1re ligne du fichier /etc/apache2/sites-available/ Rsolution des noms A dfaut de DNS local, renseignez le fichier /etc/hosts sur les stations autorises accder aux sites #dclarer les nouveaux noms de machines dans le DNS local #ou dfaut dans les fichiers hosts 127.0.0.1 localhost 10.194.2.xxx prive.esp.sn 10.194.2.xxx mbaye.esp.sn 10.194.2.xxx fall.esp.sn 10.194.2.xxx www.esp.sn

Paramtrage Les paramtrages de chaque site virtuel est plac de prfrence dans un fichier de configuration spcifique (autant que de sites virtuels), lequel est obligatoirement enregistr dans /etc/apache2/sites-available/. Exemple de fichier de configuration mbaye.conf # service virtuel pointant vers mbaye

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

<VirtualHost 10.194.2.xxx:80> DocumentRoot /var/www/mbaye ServerName mbaye.esp.sn <Directory /var/www/mbaye Options -Indexes FollowSymLinks AllowOverride None order allow,deny allow from all </Directory> </VirtualHost>

Activation Pour que chacun des fichiers prcdents, dcrivant les sites virtuels, soit intgr dans apache2.conf il faut placer les liens vers le rpertoire /etc/apache2/sites-enabled/. Cette mise en service se fait facilement grce la commande a2ensite, puis on recharge la configuration : cd /etc/apache2/sites-available a2ensite prive.conf --> site prive.conf installed; run /etc/init.d/apache2 reload to reload /etc/init.d/apache2 reload

Tester compltement http://mbaye.esp.sn http://www.esp.sn http://www.esp.sn/mbaye .......

(mis disposition selon les termes de la licence Creative Commons Paternit-Pas d'Utilisation Commerciale-Partage des Conditions Initiales l'Identique 2.0 France, 2008, Abdoulaye SALL)

Vous aimerez peut-être aussi