SlideShare une entreprise Scribd logo
1  sur  25
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.
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
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)
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
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
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
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
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 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
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>
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
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
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>
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
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
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
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
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
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
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
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
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] ...
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]
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
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.

Contenu connexe

Tendances

07 02 création et maintenance de zones dns
07 02 création et maintenance de zones dns07 02 création et maintenance de zones dns
07 02 création et maintenance de zones dnsNoël
 
Examen
Examen Examen
Examen TECOS
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Apache server configuration & sécurisation -
Apache server configuration & sécurisation  -Apache server configuration & sécurisation  -
Apache server configuration & sécurisation -achraf_ing
 
07 03 sécurisation d'un serveur dns
07 03 sécurisation d'un serveur dns07 03 sécurisation d'un serveur dns
07 03 sécurisation d'un serveur dnsNoël
 
Installation et-configuration-d-un a175
Installation et-configuration-d-un a175Installation et-configuration-d-un a175
Installation et-configuration-d-un a175Maryem Maryemtii
 
Installation et configuration d'apache tomcat
Installation et configuration d'apache tomcatInstallation et configuration d'apache tomcat
Installation et configuration d'apache tomcatManassé Achim kpaya
 
Reseau entreprise
Reseau entrepriseReseau entreprise
Reseau entrepriseSAIDRAISS2
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheAurelien Navarre
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Aurelien Navarre
 
LPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseauxLPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseauxNoël
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8Aurelien Navarre
 

Tendances (17)

07 02 création et maintenance de zones dns
07 02 création et maintenance de zones dns07 02 création et maintenance de zones dns
07 02 création et maintenance de zones dns
 
Examen
Examen Examen
Examen
 
Samba 4
Samba 4Samba 4
Samba 4
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Atelier 2
Atelier 2Atelier 2
Atelier 2
 
Apache server configuration & sécurisation -
Apache server configuration & sécurisation  -Apache server configuration & sécurisation  -
Apache server configuration & sécurisation -
 
07 03 sécurisation d'un serveur dns
07 03 sécurisation d'un serveur dns07 03 sécurisation d'un serveur dns
07 03 sécurisation d'un serveur dns
 
Installation et-configuration-d-un a175
Installation et-configuration-d-un a175Installation et-configuration-d-un a175
Installation et-configuration-d-un a175
 
Installation et configuration d'apache tomcat
Installation et configuration d'apache tomcatInstallation et configuration d'apache tomcat
Installation et configuration d'apache tomcat
 
Reseau entreprise
Reseau entrepriseReseau entreprise
Reseau entreprise
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
 
Atelier 5
Atelier 5Atelier 5
Atelier 5
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
 
Squid
SquidSquid
Squid
 
LPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseauxLPIC1 11 01 sécurité réseaux
LPIC1 11 01 sécurité réseaux
 
Squid squid guard
Squid squid guardSquid squid guard
Squid squid guard
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 

En vedette

06 05 résolution de nom
06 05 résolution de nom06 05 résolution de nom
06 05 résolution de nomNoël
 
06 03 route
06 03 route06 03 route
06 03 routeNoël
 
06 02 opérations de sauvegarde
06 02 opérations de sauvegarde06 02 opérations de sauvegarde
06 02 opérations de sauvegardeNoël
 
06 04 arp
06 04 arp06 04 arp
06 04 arpNoël
 
Les attaques reseaux par zellagui Amine
Les attaques reseaux par zellagui AmineLes attaques reseaux par zellagui Amine
Les attaques reseaux par zellagui AmineZellagui Amine
 
06 01 interfaces
06 01 interfaces06 01 interfaces
06 01 interfacesNoël
 
08 03 sécurisation d'un serveur web avec ssl
08 03 sécurisation d'un serveur web avec ssl08 03 sécurisation d'un serveur web avec ssl
08 03 sécurisation d'un serveur web avec sslNoël
 
SSL/TLS : Faille Heartbleed
SSL/TLS : Faille HeartbleedSSL/TLS : Faille Heartbleed
SSL/TLS : Faille HeartbleedThomas Moegli
 
