Usando niveles separados de HAProxy y API, ¿cómo puedo asegurar que una solicitud proviene de HAProxy?

2

Tengo dos máquinas y una máquina HAProxy haciendo la terminación SSL y aceptando certificados de clientes con éxito. ¿Cómo puedo configurar HAProxy para asegurarme de que los mensajes que llegan a la caja de la API son de HAProxy y no de un tercero?

  • Estas máquinas están en la misma subred.

  • HAProxy no (como puedo ver en la versión estable 1.5) me permite realizar una concatenación y un hash, es decir, no puedo hacer un encabezado que sea
    SHA1( CONCAT( Shared Secret+X-Unique-Request-ID))

  • Prefiero no actualizar a la versión 1.6 de desarrollo (a pesar de que tiene soporte para scripts LUA)

¿Hay alguna otra vía para bajar para garantizar que las solicitudes provengan de HAProxy y no de un tercero?

    
pregunta Paul42 04.09.2015 - 18:10
fuente

2 respuestas

1

La solución obvia es cifrar la conexión entre el haproxy y el servidor web. Hacer esto mediante SSL significa que está agregando un poco de latencia a la conexión y, al procesar IIRC, haproxy implementa conexiones 1: 1 entre el front-end y el backend, otoh ATS y algunos otros proxies hacen un uso más eficiente de un conjunto de conexiones con el backend. . Pero suponiendo que cambiar a ATS no es una opción ... usted podría considerar una conexión VPN autenticada como ipsec entre haproxy y el servidor web, o simplemente bloquear el acceso al puerto utilizado por el servidor web en el enrutador (asumiendo que no hay nada considerado hostil en la misma subred.

    
respondido por el symcbean 09.10.2015 - 00:58
fuente
0

Mi sugerencia sería utilizar reqadd y un nombre de encabezado secreto y valor. Puede colocar cualquier encabezado que desee con cualquier valor y verificar si coincide en el lado del servidor de la API. Si falta ese encabezado, la solicitud no será de HAProxy.

    
respondido por el Nathan V 08.09.2015 - 23:13
fuente

Lea otras preguntas en las etiquetas