Forudsætninger¶
Maskine¶
OS¶
Det PostgreSQL-cluster, der leveres af appliancen, er baseret på et 64-bit Debian 12-operativsystem (bookworm).
CPU¶
Det anbefales at tildele 4 CPU-kerner pr. node i PostgreSQL-clusteret.
RAM¶
Det anbefales at tildele 4 GB RAM pr. node i PostgreSQL-clusteret.
Disk¶
Den virtuelle appliance leveres med en virtuel disk på 60 GB.
Netværk¶
Et PostgreSQL-cluster kræver 4 IP-adresser:
- 1 reel IP-adresse pr. PostgreSQL-node
- 1 virtuel IP-adresse til PostgreSQL-clusteret
Advarsel!
De reelle og virtuelle IP-adresser for noderne i PostgreSQL-clusteret skal alle tilhøre det samme undernet.
Noderne i PostgreSQL-clusteret placeres normalt i LAN'et, så CyberElements Bastion kan få adgang til dem via Edge Gateways.
For bedre at kunne identificere de forskellige maskinadresser benævnes de som følger i dokumentationen:
| Navn på IP-adresse | Betydning |
|---|---|
RIP_PSQL_1 |
Reel IP-adresse for PostgreSQL-node nr. 1. |
RIP_PSQL_2 |
Reel IP-adresse for PostgreSQL-node nr. 2. |
RIP_PSQL_3 |
Reel IP-adresse for PostgreSQL-node nr. 3. |
VIP_PSQL |
Virtuel IP-adresse for PostgreSQL-clusteret. |
| Kilde | Destination | Destinationsport | Kommentarer |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Debian-repositories | TCP 80 | Påkrævet for at installere afhængighederne til CyberElements Bastion og holde systemet opdateret. Dokumentationen og de virtuelle appliances bruger ftp.fr.debian.org og security.debian.org. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
DNS-server | UDP 53 | Påkrævet til DNS-opløsning. Valgfri, hvis en DNS-server er tilgængelig på LAN'et eller i DMZ'en. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
NTP-tidsserver | UDP 123 | Valgfri, hvis serveren skal synkronisere sit ur med en server på LAN'et eller i DMZ'en. Som standard bruges Debian-poolene: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org og 3.debian.pool.ntp.org. |
| Kilde | Destination | Destinationsport | Kommentarer |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2379 | Port, der bruges til clusterets drift, og som ETCD lytter på. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2380 | Port, der bruges til clusterets drift, og som ETCD lytter på. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | SQL-forbindelsesport, som PostgreSQL lytter på (standardporten kan ændres). |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 8008 | Port, der bruges til clusterets drift, og som Patroni lytter på. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
DNS-server | UDP 53 | Påkrævet til DNS-opløsning. Valgfri, hvis en DNS-server er tilgængelig på WAN'et eller i DMZ'en. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
NTP-tidsserver | UDP 123 | Valgfri, hvis serveren skal synkronisere sit ur med en server på WAN'et eller i DMZ'en. Som standard bruges Debian-poolene: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org og 3.debian.pool.ntp.org. |
| IP-adresser eller netværksområde for administrationsarbejdsstationer | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 22 | Port til fjernadministration via SSH. |
| IP-adresser eller netværksområde for administrationsarbejdsstationer | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | SQL-forbindelsesport, der bruges af PostgreSQL (standardporten kan ændres). |
| IP-adresser eller netværksområde for administrationsarbejdsstationer | VIP_PSQL |
TCP 5432 | SQL-forbindelsesport, der bruges af PostgreSQL (standardporten kan ændres). |
| IP-adresser på de Edge Gateways, der skal have adgang til PostgreSQL-clusteret | VIP_PSQL |
TCP 5432 | SQL-forbindelsesport, der bruges af PostgreSQL (standardporten kan ændres). |
Certifikater¶
PostgreSQL-clusteret krypterer kommunikationsstrømmene mellem sine noder, både til clusterets drift og til SQL-forbindelserne. Der er tale om en TLS-kryptering, som kræver brug af certifikater.
Oplysningerne nedenfor opsummerer de indstillinger og valgmuligheder, der kræves til certifikaterne til PostgreSQL-clusteret.
Sikkerhedskrav til certifikatet
Uanset hvilket certifikat der bruges, skal du sikre dig, at det overholder OpenSSL sikkerhedsniveau 2, som kan opsummeres som følger:
- Certifikatet og certifikaterne fra dets certificeringsmyndigheder skal have en privat nøgle på mindst 2048 bit med krypteringerne RSA, DSA og DH; for nøgler med elliptiske kurver (ECC) skal de være på mindst 224 bit.
- Certifikatets signatur må ikke være MD5 eller SHA-1 (SHA-512 foretrækkes).
Hver PostgreSQL-node bruger et enkelt certifikat, men skal også importere certifikatet fra rodcertificeringsmyndigheden (CA).
Rod-CA'en forventes i crt-format med base64-kodning.
Certifikatet til PostgreSQL-noden skal overholde følgende indstillinger:
- Den hashfunktion, der bruges til signaturen, skal tilhøre SHA-2-familien; vi anbefaler SHA-512.
- Certifikatet og certifikaterne fra dets certificeringsmyndigheder skal have en privat nøgle på mindst 2048 bit med RSA-, DSA- og DH-kryptering; for nøgler med elliptiske kurver (ECC) skal de være på mindst 224 bit. Vi anbefaler en størrelse på 4096 bit til RSA og ECDSA-kurven secp384r1 med en størrelse på 384 bit.
- Attributten
Common Nameskal have serverens korte navn som værdi (angivelse af FQDN'et medfører fejl). - Attributten
Key Usageskal have værdiernecritical,digitalSignatureogkeyEncipherment. - Attributten
Extended Key Usageskal have værdierneserverAuthogclientAuth. - Attributten
Subject Alternative Nameskal defineres, så den dækker:- Navnet på den PostgreSQL-node, der er knyttet til den reelle IP-adresse
- Navnet på det PostgreSQL-cluster, der er knyttet til den virtuelle IP-adresse
- PostgreSQL-nodens reelle IP-adresse
- PostgreSQL-clusterets virtuelle IP-adresse
Forventet certifikatformat: P12.