Linux LPIC2 noelmace.com
Noël Macé
Formateur et Consultant indépendant expert Unix et FOSS
http://www.noelmace.com
Mise en...
Linux LPIC2 noelmace.com
Plan
• Introduction
 Apache
 MPM : prefork ou worker ?
 Virtual Hosts
• Configuration
 httpd....
Linux LPIC2 noelmace.com
Introduction
• Un des services primordiaux d'Internet
 certainement le plus connu du grand publi...
Linux LPIC2 noelmace.com
Apache
• Né en avril 1995
 ensemble de correctifs à NCSA HTTPd (du domaine publique)
• leader de...
Linux LPIC2 noelmace.com
MPM : prefork ou worker ?
• Multi-Processing Module
 Moteur de serveur : interprète les requêtes...
Linux LPIC2 noelmace.com
Virtual Hosts
• Héberger plusieurs sites sur un même serveur
• Deux types :
 IP based
• Nécessit...
Linux LPIC2 noelmace.com
Configuration
• Dans (suivant la distribution) :
 /etc/apache/config/
 ou /etc/apache2/
 ou /e...
Linux LPIC2 noelmace.com
httpd.conf : exemple
• un exemple sur internet
Linux LPIC2 noelmace.com
Options du serveur Apache
• Première section du fichier httpd.conf
 nombreuses options de type c...
Linux LPIC2 noelmace.com
Contrôle des répertoires
• Regrouper des directives pour qu'elles ne s'appliquent qu'au
répertoir...
Linux LPIC2 noelmace.com
Logging
• généralement dans /var/log/apache2 ou httpd
• Configuration (httpd.conf)
 Messages d'e...
Linux LPIC2 noelmace.com
Modularité
• Apache repose sur une architecture modulaire
 similaire à celle du kernel Linux
 p...
