Aministration de Apache

S'inscrire maintenant
Formation basée sur la documentation officielle : http://httpd.apache.org/docs/2.2/
  1. Apache : Introduction
    1. Cycle Requête/Réponse
    2. Cycle de vie du serveur Apache
    3. Historique
    4. Le protocole HTTP
    5. Étapes de traitement d'une requête
    6. Composition d'Apache
    7. Exercice en classe : installer le paquet Apache
  2. Contrôle d'Apache
    1. Démarrage d'Apache 
      1. Apache2ctl, script de lancement fourni par Apache
      2. /etc/init.d/apache2, script de lancement fourni par Linux
    2. Arrêt d'Apache
    3. ReDémarrage d'Apache: redémarrage complet versus rechargement de la configuration à chaud
    4. Effet d'un kill
    5. Exercice en classe : redémarrer Apache en ligne de commande
  3. Fichiers de configuration
    1. Fichier httpd.conf (Apache 1) ou apache2.conf et fichiers secondaires (Apache 2)
    2. Découpage des fichiers de configuration en plusieurs fichiers pour Apache 2
      1. Effet de la directive Include
      2. Architecture du répertoire de configuration /etc/apache2/conf.d/, liste des fichiers et rôles
    3. Contrôle raffiné des répertoires et fichiers : Directory, Files, Location
      1. Options de AllowOverride
    4. Le fichier access.conf pour le contrôle des accès
      1. Définir les permissions générales restrictives
      2. Relacher les permissions pour un sous-groupe spécifique
    5. Les directives, utiliser la documentation en ligne
      1. DocumentRoot, la racine du site
      2. Listen, pour choisir le port sur lequel Apache écoute
      3. Include, pour combiner les divers fichiers de configuration
      4. Exercices en classe : Modifier le port d'écoute, modifier le DocumentRoot
  4. Hôtes virtuels (plusieurs domaine hébergés sur un serveur)
    1. La liste des domaines hébergés dans /etc/apache2/sites-enabled/, inclure automatiquement cette liste dans le fichier principal
    2. Structure minimale d'un fichier d'hôte virtuel
      1. Notion de Racine du site DocumentRoot
      2. Notion de Nom de serveur ServerName
      3. Établir un lien entre un nom de serveur et une localisation physique racine
      4. Directives supplémentaires souhaitables
    3. La commande a2ensite et le rechargement de la configuration à chaud
    4. Exercice en classe : configurer des DNS avec plusieurs domaines résolvant sur le même serveur et configurer Apache pour que des sites web différents soient présenté selon l'URL accédée
  5. Redirections de requêtes
    1. Négociation de contenu (basé sur la langue)
      1. Utiliser un fichier type-map
    2. Correspondances d'url avec système de fichiers
    3. Le web dans les répertoires des usagers (/home)
    4. Redirection d'URL - Si on veut informer l'usager
      1. Exercice en classe : configurer le web dans le répertoire des usagers linux, chaque usager du système créé sa page web qui est accessible maintenant avec http://ip-de-la-machine/~nom_usager/
  6. Réécriture d'url à la volée avec mod_rewrite
    1. Besoins de réécriture des URL, influence sur l'indexation par les moteurs de recherche
    2. Configuration initiale, installation et chargement du module, activation de l'engin avec RewriteEngine on
    3. Notions d'expressions régulières (utilisées dans la formulation des règles)
    4. Les directives : RewriteCond, RewriteRule
    5. Applications pratiques
      1. Balancement de surcharge (Load balancing)
      2. Réécriture d'URL avec paramètres en noms de fichiers HTML significatifs
      3. URL canoniques
      4. Hôtes canoniques
      5. DocumentRoot déplacé
      6. Bloquer les robots indésirables
      7. Réécriture dépendante du temps
      8. Bloquer l'utilisation des images du serveur par les autres sites web
      9. Contenu dépendant du Navigateur
    6. Exercices : Tester quelques applications pratiques de mod_rewrite : la réécriture des paramètres et le balancement de surcharge
  7. Configurations des CGI
    1. La directive ScriptAlias
    2. Variétés de configurations possibles : analyse critique, identification des meilleures configurations
    3. Exercice : activer les CGI dans un répertoire et tester avec un CGI. Attention, les interpréteurs à utiliser (par exemple perl ou python) doivent être aussi installés.
  8. SSI - Server Side Include
    1. Syntaxe des instructions SSI
    2. Date d'aujourd'hui
    3. Afficher la date de modification d'un fichier
    4. Inclure le résultat d'un programme CGI
    5. Afficher la date de dernière modification
    6. Inclure une en-tête, un pied de page ou un menu standard
    7. Exercices : Activer les SSI Réaliser chaque instruction SSI une fois
  9. Authentification, Authorisation et Contrôle des accès
    1. Création du fichier d'usagers et mots de passe avec l'utilitaire htpasswd
    2. Configuration de l'authentification pour un répertoire avec les directives Auth
    3. Indiquer dans la configuration l'emplacement de la liste des usagers
  10. .htaccess
    1. Quand utiliser un fichier .htaccess
      1. Configuration locale des usagers et mots de passe (Permission accordée aux développeurs web)
      2. Activation locale des SSI
      3. Ajout de nouveaux types de fichiers
    2. Désavantage de l'utilisation des fichiers .htaccess
    3. Contenu du fichier .htaccess dans le /www/htdocs/example
    4. Section du fichier httpd.conf ou apache2.conf générique, équivalence entre .htdocs et déclaration du fichier générique
    5. Options de AllowOverride dans le fichier principal
    6. Application des directives - les poupées russes
    7. Fusion de l'utilisation des .htaccess avec le fichier de configuration principal
    8. Exercice en classe : Activation et désactivation de l'utilisation des .htaccess dans un répertoire, permettre la configuration de l'authentification par ce .htaccess pour ce répertoire, configurer un usager pour un répertoire.
  11. Authentification
    1. DSO - Dynamic Shared Objects avec le module mod_so
    2. Techniques pour construire le DSO mod_toto.so à partir de mod_toto.c
    3. APXS (APache eXtenSion)
    4. SSL - Secure Socket Layer
    5. Utiliser la version 2 de SSL
    6. Permettre seulement les plus forts ciphers:
    7. Configuration générique, déclinée par répertoire pour parfois plus de contrôle
  12. Configuration de php avec Apache - php.ini ou php.conf
    1. Sécurité de la programmation, classification des variables reçues
    2. Variable register_globals dans php.ini, plus de détails...
    3. Affichage d'information sensible
    4. Configuration des extensions php dans Apache, dans httpd.conf ou apache2.conf
  13. Limiter les risques
    1. Configuration et analyse des Logs
      1. Activer et diriger les logs Apaches vers divers fichiers
      2. Contrôler le formatage de nos logs Apache
      3. Analyse critique des logs
    2. DOS - Denial of Service
      1. Masquer l'identité du serveur
      2. Options de configuration pertinentes, directives du fichier de configuration pour contrôler les nombre de connections, la charge, etc.
    3. Gestion des droits d'accès - Analyse de scénarios catastrophes
      1. Au niveau d'Apache
      2. Au niveau du système d'exploitation
S'inscrire maintenant