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_1RIP_PSQL_2RIP_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_1RIP_PSQL_2RIP_PSQL_3 |
Server DNS | UDP 53 | Necessario per la risoluzione DNS. Facoltativo se un server DNS è disponibile nella LAN o nella DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_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_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2379 | Porta utilizzata per il funzionamento del cluster e su cui ETCD è in ascolto. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2380 | Porta utilizzata per il funzionamento del cluster e su cui ETCD è in ascolto. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Porta di connessione SQL su cui PostgreSQL è in ascolto (la porta predefinita può essere modificata). |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 8008 | Porta utilizzata per il funzionamento del cluster e su cui Patroni è in ascolto. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Server DNS | UDP 53 | Necessario per la risoluzione DNS. Facoltativo se un server DNS è disponibile nella WAN o nella DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_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_1RIP_PSQL_2RIP_PSQL_3 |
TCP 22 | Porta di amministrazione remota SSH. |
| Indirizzi IP o intervallo di rete delle postazioni di amministrazione | RIP_PSQL_1RIP_PSQL_2RIP_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 Namedeve avere come valore il nome breve del server (indicare l'FQDN provocherà errori). - L'attributo
Key Usagedeve avere i valoricritical,digitalSignatureekeyEncipherment. - L'attributo
Extended Key Usagedeve avere i valoriserverAutheclientAuth. - L'attributo
Subject Alternative Namedeve 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.