Voorwaarden¶
Machine¶
OS¶
Het PostgreSQL-cluster dat door de appliance wordt geleverd, is gebaseerd op een 64-bits besturingssysteem Debian 12 (bookworm).
CPU¶
Het wordt aanbevolen 4 CPU-cores per node van het PostgreSQL-cluster toe te wijzen.
RAM¶
Het wordt aanbevolen 4 GB RAM per node van het PostgreSQL-cluster toe te wijzen.
Schijf¶
De virtuele appliance wordt geleverd met een virtuele schijf van 60 GB.
Netwerk¶
Een PostgreSQL-cluster heeft 4 IP-adressen nodig:
- 1 reëel IP-adres per PostgreSQL-node
- 1 virtueel IP-adres voor het PostgreSQL-cluster
Waarschuwing!
De reële en virtuele IP-adressen van de nodes van het PostgreSQL-cluster moeten alle tot hetzelfde subnet behoren.
De nodes van het PostgreSQL-cluster worden meestal in het LAN geplaatst, zodat CyberElements Bastion er via de Edge Gateways toegang tot heeft.
Om de verschillende adressen van de machines beter te kunnen onderscheiden, worden ze in de documentatie als volgt aangeduid:
| Naam van het IP-adres | Betekenis |
|---|---|
RIP_PSQL_1 |
Reëel IP-adres van PostgreSQL-node nr. 1. |
RIP_PSQL_2 |
Reëel IP-adres van PostgreSQL-node nr. 2. |
RIP_PSQL_3 |
Reëel IP-adres van PostgreSQL-node nr. 3. |
VIP_PSQL |
Virtueel IP-adres van het PostgreSQL-cluster. |
| Bron | Bestemming | Bestemmingspoort | Opmerkingen |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Debian-repositories | TCP 80 | Vereist om de afhankelijkheden van CyberElements Bastion te installeren en het systeem actueel te houden. De documentatie en de virtuele appliances gebruiken ftp.fr.debian.org en security.debian.org. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
DNS-server | UDP 53 | Vereist voor de DNS-resolutie. Optioneel als er in het LAN of de DMZ een DNS-server beschikbaar is. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
NTP-tijdserver | UDP 123 | Optioneel als de server zijn klok moet synchroniseren met een server in het LAN of de DMZ. Standaard worden de Debian-pools gebruikt: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org en 3.debian.pool.ntp.org. |
| Bron | Bestemming | Bestemmingspoort | Opmerkingen |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2379 | Poort die wordt gebruikt voor de werking van het cluster en waarop ETCD luistert. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2380 | Poort die wordt gebruikt voor de werking van het cluster en waarop ETCD luistert. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Poort voor de SQL-verbinding waarop PostgreSQL luistert (de standaardpoort kan worden gewijzigd). |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 8008 | Poort die wordt gebruikt voor de werking van het cluster en waarop Patroni luistert. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
DNS-server | UDP 53 | Vereist voor de DNS-resolutie. Optioneel als er in het WAN of de DMZ een DNS-server beschikbaar is. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
NTP-tijdserver | UDP 123 | Optioneel als de server zijn klok moet synchroniseren met een server in het WAN of de DMZ. Standaard worden de Debian-pools gebruikt: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org en 3.debian.pool.ntp.org. |
| IP-adressen of netwerkbereik van de beheerwerkstations | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 22 | Poort voor beheer op afstand via SSH. |
| IP-adressen of netwerkbereik van de beheerwerkstations | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Poort voor de SQL-verbinding die door PostgreSQL wordt gebruikt (de standaardpoort kan worden gewijzigd). |
| IP-adressen of netwerkbereik van de beheerwerkstations | VIP_PSQL |
TCP 5432 | Poort voor de SQL-verbinding die door PostgreSQL wordt gebruikt (de standaardpoort kan worden gewijzigd). |
| IP-adressen van de Edge Gateways die toegang tot het PostgreSQL-cluster moeten hebben | VIP_PSQL |
TCP 5432 | Poort voor de SQL-verbinding die door PostgreSQL wordt gebruikt (de standaardpoort kan worden gewijzigd). |
Certificaten¶
Het PostgreSQL-cluster versleutelt de communicatiestromen tussen zijn nodes, zowel voor de werking van het cluster als voor de SQL-verbindingen. Het gaat om een TLS-versleuteling, waarvoor het gebruik van certificaten nodig is.
De onderstaande informatie vat de instellingen en opties samen die nodig zijn voor de certificaten van het PostgreSQL-cluster.
Beveiligingsvoorwaarde voor het certificaat
Zorg er, ongeacht het gebruikte certificaat, voor dat het voldoet aan OpenSSL-veiligheidsniveau 2, dat als volgt kan worden samengevat:
- Het certificaat en de certificaten van de certificeringsinstanties ervan moeten bij de versleutelingen RSA, DSA en DH een privésleutel van ten minste 2048 bits hebben; bij sleutels met elliptische krommen (ECC) moeten dat ten minste 224 bits zijn.
- De ondertekening van het certificaat mag niet MD5 of SHA-1 zijn (SHA-512 heeft de voorkeur).
Elke PostgreSQL-node gebruikt één enkel certificaat, maar moet ook het certificaat van de root-certificeringsinstantie (CA) importeren.
De root-CA wordt verwacht in het formaat crt met base64-codering.
Het certificaat van de PostgreSQL-node moet aan de volgende instellingen voldoen:
- De voor de ondertekening gebruikte hashfunctie moet tot de familie SHA-2 behoren; wij bevelen SHA-512 aan.
- Het certificaat en de certificaten van de bijbehorende certificeringsinstanties moeten een privésleutel van minstens 2048 bits hebben met RSA-, DSA- en DH-versleuteling; voor sleutels met elliptische krommen (ECC) moeten dat minstens 224 bits zijn. Wij raden een grootte van 4096 bits aan voor RSA en de ECDSA-kromme secp384r1 met een grootte van 384 bits.
- Het attribuut
Common Namemoet als waarde de korte naam van de server hebben (het opgeven van de FQDN veroorzaakt fouten). - Het attribuut
Key Usagemoet de waardencritical,digitalSignatureenkeyEnciphermenthebben. - Het attribuut
Extended Key Usagemoet de waardenserverAuthenclientAuthhebben. - Het attribuut
Subject Alternative Namemoet zo worden gedefinieerd dat het het volgende dekt:- De naam van de PostgreSQL-node die aan het reële IP-adres is gekoppeld
- De naam van het PostgreSQL-cluster dat aan het virtuele IP-adres is gekoppeld
- Het reële IP-adres van de PostgreSQL-node
- Het virtuele IP-adres van het PostgreSQL-cluster
Verwacht certificaatformaat: P12.