es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo ayudar a mitigar log4j a través de haproxy en Enterprise Linux?

Basado en este post, haproxy ha proporcionado reglas de acl de mitigación que se pueden utilizar para ayudar a combatir las solicitudes de ataque log4j que se están reenviando a las aplicaciones log4j afectadas.

Al leer algunos de los comentarios de los usuarios, me di cuenta de que muchos sistemas Enterprise Linux Haproxy podrían estar ejecutando una versión antigua de haproxy 1.5 que no tiene la directiva option http-buffer-request. Esta directiva es fundamental para cualquier CVE que estés tratando de mitigar, especialmente si esta es tu única opción hasta que puedas actualizar las aplicaciones afectadas.

¿Cuál es la forma más sencilla de actualizar y a qué versión?

Respondiendo a mi propia pregunta…

Se requiere haproxy 1.6, sin embargo, RH proporciona haproxy 1.8 desde el repositorio RHSCL.

Asegúrate de que estos repositorios estén activos en el sistema e instala haproxy 1.8.


subscription-manager repos --enable=rhel-7-server-optional-rpms --enable=rhel-7-server-rpms --enable=rhel-server-rhscl-7-rpms
yum install -y rh-haproxy18.x86_64

Copia la configuración actual al archivo de configuración 1.8 y realiza una prueba rápida de configuración.


cat /etc/haproxy/haproxy.cfg > /etc/opt/rh/rh-haproxy18/haproxy/haproxy.cfg
/opt/rh/rh-haproxy18/root/usr/sbin/haproxy -c -V -f /etc/opt/rh/rh-haproxy18/haproxy/haproxy.cfg

^ Corrige cualquier advertencia o error de alerta. En mi experiencia, esto se debe principalmente al orden de las directivas o a las cadenas de puertos en tus servicios backend. Esto es relativamente fácil de buscar en Internet y corregir.


nano /etc/opt/rh/rh-haproxy18/haproxy/haproxy.cfg

Agrega las reglas de ACl, utiliza nombres únicos si estás utilizando más de un listener/frontend en la configuración para evitar superposiciones.


systemctl disable --now haproxy && systemctl enable --now rh-haproxy18-haproxy
yum remove -y haproxy && yum install -y rh-haproxy18-haproxy-syspaths.x86_64

^ El paquete rh-haproxy18-haproxy-syspaths.x86_64 reemplaza el nombre del servicio haproxy, por lo que no es necesario actualizar los scripts de systemctl ni incluso keepalived si lo estás utilizando para monitorear el servicio haproxy.

Utilizo esto dentro de keepalived, que funciona antes y después.


killall -0 haproxy

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Actualice Haproxy a la versión 1.6 o superior

    Para mitigar la vulnerabilidad log4j, se requiere la versión 1.6 o superior de Haproxy. Sin embargo, muchos sistemas Haproxy de Enterprise Linux podrían estar utilizando una versión más antigua de Haproxy, como la 1.5, que no tiene la directiva option http-buffer-request.

    La forma más fácil de actualizar Haproxy es utilizando el repositorio RH Software Collections (RHSCL). Los siguientes pasos se pueden seguir para actualizar a la versión 1.8 de Haproxy, que está disponible en el repositorio RHSCL:

    1. Habilitar los repositorios necesarios en el sistema:
    subscription-manager repos --enable=rhel-7-server-optional-rpms --enable=rhel-7-server-rpms --enable=rhel-server-rhscl-7-rpms
    
    1. Instalar Haproxy 1.8:
    yum install -y rh-haproxy18.x86_64
    
    1. Copiar el archivo de configuración actual de Haproxy al nuevo archivo de configuración:
    cat /etc/haproxy/haproxy.cfg > /etc/opt/rh/rh-haproxy18/haproxy/haproxy.cfg
    
    1. Probar el nuevo archivo de configuración en busca de advertencias o errores:
    /opt/rh/rh-haproxy18/root/usr/sbin/haproxy -c -V -f /etc/opt/rh/rh-haproxy18/haproxy/haproxy.cfg
    
    1. Realizar las correcciones necesarias al archivo de configuración:
    nano /etc/opt/rh/rh-haproxy18/haproxy/haproxy.cfg
    
    1. Agregar las reglas ACL de mitigación de Haproxy, utilizando nombres únicos si se utiliza más de un listener/frontend en el archivo de configuración para evitar superposiciones:
    7. Desactivar y activar el servicio de Haproxy:
    
    

    systemctl disable –now haproxy && systemctl enable –now rh-haproxy18-haproxy


    8. Por último, eliminar el paquete antiguo de Haproxy e instalar el nuevo:

    yum remove -y haproxy && yum install -y rh-haproxy18-haproxy-syspaths.x86_64
    “`

    El paquete rh-haproxy18-haproxy-syspaths.x86_64 reemplaza el nombre del servicio haproxy, por lo que no es necesario actualizar los scripts de systemctl ni incluso keepalived si lo está utilizando para monitorear el servicio haproxy.

    También es recomendable incluir killall -0 haproxy en su script keepalived, lo cual funcionará antes y después de la actualización.

Comments are closed.