Cerințe preliminare¶
Mașină¶
OS¶
Clusterul PostgreSQL furnizat de appliance se bazează pe un sistem de operare Debian 12 (bookworm) pe 64 de biți.
CPU¶
Se recomandă alocarea a 4 nuclee CPU pentru fiecare nod al clusterului PostgreSQL.
RAM¶
Se recomandă alocarea a 4 GB de RAM pentru fiecare nod al clusterului PostgreSQL.
Disc¶
Appliance-ul virtual este livrat cu un disc virtual de 60 GB.
Rețea¶
Un cluster PostgreSQL va necesita 4 adrese IP:
- 1 adresă IP reală pentru fiecare nod PostgreSQL
- 1 adresă IP virtuală pentru clusterul PostgreSQL
Atenție!
Adresele IP reale și virtuale ale nodurilor clusterului PostgreSQL trebuie să aparțină toate aceleiași subrețele.
Nodurile clusterului PostgreSQL sunt de obicei amplasate în LAN, pentru a fi accesate de CyberElements Bastion prin intermediul Edge Gateway-urilor.
Pentru a identifica mai bine diferitele adrese ale mașinilor, în documentație acestea vor fi denumite astfel:
| Numele adresei IP | Semnificație |
|---|---|
RIP_PSQL_1 |
Adresa IP reală a nodului PostgreSQL nr. 1. |
RIP_PSQL_2 |
Adresa IP reală a nodului PostgreSQL nr. 2. |
RIP_PSQL_3 |
Adresa IP reală a nodului PostgreSQL nr. 3. |
VIP_PSQL |
Adresa IP virtuală a clusterului PostgreSQL. |
| Sursă | Destinație | Portul de destinație | Comentarii |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Repository-uri Debian | TCP 80 | Necesar pentru instalarea dependențelor CyberElements Bastion și pentru menținerea sistemului la zi. Documentația și appliance-urile virtuale utilizează ftp.fr.debian.org și security.debian.org. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Server DNS | UDP 53 | Necesar pentru rezoluția DNS. Opțional dacă un server DNS este disponibil în LAN sau în DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Server de timp NTP | UDP 123 | Opțional dacă serverul trebuie să își sincronizeze ceasul cu un server situat în LAN sau în DMZ. În mod implicit, se utilizează pool-urile Debian: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org și 3.debian.pool.ntp.org. |
| Sursă | Destinație | Portul de destinație | Comentarii |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2379 | Port utilizat pentru funcționarea clusterului și ascultat de ETCD. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2380 | Port utilizat pentru funcționarea clusterului și ascultat de ETCD. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Portul de conexiune SQL utilizat de PostgreSQL (portul implicit poate fi modificat). |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 8008 | Port utilizat pentru funcționarea clusterului și ascultat de Patroni. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Server DNS | UDP 53 | Necesar pentru rezoluția DNS. Opțional dacă un server DNS este disponibil în WAN sau în DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Server de timp NTP | UDP 123 | Opțional dacă serverul trebuie să își sincronizeze ceasul cu un server situat în WAN sau în DMZ. În mod implicit, se utilizează pool-urile Debian: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org și 3.debian.pool.ntp.org. |
| Adresele IP sau intervalul de rețea al stațiilor de lucru de administrare | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 22 | Portul de administrare la distanță SSH. |
| Adresele IP sau intervalul de rețea al stațiilor de lucru de administrare | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Portul de conexiune SQL utilizat de PostgreSQL (portul implicit poate fi modificat). |
| Adresele IP sau intervalul de rețea al stațiilor de lucru de administrare | VIP_PSQL |
TCP 5432 | Portul de conexiune SQL utilizat de PostgreSQL (portul implicit poate fi modificat). |
| Adresele IP ale Edge Gateway-urilor care trebuie să acceseze clusterul PostgreSQL | VIP_PSQL |
TCP 5432 | Portul de conexiune SQL utilizat de PostgreSQL (portul implicit poate fi modificat). |
Certificate¶
Clusterul PostgreSQL criptează fluxurile de comunicație dintre nodurile sale, atât pentru funcționarea clusterului, cât și pentru conexiunile SQL. Este vorba de o criptare TLS, care necesită utilizarea de certificate.
Informațiile de mai jos rezumă setările și opțiunile necesare pentru certificatele clusterului PostgreSQL.
Constrângere de securitate a certificatului
Indiferent de certificatul utilizat, asigurați-vă că respectă nivelul de securitate 2 OpenSSL, care poate fi rezumat astfel:
- Certificatul și certificatele autorităților sale de certificare trebuie să aibă o cheie privată de cel puțin 2048 de biți cu criptare RSA, DSA și DH; pentru cheile pe curbe eliptice (ECC), acestea trebuie să fie de cel puțin 224 de biți.
- Semnătura certificatului nu trebuie să fie MD5 sau SHA-1 (se preferă SHA-512).
Fiecare nod PostgreSQL va utiliza un singur certificat, dar va trebui de asemenea să importe certificatul autorității de certificare (CA) rădăcină.
CA rădăcină trebuie să fie în format crt codificat în base64.
Certificatul nodului PostgreSQL trebuie să respecte următoarele setări:
- Funcția hash utilizată pentru semnătură trebuie să facă parte din familia SHA-2; recomandăm SHA-512.
- Certificatul și certificatele autorităților sale de certificare trebuie să aibă o cheie privată de cel puțin 2048 de biți cu criptare RSA, DSA și DH; pentru cheile pe curbă eliptică (ECC), acestea trebuie să fie de cel puțin 224 de biți. Recomandăm o dimensiune de 4096 de biți pentru RSA și curba ECDSA secp384r1 cu o dimensiune de 384 de biți.
- Atributul
Common Nametrebuie să aibă ca valoare numele scurt al serverului (indicarea FQDN-ului va provoca erori). - Atributul
Key Usagetrebuie să aibă valorilecritical,digitalSignatureșikeyEncipherment. - Atributul
Extended Key Usagetrebuie să aibă valorileserverAuthșiclientAuth. - Atributul
Subject Alternative Nametrebuie definit astfel încât să acopere:- Numele nodului PostgreSQL asociat adresei IP reale
- Numele clusterului PostgreSQL asociat adresei IP virtuale
- Adresa IP reală a nodului PostgreSQL
- Adresa IP virtuală a clusterului PostgreSQL
Formatul de certificat așteptat: P12.