Utilizzando i livelli HAProxy e API separati, come posso garantire che una richiesta provenga da HAProxy?

2

Ho due macchine e una macchina HAProxy che esegue la terminazione SSL e accetta i certificati client con successo. Come posso configurare HAProxy per garantire che i messaggi in arrivo nella casella API provengano da HAProxy stesso e non da terzi?

  • Queste macchine si trovano nella stessa subnet.

  • HAProxy non consente (come posso vedere nella versione 1.5 stabile) di eseguire un concatenato e un hash, cioè non riesco a creare un'intestazione che è
    SHA1( CONCAT( Shared Secret+X-Unique-Request-ID))

  • Preferisco non eseguire l'upgrade alla versione di sviluppo 1.6 (anche se ha il supporto per lo scripting LUA)

C'è un'altra strada da fare per garantire che le richieste arrivino da HAProxy e non da terze parti?

    
posta Paul42 04.09.2015 - 18:10
fonte

2 risposte

1

La soluzione ovvia è crittografare la connessione tra haproxy e il server web. Facendo ciò usando SSL si sta aggiungendo un po 'di latenza alla connessione e un processo -IIRC, haproxy implementa una connessione 1: 1 tra front-end e backend, otoh ATS e alcuni altri proxy fanno un uso più efficiente di un pool di connessioni al back-end . Ma supponendo che il passaggio ad ATS non sia un'opzione ... potresti considerare una connessione VPN autenticata come ipsec tra haproxy e webserver, o semplicemente bloccare l'accesso alla porta utilizzata dal server web sul router (supponendo che non ci sia nulla di considerato ostile su la stessa sottorete.

    
risposta data 09.10.2015 - 00:58
fonte
0

Il mio suggerimento sarebbe di usare reqadd e un nome di intestazione segreta e valore. Puoi inserire qualsiasi intestazione che desideri lì con qualsiasi valore e controllare che corrisponda al lato sever dell'API. Se manca quell'intestazione, la richiesta non verrà da HAProxy.

    
risposta data 08.09.2015 - 23:13
fonte

Leggi altre domande sui tag