Linux LPIC2 noelmace.com
Chargement d'un module Apache
• Dans le fichier httpd.conf
• Remarque (pour ceux ayant travaillé ...
Linux LPIC2 noelmace.com
mod_perl
• Interpréteur Perl pour Apache
 permet, grâce à des scripts Perl, de :
• produire du c...
Linux LPIC2 noelmace.com
Installer mod_perl
• Sous Debian :
• Sous CentOS :
• Pour aller plus loin :
 installation : http...
Linux LPIC2 noelmace.com
PHP
• Langage de script, coté serveur, orienté Web et multi-plateforme
 une référence (cf LAMP)
...
Linux LPIC2 noelmace.com
Authentification et autorisation
• Deux méthodes :
 discretionary access control (DAC) - Contrôl...
Linux LPIC2 noelmace.com
Mise en place
• Soit dans httpd.conf (recommandé)
 directives <Directory> ou <Limit>
• Soit dans...
Linux LPIC2 noelmace.com
Gestion des comptes utilisateur
• Création d'un utilisateur
 -c pour créer automatiquement le fi...
Linux LPIC2 noelmace.com
Protection d'un dossier par DAC
• Dans une directive <Directory mondossier> ou un fichier .htacce...
Linux LPIC2 noelmace.com
Protection d'un dossier par MAC
• adresse IP
 sous-réseau
• ip partielle
• réseau / masque

Req...
Linux LPIC2 noelmace.com
apache2ctl
• Interface de contrôle du démon Apache
• Commandes
 start
 stop
 restart
 fullsta...
Linux LPIC2 noelmace.com
Bonus : les outils Debian
• activer / désactiver un site
 créé / supprimer un lien symbolique de...
Linux LPIC2 noelmace.com
Ce qu’on a couvert
• Installation et configuration de Apache2
 httpd.conf et .htaccess
 fichier...
Linux LPIC2 noelmace.com
Licence
Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à dispositio...
Prochain SlideShare
Chargement dans…5
×

08 01 mise en place d'un serveur web

813 vues

Publié le

préparation à la certification LPIC2 version 3.5 en français
Chapitre 8 : Topic 208 : Services Web
Configuration de Apache2 et Squid

Partie 1 : mise en place d'un serveur web
Introduction au serveur web Apache2
Présentation, installation, configuration

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
813
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
96
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

08 01 mise en place d'un serveur web

  1. 1. Linux LPIC2 noelmace.com Noël Macé Formateur et Consultant indépendant expert Unix et FOSS http://www.noelmace.com Mise en place d'un serveur web Services web Licence Creative Commons Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
  2. 2. Linux LPIC2 noelmace.com Plan • Introduction  Apache  MPM : prefork ou worker ?  Virtual Hosts • Configuration  httpd.conf : exemple  Options du serveur Apache  Contrôle des répertoires  Logging • Modularité  Chargement d'un module Apache  mod_perl • Installer mod_perl  PHP  Authentification et autorisation • Mise en place • Gestion des comptes utilisateur • Protection d'un dossier par DAC • Protection d'un dossier par MAC • apache2ctl • Bonus : les outils Debian
  3. 3. Linux LPIC2 noelmace.com Introduction • Un des services primordiaux d'Internet  certainement le plus connu du grand public  beaucoup confondant World Wide Web et Internet • HTTP  HyperText Transfer Protocol  Permettre aux utilisateurs d’accéder à des données (pages web) sur un serveur • via un client web (ex : Firefox)
  4. 4. Linux LPIC2 noelmace.com Apache • Né en avril 1995  ensemble de correctifs à NCSA HTTPd (du domaine publique) • leader de l'époque (plus de 55 % de parts de marché) • "mort" (0%) en juillet 1999 • Totalement réécrit en 2000 pour la version 2  plus aucune trace de NCSA HTTPd • Libre (Licence Apache)  v2.0 (compatible GPL v3) depuis Janvier 2004 • Multi-plateforme  GNU/Linux, Mac OS X, BSD, Solaris, Windows • LE serveur web de référence depuis avril 1996  54 % de parts de marché sur les sites actifs en avril 2013 selon netcraft.com • contre 13 % pour Nginx, plus léger et performant, qui connaît une progression certaine depuis 2007 • 12 % pour Microsoft-IIS et 8 % pour Google Servers  LAMP : Linux, Apache, MySQL, PHP
  5. 5. Linux LPIC2 noelmace.com MPM : prefork ou worker ? • Multi-Processing Module  Moteur de serveur : interprète les requêtes • "duplique" apache  afin de répondre à plusieurs requêtes simultanément • 2 principaux paquets : apache2-mpm-prefork ou worker • Worker  Multi-threading : un thread par connexion  Meilleures performances • pas ou peu de commutation de contexte  nécessite des modules compatibles • exclue mod_php • Prefork  Mode historique (apache 1.3)  multi-processing : un processus par connexion  Meilleure isolation / Faibles performances
  6. 6. Linux LPIC2 noelmace.com Virtual Hosts • Héberger plusieurs sites sur un même serveur • Deux types :  IP based • Nécessite plusieurs interfaces (ou routage)  Named based • Répond en fonction de l'url appelée • Configurés dans httpd.conf  ou /etc/apache2/sites-available/ sur Debian et dérivés  cf cours suivant
  7. 7. Linux LPIC2 noelmace.com Configuration • Dans (suivant la distribution) :  /etc/apache/config/  ou /etc/apache2/  ou /etc/httpd/config/ • httpd.conf (ou apache2.conf)  fichier de configuration principal • soit séparé en plusieurs parties (cf "Include") • soit d'un bloc • s'applique à tout le serveur  3 parties : • global environment - configuration générale du serveur • paramètres du serveur par défaut - requêtes non gérées par un virtual host • configuration des virtuals hosts • fichiers .htaccess  permettent une configuration spécifique pour chaque dossier  à utiliser avec prudence • uniquement si vous devez séparer la configuration de certains contextes du fichier principal - ie : interdire le droit d'accès à httpd.conf à certains administrateurs  « En général, vous ne devriez jamais utiliser les fichiers .htaccess à moins que vous n'ayez pas accès au fichier principal de configuration du serveur. Il y a, par exemple, une conception erronée qui prévaut selon laquelle les droits des utilisateurs doivent toujours être gérés dans le fichier .htaccess. Cela n'est simplement pas le cas. Vous pouvez placer les configurations des droits dans la configuration principale du serveur, et cela est, en fait, la manière favorisée de le faire. » - Documentation Apache
  8. 8. Linux LPIC2 noelmace.com httpd.conf : exemple • un exemple sur internet
  9. 9. Linux LPIC2 noelmace.com Options du serveur Apache • Première section du fichier httpd.conf  nombreuses options de type clé valeur • Nombre maximum de requêtes simultanées autorisées • Nombre de serveurs à lancer au démarrage • Nombre minimal et maximal de serveurs "en attente"  trop bas → perte de performance / trop haut → consommation excessive de ressources • nombre maximal de connections (de clients) simultanées  ie : nombre maximal de serveurs MaxKeepAliveRequests 100MaxKeepAliveRequests 100 StartServers 5StartServers 5 MaxKeepAliveRequests 100MaxKeepAliveRequests 100 MinSpareServers 5 MaxSpareServers 10 MinSpareServers 5 MaxSpareServers 10
  10. 10. Linux LPIC2 noelmace.com Contrôle des répertoires • Regrouper des directives pour qu'elles ne s'appliquent qu'au répertoire concerné • Exemple  voir : https://httpd.apache.org/docs/current/mod/core.html#directory <Directory chemin répertoire> ... </Directory><Directory chemin répertoire> ... </Directory> <Directory "/usr/local/httpd/htdocs"> Options Indexes FollowSymLinks </Directory> <Directory "/usr/local/httpd/htdocs"> Options Indexes FollowSymLinks </Directory>
  11. 11. Linux LPIC2 noelmace.com Logging • généralement dans /var/log/apache2 ou httpd • Configuration (httpd.conf)  Messages d'erreurs  Niveau de logging des messages d'erreurs • Dans l'odre : debug, info, notice, warn, error, crit, alert et emerg • Accès au serveur • Pour aller plus loin : Documentation Apache des Logs ErrorLog ${APACHE_LOG_DIR}/error.logErrorLog ${APACHE_LOG_DIR}/error.log Loglevel warnLoglevel warn LogFormat "%h %l %u %t "%r" %>s %b" common CustomLog ${APACHE_LOG_DIR}/access.log LogFormat "%h %l %u %t "%r" %>s %b" common CustomLog ${APACHE_LOG_DIR}/access.log
  12. 12. Linux LPIC2 noelmace.com Modularité • Apache repose sur une architecture modulaire  similaire à celle du kernel Linux  permet à l'administrateur de choisir les fonctionnalités à inclure • DSOs (Dynamic Shared Objects)  Objets Dynamiques Partagés  séparés du fichier binaire principal httpd  soit compilés en même temps que le serveur • peuvent être intégrés statiquement dans le binaire httpd  soit ajoutés ultérieurement • grâce à apxs (Apache Extension Tool) • $ cd /chemin/vers/module_tiers $ apxs -cia mod_foo.c $ cd /chemin/vers/module_tiers $ apxs -cia mod_foo.c $ ./configure --prefix=/chemin/vers/installation --enable-foo $ make install $ ./configure --prefix=/chemin/vers/installation --enable-foo $ make install
  13. 13. Linux LPIC2 noelmace.com Chargement d'un module Apache • Dans le fichier httpd.conf • Remarque (pour ceux ayant travaillé sous Apache1) :  la directive AddModule n'est plus nécessaire • Exemple • • Comportement conditionnel pour un module LoadModule module filenameLoadModule module filename LoadModule alias_module /usr/lib/apache2/modules/mod_alias.soLoadModule alias_module /usr/lib/apache2/modules/mod_alias.so <IfModule [!]fichier module|identificateur module> … </IfModule> <IfModule [!]fichier module|identificateur module> … </IfModule>
  14. 14. Linux LPIC2 noelmace.com mod_perl • Interpréteur Perl pour Apache  permet, grâce à des scripts Perl, de : • produire du contenu dynamique • gérer Apache • et bien d'autres choses encore  sans faire appel à un interpréteur externe • gain de performance significatif • accès complet à l'API Apache • "mod_perl is more than CGI scripting on steroids. It is a whole new way to create dynamic content by utilizing the full power of the Apache web server to create stateful sessions, customized user authentication systems, smart proxies and much more. Yet, magically, your old CGI scripts will continue to work and work very fast indeed. With mod_perl you give up nothing and gain so much!" - Lincoln Stein, un des principaux contributeurs de mod_perl
  15. 15. Linux LPIC2 noelmace.com Installer mod_perl • Sous Debian : • Sous CentOS : • Pour aller plus loin :  installation : https://perl.apache.org/docs/2.0/user/install/install.html  configuration : https://perl.apache.org/docs/2.0/user/config/config.html # apt-get install libapache2-mod-perl2# apt-get install libapache2-mod-perl2 # yum install mod_perl# yum install mod_perl
  16. 16. Linux LPIC2 noelmace.com PHP • Langage de script, coté serveur, orienté Web et multi-plateforme  une référence (cf LAMP) • Pour tester l'installation, créer une PHP info page • Pour aller plus loin : documentation complète de l'installation # apt-get install libapache2-mod-php5# apt-get install libapache2-mod-php5 # yum install php# yum install php # echo -e "<?phpntphpinfo();n?>" > /var/www/html/info.php# echo -e "<?phpntphpinfo();n?>" > /var/www/html/info.php
  17. 17. Linux LPIC2 noelmace.com Authentification et autorisation • Deux méthodes :  discretionary access control (DAC) - Contrôle d'accès discrétionnaire • où "un sujet avec une certaine autorisation d'accès est capable de transmettre cette permission (peut-être indirectement) à n'importe quel autre sujet" - Trusted Computer System Evaluation Criteria • ici : login + mot de passe  mandatory access controls (MAC) - Contrôle d'accès obligatoire • décisions de protections imposées (non prises par les objets concernés) • ici : Adresse IP, nom d'hôte, etc … • Géré par des modules  mod_auth_basic : le plus courant - stock les informations dans des fichiers texte • mod_auth_dbd : stockage dans une base SQL • mod_auth_dbm : stockage dans des fichiers sous un format DBM • mod_auth_digest : authentification basée sur les condensés MD5  mod_auth_anon : comportement similaire à un FTP anonymisé  mod_authz_host : restriction de l'accès en fonction du nom d'hôte ou de l'ip (depuis 2.3) • pour les versions précédentes, voir mod_access • Pour aller plus loin : https://httpd.apache.org/docs/current/howto/auth.html
  18. 18. Linux LPIC2 noelmace.com Mise en place • Soit dans httpd.conf (recommandé)  directives <Directory> ou <Limit> • Soit dans des fichiers .htaccess  dans le répertoire à contrôler  non recommandé • Pour autoriser la surcharge de ces directives  peu concerner les .htaccess, les sous-répertoires avec <Directory>, et autres AllowOverride AuthConfigAllowOverride AuthConfig
  19. 19. Linux LPIC2 noelmace.com Gestion des comptes utilisateur • Création d'un utilisateur  -c pour créer automatiquement le fichier si n'existe pas le fichier ne DOIT pas être accessible aux autres utilisateurs • et encore moins au web ! • Supprimer un utilisateur • Créer un ou plusieurs groupes d'utilisateurs  Créer un fichier de groupe selon la syntaxe suivante # htpasswd [-c] /usr/local/apache/passwd/passwords monutilisateur# htpasswd [-c] /usr/local/apache/passwd/passwords monutilisateur # htpasswd -D /usr/local/apache/passwd/passwords monutilisateur# htpasswd -D /usr/local/apache/passwd/passwords monutilisateur Nom-de-groupe: user1 user2 user3Nom-de-groupe: user1 user2 user3
  20. 20. Linux LPIC2 noelmace.com Protection d'un dossier par DAC • Dans une directive <Directory mondossier> ou un fichier .htaccess dans le dossier • Autoriser l'accès à tout les utilisateurs enregistrés AuthType Basic # message à afficher AuthName "Restricted Files" AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords AuthGroupFile /usr/local/apache/passwd/groups Require user monutilisateur Require group mongroupe AuthType Basic # message à afficher AuthName "Restricted Files" AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords AuthGroupFile /usr/local/apache/passwd/groups Require user monutilisateur Require group mongroupe Require valid-userRequire valid-user
  21. 21. Linux LPIC2 noelmace.com Protection d'un dossier par MAC • adresse IP  sous-réseau • ip partielle • réseau / masque  Require ip 10.1.2.3 Require ip 192.168.1.104 192.168.1.205 Require ip 10.1.2.3 Require ip 192.168.1.104 192.168.1.205 Require ip 10.1 Require ip 10 172.20 192.168.2 Require ip 10.1 Require ip 10 172.20 192.168.2 Require localRequire local Require ip 10.1.0.0/255.255.0.0 Require ip 10.1.0.0/16 Require ip 10.1.0.0/255.255.0.0 Require ip 10.1.0.0/16 Require host example.org Require host .net example.edu Require host example.org Require host .net example.edu • Hôte  Local • Grâce au module mod_authz_host • Dans une directive <Directory mondossier> ou un fichier .htaccess dans le dossier
  22. 22. Linux LPIC2 noelmace.com apache2ctl • Interface de contrôle du démon Apache • Commandes  start  stop  restart  fullstatus : statut complet à partir de mod_status • nécessite un navigateur web texte (comme Lynx) • url d'accès modifiable (variable STATUSURL)  status : idem, sans la liste des requêtes actuellement traitées  graceful : redémarrage par l'envoi d'un SIGUSR1 • ne clos pas les connections actuellement ouvertes  configtest : teste de syntaxe des fichiers de configuration  help # apache2ctl [commande] ...# apache2ctl [commande] ...
  23. 23. Linux LPIC2 noelmace.com Bonus : les outils Debian • activer / désactiver un site  créé / supprimer un lien symbolique de sites-availables/site dans sites-enables • activer / désactiver un module  créé / supprimer un lien symbolique de sites-availables/site dans sites-enables $ a2dismod [module]$ a2dismod [module] $ a2enmod [module]$ a2enmod [module] $ a2ensite [site]$ a2ensite [site] $ a2dissite [site]$ a2dissite [site]
  24. 24. Linux LPIC2 noelmace.com Ce qu’on a couvert • Installation et configuration de Apache2  httpd.conf et .htaccess  fichiers journaux  nombre maximum de requêtes, nombres minimums et maximums de serveurs et de clients • Gestion des modules  mod_perl  mod_php  mod_auth • htpasswd • Apache2ctl Weight : 3 Description : Candidates should be able to install and configure a web server. This objective includes monitoring the server's load and performance, restricting client user access, configuring support for scripting languages as modules and setting up client user authentication. Also included is configuring server options to restrict usage of resources. 208.1 Implementing a web server
  25. 25. Linux LPIC2 noelmace.com Licence Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France. Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou écrivez à : Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. Vous êtes libre de :  partager — reproduire, distribuer et communiquer cette œuvre  remixer — adapter l’œuvre Selon les conditions suivantes :  Attribution — Vous devez clairement indiquer que ce document, ou tout document dérivé de celui, est (issu de) l’œuvre originale de Noël Macé (noelmace.com) (sans suggérer qu'il vous approuve, vous ou votre utilisation de l’œuvre, à moins d'en demander expressément la permission).  Pas d’Utilisation Commerciale — Vous n’avez pas le droit d’utiliser cette œuvre à des fins commerciales (ie. l'intention première ou l'objectif d'obtenir un avantage commercial ou une compensation financière privée). Pour obtenir ce droit, une autorisation explicite de l'auteur est requise.  Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de distribuer votre création que sous une licence identique ou similaire à celle-ci. Pour toute demande de collaboration, d'utilisation commerciale ou de publication de ce support ou d'un dérivé de celui-ci sous une licence incompatible, contacter l'auteur via les contacts indiqués sur le site http://www.noelmace.com. Vous êtes par ailleurs vivement encouragé (sans obligation légale) à communiquer avec celui-ci si vous réalisez une œuvre dérivée ou toute amélioration de ce support.

×