Le système d'exploitation GNU-Linux/Le serveur Web Apache

Un livre de Wikibooks.
Aller à : Navigation, rechercher
Le système d'exploitation GNU-Linux
Tux.svg
Plan
  1. Qu'est-ce qu'un système d'exploitation ?
  2. Unix et Linux
  3. Partitionnement du disque
  4. Installation
    1. Installer Debian via le réseau
  5. Utilisateur Unix
    1. Le login
    2. Commandes de base
    3. L'aide en ligne man
    4. L'éditeur de texte vi
    5. Les shells
    6. La complétion
    7. Les jokers
    8. Les répertoires importants
    9. Redirection des entrées/sorties
    10. Invoquer un programme en tâche de fond
    11. Propriétaires et droits d'accès
    12. Processus
  6. Administration du système
    1. Configuration du réseau
    2. Les utilisateurs et groupes
    3. Le processus d'initialisation
    4. Les systèmes de fichiers
    5. Le système virtuel /proc
    6. Les périphériques /dev
    7. L'ordonnanceur de travaux cron
    8. Le backup : tar et gzip
    9. ghost avec partimage
    10. sauvegarde de fichiers avec rsync
    11. Les fichiers journaux syslog
    12. Installation de nouveaux logiciels
    13. Le noyau Linux et les modules
    14. Autres commandes utiles
    15. Installation RAID1 logiciel + LVM + XFS
    16. Scripts de surveillance
    17. Réseaux sans fil
  7. Administration des services réseaux
    1. Le serveur de noms Bind
    2. Le serveur de configuration réseau DHCP
    3. Le serveur de shell distant SSH
    4. Le partage de fichiers Samba
    5. Le partage de fichiers NFS
    6. Le serveur d'impression CUPS
    7. Le serveur de mails Postfix
    8. Le serveur de fichiers FTP
    9. La base de données Mysql
    10. Le serveur Web Apache
    11. Les annuaires LDAP
    12. L'outil d'administration Webmin
    13. Le routage avec iptables et route
    14. La supervision
  8. Sécurisation d'un serveur Linux
    1. Installation d'un service en mode chroot
    2. Protection avec iptables
  9. Médiagraphie
  10. Auteurs
Modifier ce modèle

Sections

[modifier] Installation de Apache2

Pour installer Apache2 sous Debian, on tape la commande suivante :

 # apt-get install apache2

Il faut aussi s'assurer que Apache version 1.3 est désintallé :

 # apt-get remove apache

Si Apache était déjà installé vérifier le fichier pour indiquer le démarrage automatique d'Apache 2 /etc/default/apache2 :

 # vi /etc/default/apache2
 ...
 NO_START=0

[modifier] Configuration de Apache2

Le fichier de configuration principal de Apache2 est /etc/apache2/apache2.conf. Dans le cas de Apache version 1.3, ce fichier s'appelle /etc/apache/httpd.conf.

Par défaut, Apache utilise deux fichiers de logs :

  • /var/log/apache2/access.log : contient les logs de connexion au serveur Web
  • /var/log/apache2/error.log : contient les erreurs survenues


Dans les fichiers de configuration /etc/apache2/apache2.conf ou /etc/apache2/conf.d/security, on peut être amené à modifier :

 # Pour que Apache ne donne pas son numéro de version et les modules chargés (via une page d'erreur)
 ServerSignature    off
 
 # Pour que Apache ne donne pas son numéro de version et les modules chargés (via le protocole HTTP)
 ServerTokens       Prod
 
 # Permet d'enregistrer les noms canoniques au lieu des adresses IP
 # dans le fichier access.log
 HostnameLookups On

Le fichier /etc/apache2/ports.conf contient la liste des ports sur lequel Apache écoute. On peut changer le port le par défaut (80), ou lui indiquer d'écouter sur d'autres ports (ex: 443 pour https) en rajoutant des lignes Listen <port>.

 # cat /etc/apache2/ports.conf
 Listen 80

[modifier] Héberger plusieurs sites Internet

