Configuration du logiciel Apache

Lancement du daemon

Le premier point sensible concernant la sécurité des serveurs httpd est la façon dont ceux-ci sont démarrés et en particulier l’identité sous laquelle est démarré le serveur. On ne traite ici que le cas où la directive ServerType a pour valeur standalone, c’est à dire où on ne démarre pas le serveur par inetd, ce qui n’est pratiquement jamais le cas, pour des raisons de performance.
Si le serveur est démarré par un utilisateur autre que root, tous les processus appartiendront à cet utilisateur. S’il est démarré par root, le processus père appartiendra à root, mais tous les processus fils, qui répondront aux requêtes, appartiendront à l’utilisateur définit par les directives User et Group dans le fichier httpd.conf.
En cas de trou de sécurité, et donc de possibilité d’intrusion sur la machine, à travers le serveur http, ce problème pourra être exploité avec les droits de l’utilisateur auquel appartient les processus fils. Il est donc fort déconseillé de donner la valeur root à la directive User, mais de choisir plutôt un utilisateur de la machine sans droits particuliers, par exemple nobody ou un utilisateur créé spécialement pour cela.

Répertoire racine du serveur

Il est définit par la directive DocumentRoot dans le fichier srm.conf. Il représente en gros la partie de l’espace disque de la machine qui sera accessible via le serveur http, c’est à dire l’endroit ou seront déposé les fichiers HTML que l’on veut diffuser.
Il est évident que la valeur de cette directive ne devra pas permettre de rendre accessibles des fichiers que l’on ne souhaite pas rendre accessibles, en particulier les fichiers du système.
Exemples :
Valeur raisonnable :
DocumentRoot /usr/local/etc/httpd/htdocs
Valeur non raisonnable :
DocumentRoot /

Accès aux documents

Mettre en place un service WWW ne signifie pas pour autant rendre accessible à tout le monde les documents du serveur. Certains services WWW ne sont d’ailleurs accessibles qu’à une certaine population. Cela signifie qu’il faut définir une politique d ‘accès au service, décider qui a accès à quoi, et configurer le logiciel de manière à appliquer cette politique. Le logiciel Apache comme la plupart des autres logiciels serveurs http permet 2 type de protection :
• une protection par domaine, qui permet de définir des droits d’accès en fonction des noms de machines ou de domaines
• une protection par utilisateur, qui permet de protéger tout ou partie du serveur par nom d’utilisateur et mot de passe (4).
La première méthode est simple à mettre en œuvre et ne nécessite pratiquement pas d’administration particulière. Par contre, la seconde implique la gestion de comptes utilisateur et donc plus de travail.
Les deux méthodes se définissent dans le fichier access.conf. Celui-ci contient au moins une directive <Directory> qui va définir la politique par défaut pour tous les documents du serveur. On peut ensuite ajouter des directives <Directory> pour modifier les caractéristiques de certaines sous-arborescences.
La directive <Directory> est un bloc pouvant contenir un certain nombre de sous-directives : • Options : est suivi par une liste d’options possibles :
• Indexes : indique que l’on peut avoir accès à la liste des fichiers des répertoires.
• Includes : indique que l’on peut avoir des fichiers contenant des directives « Server Side Include » (SSI) dans cette arborescence.
• includesNOEXEC : même chose que Includes mais on interdit la commande #exec ainsi que l’inclusion de script CGI
• FollowSymLinks : on autorise l’accès aux liens symboliques
• SymLinksIfOwnerMatch : on autorise l’accès aux liens symboliques si le propriétaire est le même aux 2 extrémités du lien.
• ExecCGI : on autorise des programmes CGI dans cette arborescence.

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *