GNU/Linux >> Tutoriales Linux >  >> Linux

Actualice Apache HTTP Server 2.2 a 2.4 en RHEL y CentOS 7

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).

  1. Abra /etc/apache2/conf.d/httpd.conf en un editor.

  2. 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.

  1. Ejecute el siguiente comando para detener HTTPd y cualquier proceso de monitoreo como Nimbus para evitar alertas:

    service httpd stop
    
  2. 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
    
  3. 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
    
  4. 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.
    
  5. Instale HTTPd 2.4 ejecutando el siguiente comando:

    yum replace httpd --replace-with=httpd24u
    
  6. También debe instalar el Protocolo ligero de acceso a directorios (LDAP) ejecutando el siguiente comando:

    yum install mod_ldap
    
  7. En Apache 2.4, debe usar Require directivas para la restricción de acceso del Protocolo de Internet (IP) en lugar de Order , Deny y Allow . Como resultado, debe cambiar el Order , Deny y Allow declaraciones en su /etc/httpd/conf.d/server-status.conf archivo para usar Require 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 de Require 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 y Allow 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.

  8. Cambiar el Order , Deny y Allow declaraciones en conf.d para Require declaraciones.

    #    Order deny,allow
    #    Deny from all
    Require all denied
    
    #    Order deny,allow
    #    Allow from all
    Require all granted
    
  9. En el mismo archivo, cambie Options -Indexes FollowSymLinks aOptions -Indexes +FollowSymLinks .

  10. En /etc/httpd/conf/httpd.conf , cambia el Order , Deny y Allow declaraciones para Require declaraciones, como se muestra en el paso 8.

  11. 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
    
  12. 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
    
  13. 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.

  1. 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
    
  2. Debido a que SSL Mutex está en desuso, debe editar /etc/httpd/conf.d/ssl.conf para cambiar SSLMutex default a Mutex 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:

  1. Ejecute el siguiente comando para reiniciar HTTPd:

     service httpd start
    
  2. 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.


Linux
  1. Instale el servidor web Apache CentOS 6 / RHEL 6

  2. Instalar Apache y PHP en CentOS 7

  3. Instalar Apache en CentOS 8

  4. CentOS/RHEL 7:Configuración de un servidor NFS y un cliente NFS

  5. Cómo configurar servidor y cliente NTP en CentOS/RHEL 7

Cómo instalar Apache ActiveMQ y Hawt.io en CentOS 8

Cómo instalar y configurar el servidor VNC en CentOS 8

Cómo instalar y configurar el servidor VNC en CentOS 7 / RHEL 7

Cómo instalar Apache en CentOS 8

Guía para principiantes del servidor Apache HTTP:instalación y configuración

Cómo instalar y configurar el servidor VNC en CentOS/RHEL 8