Configurare i proxy attendibili

Negli ambienti che richiedono un livello di sicurezza elevato, la configurazione dei proxy attendibili è obbligatoria.

Quando Cyberwatch si trova dietro uno o più proxy (come un load balancer, un reverse proxy o un proxy di sicurezza), è necessario configurare la variabile TRUSTED_PROXIES per indicare a Cyberwatch quali proxy sono attendibili. Questa configurazione consente a Cyberwatch di ottenere gli indirizzi IP corretti dei client nelle sessioni e nei log, utilizzando le intestazioni HTTP appropriate (come X-Forwarded-For) anziché l’indirizzo IP del proxy.

Per determinare l’indirizzo IP reale del client verranno utilizzati solo gli indirizzi IP dei proxy attendibili. Assicurarsi di includere solo i proxy controllati e considerati affidabili.

Configurazione

Con Docker Swarm e Podman

  1. Aggiungere la variabile d’ambiente TRUSTED_PROXIES nel file /etc/cyberwatch/containers.env:

    TRUSTED_PROXIES=10.0.0.1,10.0.0.2
    

    È possibile specificare:

    • Un solo indirizzo IP: TRUSTED_PROXIES=10.0.0.1
    • Più indirizzi IP separati da virgole: TRUSTED_PROXIES=10.0.0.1,10.0.0.2,192.168.1.100
    • Una o più reti CIDR: TRUSTED_PROXIES=10.0.0.0/24
  2. Riavviare Cyberwatch:

    sudo cyberwatch restart
    

Con Kubernetes

  1. Aggiungere la variabile d’ambiente TRUSTED_PROXIES in web.env nel file values.yml:

    web:
      env:
        ## Trusted proxy IP addresses or CIDR ranges
        ## Allows Cyberwatch to correctly identify client IP addresses when behind proxies
        TRUSTED_PROXIES: "10.0.0.1,10.0.0.2"
    

    È possibile specificare:

    • Un solo indirizzo IP: TRUSTED_PROXIES: "10.0.0.1"
    • Più indirizzi IP separati da virgole: TRUSTED_PROXIES: "10.0.0.1,10.0.0.2,192.168.1.100"
    • Una o più reti CIDR: TRUSTED_PROXIES: "10.0.0.0/24"
  2. Riavviare Cyberwatch seguendo la procedura descritta in Riavviare e aggiornare il chart Helm

Verifica

Dopo la configurazione, è possibile verificare che gli indirizzi IP vengano rilevati correttamente consultando i log delle sessioni o controllando gli indirizzi IP registrati nell’interfaccia Cyberwatch.

Se la variabile TRUSTED_PROXIES contiene un valore non valido, l’applicazione non si avvia e i suoi log indicano il valore in questione.

Comportamento predefinito

Se la variabile TRUSTED_PROXIES non è definita, solo l’indirizzo 127.0.0.1 è considerato proxy attendibile. A partire dalla versione 15.7.2, gli indirizzi delle reti private elencate nella RFC 1918 non sono più considerati proxy attendibili per impostazione predefinita: se Cyberwatch si trova dietro un proxy non dichiarato, l’indirizzo IP registrato per i client è quello del proxy.

Il valore none produce lo stesso comportamento:

Per Docker Swarm:

TRUSTED_PROXIES=none

Per Kubernetes:

web:
  env:
    TRUSTED_PROXIES: "none"