# Setup PrivX Web Access HA (Carrier + Web Proxy) - 2 Nodi Questa guida copre l'installazione dei componenti per l'accesso Web (RDP/SSH via browser) in alta affidabilità. Replichiamo l'architettura Enterprise con **2 Carrier** e **2 Web Proxy**. **Hostname:** `privx-web-01`, `privx-web-02` **Ruolo:** Gestione sessioni browser isolate (Docker-in-Docker) e proxy WSS. ## 1. Architettura Logica * **Web Proxy:** Gestisce il traffico WebSocket sicuro (WSS) tra il browser dell'utente e il Carrier. * **Carrier:** Esegue container Docker effimeri (Firefox) che renderizzano la sessione remota. * **Relazione:** Ogni Web Proxy deve avere un Carrier associato (spesso sulla stessa macchina per latenza zero). Nel nostro lab, installeremo entrambi i ruoli su ciascuno dei 2 nodi dedicati (`privx-web-01`, `privx-web-02`). ## 2. Prerequisiti (Rocky Linux 9) Queste macchine richiedono **più RAM** (min 8GB, meglio 16GB) perché eseguono browser pesanti per ogni utente connesso. ### 2.1 Installazione Docker (Podman non supportato ufficialmente per Carrier) PrivX Carrier usa Docker per spawnare i browser. ```bash sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker sudo usermod -aG docker privx-carrier # (Dopo installazione pacchetto) ``` ### 2.2 Repository PrivX Aggiungi la repo come per i Core: ```bash sudo dnf config-manager --add-repo https://product-repository.ssh.com/rhel8/privx/privx.repo ``` ## 3. Installazione Componenti Su entrambi i nodi (`privx-web-01` e `privx-web-02`), installa i pacchetti specifici: ```bash sudo dnf install -y privx-carrier privx-web-proxy ``` ## 4. Configurazione Nodo 01 (Master Web) ### 4.1 Registrazione al Core Il Web Proxy deve autenticarsi con il Core. Genera un token di pairing sul Core (`privx-core-01`): ```bash # SUL NODO CORE sudo /opt/privx/scripts/generate_token.sh --ttl 3600 --type extender # Copia il token generato. ``` Ora configura il Web Proxy sul Nodo 01: ```bash # SUL NODO WEB 01 sudo /opt/privx/scripts/postinstall-web-proxy.sh # Inserisci: # - Core URL: https://privx-lb.tuodominio.local (o IP Core 01 per test) # - Pairing Token: ``` ### 4.2 Configurazione Carrier Il Carrier deve sapere dove trovare il Web Proxy (localhost) e scaricare l'immagine Docker del browser. ```bash sudo /opt/privx/scripts/postinstall-carrier.sh # L'installer scaricherà l'immagine Docker ufficiale di PrivX Browser. # Verifica che Docker sia attivo! ``` ## 5. Configurazione Nodo 02 (Replica HA) Ripeti ESATTAMENTE gli stessi passaggi sul Nodo 02 (`privx-web-02`). Usa un **nuovo token** generato dal Core (i token sono monouso). ### 5.1 Verifica HA In PrivX GUI (Settings > Deployment > Status), dovresti vedere: * 2 Web Proxies Online * 2 Carriers Online Se un nodo cade, il Load Balancer (vedi sotto) sposterà le nuove sessioni sull'altro. Le sessioni attive sul nodo caduto verranno perse (comportamento standard, non c'è live migration delle sessioni browser). ## 6. Configurazione Load Balancer per Web Access Il traffico Web Access usa WebSocket (WSS). Il Load Balancer deve supportarlo. Aggiungi al file di config del LB (es. Nginx): ```nginx upstream privx_web { ip_hash; # Sticky session CRUCIALE anche qui server privx-web-01:443; server privx-web-02:443; } server { listen 443 ssl; server_name privx-web.tuodominio.local; location /ws { proxy_pass https://privx_web; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; } } ``` ## 7. Tuning Performance (Carrier) Poiché girano browser, questi nodi consumano CPU/RAM. Modifica `/opt/privx/etc/carrier-config.toml`: ```toml [carrier] # Limita il numero max di sessioni per nodo per non crashare max_sessions = 50 # Pulisci container orfani ogni ora cleanup_interval = 3600 ``` Riavvia i servizi dopo le modifiche: ```bash sudo systemctl restart privx-carrier privx-web-proxy ```