Vai al contenuto

Prerequisiti

Macchina

OS

Il cluster PostgreSQL fornito dall'appliance si basa su un sistema operativo Debian 12 (bookworm) a 64 bit.

CPU

Si raccomanda di assegnare 4 core CPU per nodo del cluster PostgreSQL.

RAM

Si raccomanda di assegnare 4 GB di RAM per nodo del cluster PostgreSQL.

Disco

L'appliance virtuale viene fornita con un disco virtuale da 60 GB.

Rete

Un cluster PostgreSQL richiederà 4 indirizzi IP:

  • 1 indirizzo IP reale per nodo PostgreSQL
  • 1 indirizzo IP virtuale per il cluster PostgreSQL

Attenzione!

Gli indirizzi IP reali e virtuali dei nodi del cluster PostgreSQL devono appartenere tutti alla stessa sottorete.

I nodi del cluster PostgreSQL sono generalmente collocati nella LAN affinché CyberElements Bastion vi acceda tramite gli Edge Gateway.

Per identificare meglio i diversi indirizzi delle macchine, nella documentazione saranno denominati come segue:

Nome dell'indirizzo IP Significato
RIP_PSQL_1 Indirizzo IP reale del nodo PostgreSQL n°1.
RIP_PSQL_2 Indirizzo IP reale del nodo PostgreSQL n°2.
RIP_PSQL_3 Indirizzo IP reale del nodo PostgreSQL n°3.
VIP_PSQL Indirizzo IP virtuale del cluster PostgreSQL.
Origine Destinazione Porta di destinazione Commenti
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
Repository Debian TCP 80 Necessario per installare le dipendenze di CyberElements Bastion e mantenere il sistema aggiornato. La documentazione e le appliance virtuali utilizzano ftp.fr.debian.org e security.debian.org.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
Server DNS UDP 53 Necessario per la risoluzione DNS. Facoltativo se un server DNS è disponibile nella LAN o nella DMZ.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
Server di riferimento orario NTP UDP 123 Facoltativo se il server deve sincronizzare il proprio orologio con un server situato nella LAN o nella DMZ. Per impostazione predefinita vengono utilizzati i pool Debian: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org e 3.debian.pool.ntp.org.
Origine Destinazione Porta di destinazione Commenti
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 2379 Porta utilizzata per il funzionamento del cluster e su cui ETCD è in ascolto.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 2380 Porta utilizzata per il funzionamento del cluster e su cui ETCD è in ascolto.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 5432 Porta di connessione SQL su cui PostgreSQL è in ascolto (la porta predefinita può essere modificata).
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 8008 Porta utilizzata per il funzionamento del cluster e su cui Patroni è in ascolto.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
Server DNS UDP 53 Necessario per la risoluzione DNS. Facoltativo se un server DNS è disponibile nella WAN o nella DMZ.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
Server di riferimento orario NTP UDP 123 Facoltativo se il server deve sincronizzare il proprio orologio con un server situato nella WAN o nella DMZ. Per impostazione predefinita vengono utilizzati i pool Debian: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org e 3.debian.pool.ntp.org.
Indirizzi IP o intervallo di rete delle postazioni di amministrazione RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 22 Porta di amministrazione remota SSH.
Indirizzi IP o intervallo di rete delle postazioni di amministrazione RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 5432 Porta di connessione SQL utilizzata da PostgreSQL (la porta predefinita può essere modificata).
Indirizzi IP o intervallo di rete delle postazioni di amministrazione VIP_PSQL TCP 5432 Porta di connessione SQL utilizzata da PostgreSQL (la porta predefinita può essere modificata).
Indirizzi IP degli Edge Gateway che devono accedere al cluster PostgreSQL VIP_PSQL TCP 5432 Porta di connessione SQL utilizzata da PostgreSQL (la porta predefinita può essere modificata).

Certificati

Il cluster PostgreSQL cifra i flussi di comunicazione tra i suoi nodi, sia per il funzionamento del cluster sia per le connessioni SQL. Si tratta di una cifratura TLS, che richiede l'uso di certificati.
Le informazioni seguenti riepilogano le impostazioni e le opzioni necessarie per i certificati del cluster PostgreSQL.

Vincolo di sicurezza del certificato

Indipendentemente dal certificato utilizzato, verificare che sia conforme al livello di sicurezza 2 di OpenSSL, che può essere riassunto come segue:

  • Il certificato e i certificati delle sue autorità di certificazione devono avere una chiave privata di almeno 2048 bit con cifratura RSA, DSA e DH; per le chiavi a curva ellittica (ECC) devono essere di almeno 224 bit.
  • La firma del certificato non deve essere MD5 o SHA-1 (è preferibile SHA-512).

Ogni nodo PostgreSQL utilizzerà un unico certificato, ma dovrà anche importare il certificato dell'autorità di certificazione (CA) radice.
La CA radice è attesa in formato crt codificato in base64.

Il certificato del nodo PostgreSQL deve rispettare le impostazioni seguenti:

  • La funzione hash utilizzata per la firma deve appartenere alla famiglia SHA-2; raccomandiamo SHA-512.
  • Il certificato e i certificati delle sue autorità di certificazione devono avere una chiave privata di almeno 2048 bit con cifratura RSA, DSA e DH; per le chiavi a curva ellittica (ECC) devono essere di almeno 224 bit. Si raccomanda una dimensione di 4096 bit per RSA e la curva ECDSA secp384r1 con una dimensione di 384 bit.
  • L'attributo Common Name deve avere come valore il nome breve del server (indicare l'FQDN provocherà errori).
  • L'attributo Key Usage deve avere i valori critical, digitalSignature e keyEncipherment.
  • L'attributo Extended Key Usage deve avere i valori serverAuth e clientAuth.
  • L'attributo Subject Alternative Name deve essere definito in modo da coprire:
    • Il nome del nodo PostgreSQL associato all'indirizzo IP reale
    • Il nome del cluster PostgreSQL associato all'indirizzo IP virtuale
    • L'indirizzo IP reale del nodo PostgreSQL
    • L'indirizzo IP virtuale del cluster PostgreSQL

Formato di certificato previsto: P12.