138 lines
4.0 KiB
Markdown
138 lines
4.0 KiB
Markdown
# 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: <incolla qui>
|
|
```
|
|
|
|
### 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
|
|
```
|