LPIC1 10 01 logs
LPIC1 10 01 logsLPIC1 10 01 logs
LPIC1 10 01 logsNoël
 
Waf, le bon outil, la bonne administration
Waf, le bon outil, la bonne administration Waf, le bon outil, la bonne administration
Waf, le bon outil, la bonne administration Bee_Ware
 
10 02 authentification PAM
10 02 authentification PAM10 02 authentification PAM
10 02 authentification PAMNoël
 
Panorama de la cybercriminalité en 2016
Panorama de la cybercriminalité en 2016Panorama de la cybercriminalité en 2016
Panorama de la cybercriminalité en 2016Serrerom
 
06 02 ip
06 02 ip06 02 ip
06 02 ipNoël
 
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan MarcilASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan MarcilCyber Security Alliance
 
LPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeLPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeNoël
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesXavier Kress
 
Huawei Bts3900C (omb+rru) (ver.c) hardware description
Huawei Bts3900C (omb+rru) (ver.c) hardware descriptionHuawei Bts3900C (omb+rru) (ver.c) hardware description
Huawei Bts3900C (omb+rru) (ver.c) hardware descriptionYassmina AGHIL
 

En vedette (20)

06 05 résolution de nom
06 05 résolution de nom06 05 résolution de nom
06 05 résolution de nom
 
06 03 route
06 03 route06 03 route
06 03 route
 
06 02 opérations de sauvegarde
06 02 opérations de sauvegarde06 02 opérations de sauvegarde
06 02 opérations de sauvegarde
 
06 04 arp
06 04 arp06 04 arp
06 04 arp
 
Les attaques reseaux par zellagui Amine
Les attaques reseaux par zellagui AmineLes attaques reseaux par zellagui Amine
Les attaques reseaux par zellagui Amine
 
06 01 interfaces
06 01 interfaces06 01 interfaces
06 01 interfaces
 
08 03 sécurisation d'un serveur web avec ssl
08 03 sécurisation d'un serveur web avec ssl08 03 sécurisation d'un serveur web avec ssl
08 03 sécurisation d'un serveur web avec ssl
 
Ethical Hacking
Ethical HackingEthical Hacking
Ethical Hacking
 
SSL/TLS : Faille Heartbleed
SSL/TLS : Faille HeartbleedSSL/TLS : Faille Heartbleed
SSL/TLS : Faille Heartbleed
 
LPIC1 10 01 logs
LPIC1 10 01 logsLPIC1 10 01 logs
LPIC1 10 01 logs
 
Waf, le bon outil, la bonne administration
Waf, le bon outil, la bonne administration Waf, le bon outil, la bonne administration
Waf, le bon outil, la bonne administration
 
10 02 authentification PAM
10 02 authentification PAM10 02 authentification PAM
10 02 authentification PAM
 
Panorama de la cybercriminalité en 2016
Panorama de la cybercriminalité en 2016Panorama de la cybercriminalité en 2016
Panorama de la cybercriminalité en 2016
 
06 02 ip
06 02 ip06 02 ip
06 02 ip
 
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan MarcilASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
 
Protocole ARP/RARP
Protocole ARP/RARPProtocole ARP/RARP
Protocole ARP/RARP
 
LPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeLPIC1 11 02 sécurité système
LPIC1 11 02 sécurité système
 
Sécurité des réseaux
Sécurité des réseauxSécurité des réseaux
Sécurité des réseaux
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
 
Huawei Bts3900C (omb+rru) (ver.c) hardware description
Huawei Bts3900C (omb+rru) (ver.c) hardware descriptionHuawei Bts3900C (omb+rru) (ver.c) hardware description
Huawei Bts3900C (omb+rru) (ver.c) hardware description
 

Similaire à 08 01 mise en place d'un serveur web

hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.pptadiouf2
 
technologie web - part3
technologie web - part3technologie web - part3
technologie web - part3Benoît Simard
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm
 
Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Olivier Gutknecht
 
Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
Drupal 8, symfony
Drupal 8, symfonyDrupal 8, symfony
Drupal 8, symfonyjeUXdiCode
 
Installation d'openerp 6.1 rc1
Installation d'openerp 6.1 rc1Installation d'openerp 6.1 rc1
Installation d'openerp 6.1 rc1easyopenerp
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
 
