4.2 KiB
PrivX Core HA Setup - 2 Nodi (Rocky Linux 9)
Questa guida descrive l'installazione di due server PrivX Core in configurazione Active-Active, connessi al DB centralizzato.
Hostname: privx-core-01, privx-core-02
Ruolo: Gestione autenticazione, API, storage configurazioni.
1. Prerequisiti su entrambi i nodi
1.1 Configurazione OS (Rocky Linux 9)
Assicurarsi che l'orario sia sincronizzato (Cruciale per i token TOTP/JWT):
sudo dnf install -y chrony
sudo systemctl enable --now chronyd
Disabilitare SELinux (Opzionale ma consigliato per evitare problemi iniziali nel lab, riabilitare poi):
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
sudo setenforce 0
1.2 Firewall (UFW/Firewalld)
Aprire le porte necessarie per la comunicazione tra nodi Core e verso il DB:
- TCP 80/443 (HTTP/S per Load Balancer)
- TCP 5432 (PostgreSQL - Outbound)
- TCP 8888 (PrivX internal API - Inbound da altri nodi PrivX)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=8888/tcp
sudo firewall-cmd --reload
2. Installazione PrivX (Nodo 01 - Master Iniziale)
2.1 Aggiunta Repository PrivX
Scarica e installa la repo ufficiale SSH.com (richiede licenza o trial):
sudo dnf config-manager --add-repo https://product-repository.ssh.com/rhel8/privx/privx.repo
# Nota: La repo RHEL8 funziona spesso anche su RHEL9, altrimenti cercare specifica RHEL9 se disponibile.
sudo dnf install -y privx
2.2 Configurazione Post-Install (Script interattivo)
Lancia lo script di setup sul primo nodo. Questo popolerà il DB.
sudo /opt/privx/scripts/postinstall.sh
Durante il setup, ti verranno chiesti i parametri del DB. Inserisci quelli creati nella guida setup-postgresql.md:
- Database Host:
privx-db(o IP del DB) - Database User:
privx - Database Password:
password_super_segreta... - Database Name:
privx - SSL Mode:
verify-full(orequirese hai certificati self-signed senza CA affidabile nel sistema).
Lo script genererà anche i certificati interni per Nginx e i microservizi.
3. Configurazione HA (Shared Config)
Per far funzionare il cluster, entrambi i nodi devono condividere la stessa chiave di cifratura e puntare allo stesso DB.
3.1 Backup Chiavi e Config dal Nodo 01
Copia i file critici dal Nodo 01 al Nodo 02 (via SCP sicuro):
# Sul Nodo 01
sudo tar czvf privx-ha-pack.tar.gz \
/opt/privx/keyvault \
/opt/privx/etc/shared-config.toml \
/opt/privx/etc/privx-ca.crt \
/opt/privx/etc/privx-ca.key
Trasferisci privx-ha-pack.tar.gz sul Nodo 02.
4. Installazione PrivX (Nodo 02 - Replica)
4.1 Installazione RPM
Sul secondo nodo, installa solo i pacchetti senza lanciare postinstall.sh subito.
sudo dnf config-manager --add-repo https://product-repository.ssh.com/rhel8/privx/privx.repo
sudo dnf install -y privx
4.2 Ripristino Configurazione HA
Prima di avviare, sovrascrivi le config con quelle del Nodo 01:
# Sul Nodo 02
sudo systemctl stop privx || true
sudo tar xzvf privx-ha-pack.tar.gz -C /
sudo chown -R privx:privx /opt/privx
4.3 Registrazione Nodo
Ora avvia PrivX sul secondo nodo. Se la configurazione DB in shared-config.toml è corretta, il nodo si collegherà al DB esistente e scaricherà le policy.
sudo systemctl enable --now privx
sudo /opt/privx/scripts/init_node.sh # Se disponibile, per registrare il nodo nel cluster DB
5. Verifica Cluster
Dal Nodo 01, controlla lo stato dei componenti:
privx-status
# Dovresti vedere entrambi i nodi (hostname) listati nei log o nella dashboard "Settings > Deployment".
6. Configurazione Load Balancer (Nginx/HAProxy)
Davanti ai due nodi Core devi mettere un LB. Esempio config Nginx (upstream):
upstream privx_core {
ip_hash; # Sticky session obbligatoria!
server privx-core-01:443;
server privx-core-02:443;
}
server {
listen 443 ssl;
server_name privx-lb.tuodominio.local;
location / {
proxy_pass https://privx_core;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}