Si recientemente realizó un análisis de seguridad de cumplimiento, los resultados podrían parecerse al siguiente ejemplo:
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
Según el código base, es posible que Apache® HTTP Server ya haya mitigado estos problemas de seguridad. El análisis verifica la versión de Apache del servidor para determinar si la versión instalada resuelve el problema de seguridad. Sin embargo, algunos análisis de seguridad de cumplimiento usan solo la versión de Apache para determinar si el servidor es vulnerable a vulnerabilidades y exposiciones comunes (CVE) en lugar de detectar vulnerabilidades directamente.
Estos escaneos casi siempre generan un falso positivo. Si habilita las actualizaciones automáticas, la versión puede seguir siendo la misma, incluso si otra versión corrige la vulnerabilidad. Por lo tanto, el análisis puede marcar la vulnerabilidad como positiva. Este resultado también podría ocurrir si los análisis de su proveedor muestran que su servidor ya no es vulnerable, incluso si los análisis anteriores han identificado vulnerabilidades.
Use los siguientes pasos si su auditoría de seguridad revela que sus análisis de seguridad de cumplimiento solo usan la versión de Apache para identificar vulnerabilidades en su servidor Apache2. Edite el archivo de configuración para el demonio del Protocolo de transferencia de hipertexto (HTTPd).
-
Abra /etc/apache2/conf.d/httpd.conf en un editor.
-
Agregue las siguientes líneas y elimine la información de la versión:
ServerSignature Off ServerTokens Prod
Nota :Su servidor no debe proporcionar una firma de versión y su empresa de pruebas de penetración debe recomendarle que deshabilite las versiones.
Actualización de Apache 2.2 a Apache 2.4
Use los siguientes pasos para actualizar Apache 2.2 a Apache 2.4.
-
Ejecute el siguiente comando para detener
HTTPd
y cualquier proceso de monitoreo comoNimbus
para evitar alertas:service httpd stop
-
Ejecute los siguientes comandos para hacer una copia de seguridad de sus configuraciones de host virtual, asegurándose de incluir cualquier directorio adicional que haya agregado, como
vhost
:cd /etc/httpd tar -cvf /tmp/apache_vhostconfig.tar conf conf.d vhosts
-
Ejecute el siguiente comando para instalar
yum-plugin-replace
paquete, que resuelve conflictos de paquetes durante el reemplazo del paquete:yum install yum-plugin-replace
-
Antes de continuar, ejecute los siguientes comandos para verificar la versión instalada y la versión que desea instalar:
apachectl -V yum search httpd yum info httpd
Su resultado debe ser similar al siguiente ejemplo, que usa el comando
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.
-
Instale HTTPd 2.4 ejecutando el siguiente comando:
yum replace httpd --replace-with=httpd24u
-
También debe instalar el Protocolo ligero de acceso a directorios (LDAP) ejecutando el siguiente comando:
yum install mod_ldap
-
En Apache 2.4, debe usar
Require
directivas para la restricción de acceso del Protocolo de Internet (IP) en lugar deOrder
,Deny
yAllow
. Como resultado, debe cambiar elOrder
,Deny
yAllow
declaraciones en su /etc/httpd/conf.d/server-status.conf archivo para usarRequire
declaraciones. Porque es posible que los tenga en .htaccess archivos para otros sitios web, asegúrese de verificar cuidadosamente sus raíces de documentos para evitar romper sus sitios web debido a la falta deRequire
directivas.Su /etc/httpd/conf.d/server-status.conf existente El archivo debe aparecer similar al siguiente ejemplo.
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
Reemplace el
Order
,Deny
yAllow
sentencias con la configuración del siguiente ejemplo.<Location /server-status> SetHandler server-status Require all granted Require host 127.0.0.1 </Location>
Nota :este cambio de sintaxis también se aplica a los hosts virtuales en el conf.d y httpd.conf configuraciones de host virtual.
-
Cambiar el
Order
,Deny
yAllow
declaraciones en conf.d paraRequire
declaraciones.# Order deny,allow # Deny from all Require all denied # Order deny,allow # Allow from all Require all granted
-
En el mismo archivo, cambie
Options -Indexes FollowSymLinks
aOptions -Indexes +FollowSymLinks
. -
En /etc/httpd/conf/httpd.conf , cambia el
Order
,Deny
yAllow
declaraciones paraRequire
declaraciones, como se muestra en el paso 8. -
En /etc/httpd/conf/httpd.conf , establezca como comentarios el
LoadModule
directivas para módulos que ya no se usan.#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
-
Edite /etc/httpd/conf/httpd.conf para agregar la siguiente línea con el otro
authz
módulos.LoadModule authz_core_module modules/mod_authz_core.so
-
Agregue las siguientes líneas al final del bloque de
LoadModule
declaraciones.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
(Opcional) Descargue una versión compatible del módulo Dispatcher de Adobe Experience Manager (AEM)
Si la instalación de HTTPd utiliza el módulo Dispatcher de Adobe® Experience Manager (AEM), debe realizar los siguientes pasos para descargar el archivo compatible con Apache HTTP Server 2.4.
-
Ejecute los siguientes comandos para extraer el dispatcher-apache2.4-4.1.11.so archivo del archivo Tape ARchive (TAR) en /etc/httpd/modules/ . Use solo este archivo para este propósito.
cd /etc/httpd/modules rm mod_dispatcher.so ln -s /etc/httpd/modules/dispatcher-apache2.4-4.1.11.so mod_dispatcher.so
-
Debido a que SSL Mutex está en desuso, debe editar /etc/httpd/conf.d/ssl.conf para cambiar
SSLMutex default
aMutex default
.
Para obtener más detalles, consulte la documentación de Apache sobre MutexDirective.
Crítico: Reinicie el HTTPd
Después de completar los pasos de este artículo, debe reiniciar HTTPd y verificar que esté habilitado y ejecutándose mediante los siguientes pasos:
-
Ejecute el siguiente comando para reiniciar HTTPd:
service httpd start
-
Asegúrese de que el servicio esté habilitado y en ejecución, y vuelva a habilitar cualquier supervisión previamente habilitada:
-
En CentOS® 7 o Red Hat® Enterprise Linux® (RHEL) 7, ejecute los siguientes comandos:
systemctl enable httpd systemctl status httpd
-
Use la pestaña Comentarios para hacer cualquier comentario o hacer preguntas. También puede iniciar una conversación con nosotros.