Si vous avez récemment effectué une analyse de sécurité de conformité, les résultats pourraient ressembler à l'exemple suivant :
Apache HTTP Server Zero-Length Directory Name in LD_LIBRARY_PATH Vulnerability, CVE-2012-0883
Apache HTTP Server mod_rewrite Terminal Escape Sequence Vulnerability, CVE-2013-1862
Apache HTTP Server XSS Vulnerabilities via Hostnames, CVE-2012-3499 CVE-2012-4558
Selon la base de code, le serveur HTTP Apache® a peut-être déjà atténué ces problèmes de sécurité. L'analyse vérifie la version d'Apache du serveur pour déterminer si la version installée résout le problème de sécurité. Cependant, certaines analyses de sécurité de conformité utilisent uniquement la version d'Apache pour déterminer si le serveur est vulnérable aux vulnérabilités et expositions courantes (CVE) plutôt que de détecter directement les vulnérabilités.
De tels scans génèrent presque toujours un faux positif. Si vous activez les mises à jour automatiques, la version peut rester la même, même si une autre version corrige la vulnérabilité. Ainsi, l'analyse peut marquer la vulnérabilité comme positive. Ce résultat peut également se produire si les analyses de votre fournisseur montrent que votre serveur n'est plus vulnérable, même si les analyses précédentes ont identifié des vulnérabilités.
Utilisez les étapes suivantes si votre audit de sécurité révèle que vos analyses de sécurité de conformité n'utilisent que la version d'Apache pour identifier les vulnérabilités sur votre serveur Apache2. Modifiez le fichier de configuration du démon HTTPd (Hypertext Transfer Protocol).
-
Ouvrez /etc/apache2/conf.d/httpd.conf dans un éditeur.
-
Ajoutez les lignes suivantes et supprimez les informations de version :
ServerSignature Off ServerTokens Prod
Remarque :Votre serveur ne doit pas fournir de signature de version et votre société de test d'intrusion doit vous recommander de désactiver les versions.
Mise à jour d'Apache 2.2 vers Apache 2.4
Utilisez les étapes suivantes pour mettre à jour Apache 2.2 vers Apache 2.4.
-
Exécutez la commande suivante pour arrêter
HTTPd
et tout processus de surveillance tel queNimbus
pour éviter les alertes :service httpd stop
-
Exécutez les commandes suivantes pour sauvegarder vos configurations d'hôte virtuel, en veillant à inclure tous les répertoires supplémentaires que vous avez ajoutés, tels que
vhost
:cd /etc/httpd tar -cvf /tmp/apache_vhostconfig.tar conf conf.d vhosts
-
Exécutez la commande suivante pour installer le
yum-plugin-replace
package, qui résout les conflits de packages lors du remplacement du package :yum install yum-plugin-replace
-
Avant de continuer, exécutez les commandes suivantes pour vérifier la version installée et la version que vous souhaitez installer :
apachectl -V yum search httpd yum info httpd
Votre sortie doit ressembler à l'exemple suivant, qui utilise la commande
yum info httpd24u.x86_64
:Loaded plugins: replace, rhnplugin, security This system is receiving updates from RHN Classic or RHN Satellite. Available Packages Name : httpd24u Arch : x86_64 Version : 2.4.23 Release : 4.ius.el6 Size : 1.2 M Repo : rackspace-rhel-x86_64-server-6-ius Summary : Apache HTTP Server License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
-
Installez HTTPd 2.4 en exécutant la commande suivante :
yum replace httpd --replace-with=httpd24u
-
Vous devez également installer le protocole LDAP (Lightweight Directory Access Protocol) en exécutant la commande suivante :
yum install mod_ldap
-
Dans Apache 2.4, vous devez utiliser
Require
directives pour la restriction d'accès au protocole Internet (IP) au lieu deOrder
,Deny
, etAllow
. Par conséquent, vous devez modifier laOrder
,Deny
, etAllow
déclarations dans votre /etc/httpd/conf.d/server-status.conf fichierà utiliserRequire
déclarations. Parce que vous pourriez les avoir dans le .htaccess fichiers pour d'autres sites Web, assurez-vous de vérifier attentivement vos racines de document pour éviter de casser vos sites Web en raison de l'absence deRequire
directive.Votre /etc/httpd/conf.d/server-status.conf existant le fichier doit ressembler à l'exemple suivant.
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
Remplacez la
Order
,Deny
, etAllow
instructions avec la configuration dans l'exemple suivant.<Location /server-status> SetHandler server-status Require all granted Require host 127.0.0.1 </Location>
Remarque :Ce changement de syntaxe s'applique également aux hôtes virtuels dans le conf.d et httpd.conf configurations vhost.
-
Modifier la
Order
,Deny
, etAllow
déclarations dans conf.d àRequire
déclarations.# Order deny,allow # Deny from all Require all denied # Order deny,allow # Allow from all Require all granted
-
Dans le même fichier, modifiez
Options -Indexes FollowSymLinks
versOptions -Indexes +FollowSymLinks
. -
Dans /etc/httpd/conf/httpd.conf , modifiez la
Order
,Deny
, etAllow
déclarations àRequire
déclarations, comme indiqué à l'étape 8. -
Dans /etc/httpd/conf/httpd.conf , définissez en commentaire le
LoadModule
directives pour les modules qui ne sont plus utilisés.#2.4 upgrade LoadModule authn_alias_module modules/mod_authn_alias.so #2.4 upgrade LoadModule authn_default_module modules/mod_authn_default.so #2.4 upgrade LoadModule authz_default_module modules/mod_authz_default.so #2.4 upgrade LoadModule disk_cache_module modules/mod_disk_cache.so
-
Modifier /etc/httpd/conf/httpd.conf pour ajouter la ligne suivante avec l'autre
authz
modules.LoadModule authz_core_module modules/mod_authz_core.so
-
Ajoutez les lignes suivantes au bas du bloc de
LoadModule
déclarations.LoadModule mpm_prefork_module modules/mod_mpm_prefork.so LoadModule unixd_module modules/mod_unixd.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
(Facultatif) Téléchargez une version compatible du module Dispatcher d'Adobe Experience Manager (AEM)
Si l'installation HTTPd utilise le module Dispatcher d'Adobe® Experience Manager (AEM), vous devez suivre les étapes suivantes pour télécharger le fichier compatible pour Apache HTTP Server 2.4.
-
Exécutez les commandes suivantes pour extraire le dispatcher-apache2.4-4.1.11.so du fichier Tape ARchive (TAR) dans /etc/httpd/modules/ . Utilisez uniquement ce fichier à cette fin.
cd /etc/httpd/modules rm mod_dispatcher.so ln -s /etc/httpd/modules/dispatcher-apache2.4-4.1.11.so mod_dispatcher.so
-
Étant donné que SSL Mutex est obsolète, vous devez modifier /etc/httpd/conf.d/ssl.conf pour changer
SSLMutex default
versMutex default
.
Pour plus de détails, consultez la documentation Apache sur MutexDirective.
Critique : Redémarrez le HTTPd
Après avoir suivi les étapes de cet article, vous devez redémarrer HTTPd et vérifier qu'il est activé et en cours d'exécution en procédant comme suit :
-
Exécutez la commande suivante pour redémarrer HTTPd :
service httpd start
-
Assurez-vous que le service est activé et en cours d'exécution, puis réactivez toute surveillance précédemment activée :
-
Sur CentOS® 7 ou Red Hat® Enterprise Linux® (RHEL) 7, exécutez les commandes suivantes :
systemctl enable httpd systemctl status httpd
-
Utilisez l'onglet Commentaires pour faire des commentaires ou poser des questions. Vous pouvez également démarrer une conversation avec nous.