Presentation
PresentationPresentation
Presentationbois
 
09 02 configuration du serveur nfs
09 02 configuration du serveur nfs09 02 configuration du serveur nfs
09 02 configuration du serveur nfsNoël
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Jean-Marc Fontaine
 
Apache for développeurs PHP
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHPjulien pauli
 
Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Steven VAN POECK
 
Installation de PHP
Installation de PHPInstallation de PHP
Installation de PHPMoncef Essid
 
10 01 configuration dhcp
10 01 configuration dhcp10 01 configuration dhcp
10 01 configuration dhcpNoël
 

Similaire à 08 01 mise en place d'un serveur web (20)

hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
technologie web - part3
technologie web - part3technologie web - part3
technologie web - part3
 
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateurAlphorm.com Formation Apache - Le Guide Complet de l'administrateur
Alphorm.com Formation Apache - Le Guide Complet de l'administrateur
 
Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09
 
Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQL
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
Drupal 8, symfony
Drupal 8, symfonyDrupal 8, symfony
Drupal 8, symfony
 
Installation d'openerp 6.1 rc1
Installation d'openerp 6.1 rc1Installation d'openerp 6.1 rc1
Installation d'openerp 6.1 rc1
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
Cours 8 squid.pdf
Cours 8 squid.pdfCours 8 squid.pdf
Cours 8 squid.pdf
 
Presentation
PresentationPresentation
Presentation
 
09 02 configuration du serveur nfs
09 02 configuration du serveur nfs09 02 configuration du serveur nfs
09 02 configuration du serveur nfs
 
Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012Gestion des dépendances dans un projet PHP - Forum PHP 2012
Gestion des dépendances dans un projet PHP - Forum PHP 2012
 
Apache for développeurs PHP
Apache for développeurs PHPApache for développeurs PHP
Apache for développeurs PHP
 
Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?Etes vous prêts pour le succes ?
Etes vous prêts pour le succes ?
 
Installation de PHP
Installation de PHPInstallation de PHP
Installation de PHP
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
10 01 configuration dhcp
10 01 configuration dhcp10 01 configuration dhcp
10 01 configuration dhcp
 

Plus de Noël

LPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et natingLPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et natingNoël
 
LPIC1 10 04 anacron
LPIC1 10 04 anacronLPIC1 10 04 anacron
LPIC1 10 04 anacronNoël
 
LPIC1 10 05 at
LPIC1 10 05 atLPIC1 10 05 at
LPIC1 10 05 atNoël
 
LPIC1 10 03 cron
LPIC1 10 03 cronLPIC1 10 03 cron
LPIC1 10 03 cronNoël
 
LPIC1 10 02 temps
LPIC1 10 02 tempsLPIC1 10 02 temps
LPIC1 10 02 tempsNoël
 
LPIC1 09 06 kill
LPIC1 09 06 killLPIC1 09 06 kill
LPIC1 09 06 killNoël
 
LPIC1 09 05 priorités
LPIC1 09 05 prioritésLPIC1 09 05 priorités
LPIC1 09 05 prioritésNoël
 
LPIC1 09 04 bg fg
LPIC1 09 04 bg fgLPIC1 09 04 bg fg
LPIC1 09 04 bg fgNoël
 
LPIC1 09 03 top
LPIC1 09 03 topLPIC1 09 03 top
LPIC1 09 03 topNoël
 
LPIC1 09 02 ps
LPIC1 09 02 psLPIC1 09 02 ps
LPIC1 09 02 psNoël
 
LPIC1 09 01 intro
LPIC1 09 01 introLPIC1 09 01 intro
LPIC1 09 01 introNoël
 
LPIC1 08 05 runlevels
LPIC1 08 05 runlevelsLPIC1 08 05 runlevels
LPIC1 08 05 runlevelsNoël
 
LPIC1 08 03 grub2
LPIC1 08 03 grub2LPIC1 08 03 grub2
LPIC1 08 03 grub2Noël
 
LPIC1 08 02 grub legacy
LPIC1 08 02 grub legacyLPIC1 08 02 grub legacy
LPIC1 08 02 grub legacyNoël
 
