Sari la conținut

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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 2379 Port utilizat pentru funcționarea clusterului și ascultat de ETCD.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 2380 Port utilizat pentru funcționarea clusterului și ascultat de ETCD.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 5432 Portul de conexiune SQL utilizat de PostgreSQL (portul implicit poate fi modificat).
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 8008 Port utilizat pentru funcționarea clusterului și ascultat de Patroni.
RIP_PSQL_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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 Name trebuie să aibă ca valoare numele scurt al serverului (indicarea FQDN-ului va provoca erori).
  • Atributul Key Usage trebuie să aibă valorile critical, digitalSignature și keyEncipherment.
  • Atributul Extended Key Usage trebuie să aibă valorile serverAuth și clientAuth.
  • Atributul Subject Alternative Name trebuie 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.