venerdì 19 ottobre 2012

pfSense in alta affidabilità con CARP e pfsync - Parte 2

Nel precedente articolo abbiamo visto come il protocollo CARP si occupi di gestire un'interfaccia virtuale con relativo indirizzo IP. Il protocollo è in grado di individuare gli host non più attivi e di eleggere il nuovo host master. Da solo il protocollo CARP non è sufficiente a gestire l'alta affidabilità, in caso di caduta del firewall master il backup con priorità più alta entrerebbe in funziona ma senza conoscere nulla degli stati delle connessioni in atto prima del guasto. Un'altro problema da risolvere è come mantenere sincronizzate le configurazioni dei firewall appartenenti al gruppo.

Il protocollo pfsync

Il protocollo pfsync è il protocollo utilizzato per sincronizzare gli stati dei firewall basati su Packet Filter per l'alta affidabilità. Tramite il protocollo IP 240 (pfsync) il firewall master invia in pacchetti multicast (224.0.0.240) tutti gli aggiornamenti sugli stati gestiti. Il protocollo non utilizza alcun tipo di autenticazione o criptografia e se non si usa una rete sicura c'è il rischio che pacchetti manipolati possano alterare la tabella di stato dei firewall permettendo di aggirare le regole. Per questo motivo è molto importante dedicare un interfaccia del firewall per il traffico di sincronizzazione tra gli host anche se potrebbe essere utilizzata una qualsiasi interfaccia.
Sull'interfaccia scelta per la sincronizzazione dei firewall è importante permettere il passaggio dei protocolli CARP e PFSYNC.

 

La scrittura delle regole di firewall

In presenza di una configurazione HA si pone il problema di come debbano essere scritte le regole di firewall. L'impatto è minimo occorre solo ricordare che l'interfaccia realmente utilizzata è l'interfaccia virtuale pertanto occorre far riferimento ad essa per tutte le regole relative ai servizzi offerti attraverso l'indirizzo virtuale.

Il protocollo XMLRPC

Abbiamo visto come gli stati vengono sincronizzati tra i firewall ora ci preoccuperemo di capire come sincronizzare le configurazioni dei firewall.

In quest'operazione ci viene in aiuto il protocollo XMLRPC, questo protocollo utilizza XML per trasmettere le configurazioni da un firewall ad un altro sfruttando il protocollo HTTP per il trasporto. nonostante la semplicità di XML è possibile trasferire strutture dati anche complesse, questo permette il trasferimento agevole della configurazione di pfSense.

pfSense consente la selezione dettagliata delle configurazioni da sincronizzare. Anche durante la creazione delle roules è possibile scegliere se sincronizzare o meno la regola che si sta creando.

Conclusioni

Con quest'articolo abbiamo concluso la panoramica teorica di come è strutturato e come funziona l'alta affidabilità in pfSense, nel prossimo articolo utilizzeremo queste informazioni per configurare due firewall in HA.
Posta un commento