8.5. Sécurisation des serveurs HTTP


8.5.1. Améliorations de la sécurité dans httpd.conf

Vous pouvez renforcer la sécurité du serveur HTTP Apache en configurant les options de sécurité dans le fichier /etc/httpd/conf/httpd.conf.

Vérifiez toujours que tous les scripts exécutés sur le système fonctionnent correctement avant de les mettre en production.

Assurez-vous que seul l'utilisateur root dispose des droits d'écriture sur tout répertoire contenant des scripts ou des Common Gateway Interfaces (CGI). Pour changer la propriété du répertoire en faveur de l'utilisateur root avec des droits d'écriture, entrez les commandes suivantes :

# chown root directory-name
# chmod 755 directory-name

Dans le fichier /etc/httpd/conf/httpd.conf, vous pouvez configurer les options suivantes :

FollowSymLinks
Cette directive est activée par défaut et suit les liens symboliques dans le répertoire.
Index
Cette directive est activée par défaut. Désactivez cette directive pour empêcher les visiteurs de parcourir les fichiers du serveur.
Dossier de l'utilisateur
Cette directive est désactivée par défaut car elle peut confirmer la présence d'un compte utilisateur sur le système. Pour activer la consultation des répertoires d'utilisateurs autres que /root/, utilisez les directives racine UserDir enabled et UserDir disabled. Pour ajouter des utilisateurs à la liste des comptes désactivés, ajoutez une liste d'utilisateurs délimitée par des espaces sur la ligne UserDir disabled.
Jetons de serveur

Cette directive contrôle le champ d'en-tête de la réponse du serveur qui est renvoyée aux clients. Vous pouvez utiliser les paramètres suivants pour personnaliser les informations :

ServerTokens Complet

fournit toutes les informations disponibles, telles que le numéro de version du serveur web, les détails du système d'exploitation du serveur, les modules Apache installés, par exemple :

Apache/2.4.37 (Red Hat Enterprise Linux) MyMod/1.2
ServerTokens Full-Release

fournit toutes les informations disponibles sur les versions, par exemple :

Apache/2.4.37 (Red Hat Enterprise Linux) (Release 41.module+el8.5.0+11772+c8e0c271)
ServerTokens Prod / ServerTokens ProductOnly

fournit le nom du serveur web, par exemple :

Apache
ServerTokens Major

fournit la version majeure du serveur web, par exemple :

Apache/2
ServerTokens Minor

fournit la version mineure du serveur web, par exemple :

Apache/2.4
ServerTokens Min / ServerTokens Minimal

fournit la version minimale du serveur web, par exemple :

Apache/2.4.37
ServerTokens OS

fournit la version du serveur web et le système d'exploitation, par exemple :

Apache/2.4.37 (Red Hat Enterprise Linux)

Utilisez l'option ServerTokens Prod pour réduire le risque que des pirates obtiennent des informations précieuses sur votre système.

Important

Ne supprimez pas la directive IncludesNoExec. Par défaut, le module Server Side Includes (SSI) ne peut pas exécuter de commandes. Modifier cela peut permettre à un attaquant d'entrer des commandes sur le système.

Suppression des modules httpd

Vous pouvez supprimer les modules httpd pour limiter les fonctionnalités du serveur HTTP. Pour ce faire, modifiez les fichiers de configuration dans le répertoire /etc/httpd/conf.modules.d/ ou /etc/httpd/conf.d/. Par exemple, pour supprimer le module proxy :

echo '# All proxy modules disabled' > /etc/httpd/conf.modules.d/00-proxy.conf

8.5.2. Sécuriser la configuration du serveur Nginx

Nginx est un serveur HTTP et proxy très performant. Vous pouvez renforcer votre configuration Nginx avec les options de configuration suivantes.

Procédure

  • Pour désactiver les chaînes de version, modifiez l'option de configuration server_tokens:

    server_tokens off;

    Cette option arrête l'affichage de détails supplémentaires tels que le numéro de version du serveur. Cette configuration n'affiche que le nom du serveur dans toutes les requêtes servies par Nginx, par exemple :

    $ curl -sI http://localhost | grep Server
    Server: nginx
  • Ajouter des en-têtes de sécurité supplémentaires qui atténuent certaines vulnérabilités connues des applications web dans des fichiers conf spécifiques de /etc/nginx/:

    • Par exemple, l'option d'en-tête X-Frame-Options interdit à toute page extérieure à votre domaine d'encadrer tout contenu servi par Nginx, ce qui atténue les attaques par détournement de clics :

      add_header X-Frame-Options "SAMEORIGIN";
    • Par exemple, l'en-tête x-content-type empêche le reniflage du type MIME dans certains navigateurs plus anciens :

      add_header X-Content-Type-Options nosniff;
    • Par exemple, l'en-tête X-XSS-Protection permet le filtrage des scripts intersites (XSS), qui empêche les navigateurs de rendre un contenu potentiellement malveillant inclus dans une réponse de Nginx :

      add_header X-XSS-Protection "1; mode=block";
  • Vous pouvez limiter les services exposés au public et limiter ce qu'ils font et acceptent des visiteurs, par exemple :

    limit_except GET {
        allow 192.168.1.0/32;
        deny  all;
    }

    L'extrait limitera l'accès à toutes les méthodes, à l'exception de GET et HEAD.

  • Vous pouvez désactiver les méthodes HTTP, par exemple :

    # Allow GET, PUT, POST; return "405 Method Not Allowed" for all others.
    if ( $request_method !~ ^(GET|PUT|POST)$ ) {
        return 405;
    }
  • Vous pouvez configurer SSL pour protéger les données servies par votre serveur web Nginx, en envisageant de les servir uniquement via HTTPS. En outre, vous pouvez générer un profil de configuration sécurisé pour activer SSL dans votre serveur Nginx à l'aide du générateur de configuration SSL de Mozilla. La configuration générée garantit que les protocoles vulnérables connus (par exemple, SSLv2 et SSLv3), les algorithmes de chiffrement et de hachage (par exemple, 3DES et MD5) sont désactivés. Vous pouvez également utiliser le test du serveur SSL pour vérifier que votre configuration répond aux exigences de sécurité modernes.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.