LPIC1 08 01 démarrage
LPIC1 08 01 démarrageLPIC1 08 01 démarrage
LPIC1 08 01 démarrageNoël
 
LPIC1 07 14 mount
LPIC1 07 14 mountLPIC1 07 14 mount
LPIC1 07 14 mountNoël
 
LPIC1 07 13 fsck
LPIC1 07 13 fsckLPIC1 07 13 fsck
LPIC1 07 13 fsckNoël
 
LPIC1 07 18 debugfs
LPIC1 07 18 debugfsLPIC1 07 18 debugfs
LPIC1 07 18 debugfsNoël
 
LPIC1 07 17 tune2fs
LPIC1 07 17 tune2fsLPIC1 07 17 tune2fs
LPIC1 07 17 tune2fsNoël
 
LPIC1 07 16 dumpe2fs
LPIC1 07 16 dumpe2fsLPIC1 07 16 dumpe2fs
LPIC1 07 16 dumpe2fsNoël
 

Plus de Noël (20)

LPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et natingLPIC2 12 01 pare-feu et nating
LPIC2 12 01 pare-feu et nating
 
LPIC1 10 04 anacron
LPIC1 10 04 anacronLPIC1 10 04 anacron
LPIC1 10 04 anacron
 
LPIC1 10 05 at
LPIC1 10 05 atLPIC1 10 05 at
LPIC1 10 05 at
 
LPIC1 10 03 cron
LPIC1 10 03 cronLPIC1 10 03 cron
LPIC1 10 03 cron
 
LPIC1 10 02 temps
LPIC1 10 02 tempsLPIC1 10 02 temps
LPIC1 10 02 temps
 
LPIC1 09 06 kill
LPIC1 09 06 killLPIC1 09 06 kill
LPIC1 09 06 kill
 
LPIC1 09 05 priorités
LPIC1 09 05 prioritésLPIC1 09 05 priorités
LPIC1 09 05 priorités
 
LPIC1 09 04 bg fg
LPIC1 09 04 bg fgLPIC1 09 04 bg fg
LPIC1 09 04 bg fg
 
LPIC1 09 03 top
LPIC1 09 03 topLPIC1 09 03 top
LPIC1 09 03 top
 
LPIC1 09 02 ps
LPIC1 09 02 psLPIC1 09 02 ps
LPIC1 09 02 ps
 
LPIC1 09 01 intro
LPIC1 09 01 introLPIC1 09 01 intro
LPIC1 09 01 intro
 
LPIC1 08 05 runlevels
LPIC1 08 05 runlevelsLPIC1 08 05 runlevels
LPIC1 08 05 runlevels
 
LPIC1 08 03 grub2
LPIC1 08 03 grub2LPIC1 08 03 grub2
LPIC1 08 03 grub2
 
LPIC1 08 02 grub legacy
LPIC1 08 02 grub legacyLPIC1 08 02 grub legacy
LPIC1 08 02 grub legacy
 
LPIC1 08 01 démarrage
LPIC1 08 01 démarrageLPIC1 08 01 démarrage
LPIC1 08 01 démarrage
 
LPIC1 07 14 mount
LPIC1 07 14 mountLPIC1 07 14 mount
LPIC1 07 14 mount
 
LPIC1 07 13 fsck
LPIC1 07 13 fsckLPIC1 07 13 fsck
LPIC1 07 13 fsck
 
LPIC1 07 18 debugfs
LPIC1 07 18 debugfsLPIC1 07 18 debugfs
LPIC1 07 18 debugfs
 
LPIC1 07 17 tune2fs
LPIC1 07 17 tune2fsLPIC1 07 17 tune2fs
LPIC1 07 17 tune2fs
 
LPIC1 07 16 dumpe2fs
LPIC1 07 16 dumpe2fsLPIC1 07 16 dumpe2fs
LPIC1 07 16 dumpe2fs
 

08 01 mise en place d'un serveur web

  • 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. 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. 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. 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. 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. 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. 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. Linux LPIC2 noelmace.com httpd.conf : exemple • un exemple sur internet
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.