Apache permet de gérer plusieurs sites internet sur le même serveur, pour cela on va utiliser des sections VirtualHost. Pour chaque site Internet, on crée un nouveau fichier dans /etc/apache2/sites-enabled et on lui indique la section VirtualHost (voir ci-dessous). Par convention, on appelle ce fichier avec le nom du site Internet :

 # cd /etc/apache2/sites-enabled
 # vi www.mondomaine.fr
 
 # Ne mettre cette ligne que dans UN seul fichier
 NameVirtualHost 192.168.30.220
 
 <VirtualHost 192.168.30.220>
       ServerName www.mondomaine.fr
       ServerAlias mondomaine.fr
       ServerAdmin webmaster@mondomaine.fr
       DocumentRoot /var/www/www.mondomaine.fr
       CustomLog /var/log/apache2/www.mondomaine.fr_access.log combined
       ErrorLog /var/log/apache2/www.mondomaine.fr_error.log
 </VirtualHost>


Les différents sites vont être stockés dans le répertoire /var/www.On va créer un sous-répertoire par site :

 # cd /var/www
 # mkdir www.mondomaine.fr

Afin de tester, on crée une page HTML minimale :

 # echo "<html><body>www.mondomaine.fr</body></html>" > /var/www/www.mondomaine.fr/index.html

Après toutes modifications des fichiers de configuration, on relance Apache2 avec la commande suivante :

 # /etc/init.d/apache2 restart

On peut tester avec son navigateur en se connectant à l'URL suivante :

 http://www.mondomaine.fr

Dans cet exemple, il faut bien entendu que www.mondomaine.fr pingue vers notre serveur. On peut simuler ceci en rajoutant une entrée dans le fichier /etc/hosts ou en modifiant le DNS.


[modifier] Installer des modules supplémentaires

Apache 2 permet l'installation de nombreux modules pour offrir plus de services ou pour renforcer la sécurité.

Les modules sont dans le répertoire /etc/apache2/mods-available . C'est ici qu'il faut copier les modules additionnels que vous pourrez télécharger pour Apache.

Pour activer un module on peut créer manuellement un lien symbolique dans le répertoire mods-enable

Par exemple pour activer le mod URL Rewriting

 # ln -s /etc/apache2/mods-available/rewrite.load   /etc/apache2/mods-enabled/rewrite.load

Une alternative consite à utiliser la commande a2enable / a2disable

 # a2enable mod_rewrite
 // Active le mod_rewrite dans apache2
 # a2disable mod_rewrite
 // Désactive le mod_rewrite dans apache2

NB : sur les dernières versions de apache2, ces deux commandes s'appellent respectivement a2enmod et a2dismod.

[modifier] Protéger un répertoire avec un login / mot de passe

Pour protéger un répertoire avec un login et un mot de passe, on crée dans le répertoire à protéger un fichier .htaccess qui contient le code suivant :

 # cd /var/www/www.mondomaine.fr
 # vi .htaccess
 
 # Type d'authentification
 AuthType Basic
 
 # Nom affiché dans la boite d'authentification
 AuthName "Site personnel"
 
 # Emplacement du fichier contenant les utilisateurs
 AuthUserFile /etc/apache2/utilisateurs
 
 # Emplacement du fichier contenant les groupes
 AuthGroupFile /etc/apache2/groupes
 
 # On autorise seulement les membres du groupe admin
 Require Group admin

On crée ensuite le fichier /etc/apache2/utilisateurs à l'aide de la commande htpasswd :

 # cd /etc/apache2
 # htpasswd -c utilisateurs alex
 ...
 # htpasswd utilisateurs pierre

La première fois, on utilise l'option -c de la commande htpasswd pour créer le fichier.

On crée ensuite le fichier /etc/apache2/groupes :

 # echo "admin: alex pierre" > /etc/apache2/groupes

Il faut également éditer le fichier /etc/apache2/sites-available/default afin d'activer la prise en charge du fichier htaccess. Ajouter, si cela n'existe pas encore :

 <Directory /var/www/mondossierprotege/>
 AllowOverride All
 </Directory>

On relance le serveur web :

 # /etc/init.d/apache2 restart

[modifier] Outils pour générer des statistiques de connexion

Chaque fois qu'un visiteur vient sur le site Internet, Apache enregistre sa connexion dans les fichiers /var/log/apache2/*_access.log.

Voici deux logiciels libres qui analysent ces fichiers et qui permettent de générer des statistiques sur les connexions :

Exemple de statistiques Awstats

Exemple de statistiques Webalizer

Outils personnels
Espaces de noms

Variantes
Actions
Bibliothèque
Navigation
Aide
Imprimer / exporter
Boîte à outils