Wymagania wstępne¶
Maszyna¶
OS¶
Cluster PostgreSQL dostarczany przez appliance opiera się na 64-bitowym systemie operacyjnym Debian 12 (bookworm).
CPU¶
Zaleca się przydzielenie 4 rdzeni CPU na węzeł clustera PostgreSQL.
RAM¶
Zaleca się przydzielenie 4 GB pamięci RAM na węzeł clustera PostgreSQL.
Dysk¶
Wirtualna appliance jest dostarczana z dyskiem wirtualnym o pojemności 60 GB.
Sieć¶
Cluster PostgreSQL będzie wymagać 4 adresów IP:
- 1 rzeczywisty adres IP na węzeł PostgreSQL
- 1 wirtualny adres IP dla clustera PostgreSQL
Ostrzeżenie!
Rzeczywiste i wirtualne adresy IP węzłów clustera PostgreSQL muszą wszystkie należeć do tej samej podsieci.
Węzły clustera PostgreSQL są zwykle umieszczane w sieci LAN, aby CyberElements Bastion uzyskiwał do nich dostęp przez serwery Edge Gateway.
Aby lepiej rozróżnić poszczególne adresy maszyn, w dokumentacji będą one nazywane następująco:
| Nazwa adresu IP | Znaczenie |
|---|---|
RIP_PSQL_1 |
Rzeczywisty adres IP węzła PostgreSQL nr 1. |
RIP_PSQL_2 |
Rzeczywisty adres IP węzła PostgreSQL nr 2. |
RIP_PSQL_3 |
Rzeczywisty adres IP węzła PostgreSQL nr 3. |
VIP_PSQL |
Wirtualny adres IP clustera PostgreSQL. |
| Źródło | Cel | Port docelowy | Uwagi |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Repozytoria Debiana | TCP 80 | Wymagane do instalacji zależności CyberElements Bastion i utrzymywania systemu w aktualnym stanie. Dokumentacja i wirtualne appliance używają ftp.fr.debian.org oraz security.debian.org. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Serwer DNS | UDP 53 | Wymagane do rozwiązywania nazw DNS. Opcjonalne, jeśli serwer DNS jest dostępny w sieci LAN lub DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Serwer czasu NTP | UDP 123 | Opcjonalne, jeśli serwer musi synchronizować swój zegar z serwerem w sieci LAN lub DMZ. Domyślnie używane są pule Debiana: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org i 3.debian.pool.ntp.org. |
| Źródło | Cel | Port docelowy | Uwagi |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2379 | Port używany do działania clustera, nasłuchiwany przez ETCD. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2380 | Port używany do działania clustera, nasłuchiwany przez ETCD. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Port połączeń SQL obsługiwany przez PostgreSQL (port domyślny można zmienić). |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 8008 | Port używany do działania clustera, nasłuchiwany przez Patroni. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Serwer DNS | UDP 53 | Wymagane do rozwiązywania nazw DNS. Opcjonalne, jeśli serwer DNS jest dostępny w sieci WAN lub DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Serwer czasu NTP | UDP 123 | Opcjonalne, jeśli serwer musi synchronizować swój zegar z serwerem w sieci WAN lub DMZ. Domyślnie używane są pule Debiana: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org i 3.debian.pool.ntp.org. |
| Adresy IP lub zakres sieci stacji roboczych administracyjnych | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 22 | Port zdalnej administracji przez SSH. |
| Adresy IP lub zakres sieci stacji roboczych administracyjnych | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Port połączeń SQL używany przez PostgreSQL (port domyślny można zmienić). |
| Adresy IP lub zakres sieci stacji roboczych administracyjnych | VIP_PSQL |
TCP 5432 | Port połączeń SQL używany przez PostgreSQL (port domyślny można zmienić). |
| Adresy IP serwerów Edge Gateway, które muszą mieć dostęp do clustera PostgreSQL | VIP_PSQL |
TCP 5432 | Port połączeń SQL używany przez PostgreSQL (port domyślny można zmienić). |
Certyfikaty¶
Cluster PostgreSQL szyfruje strumienie komunikacji między swoimi węzłami, zarówno na potrzeby działania clustera, jak i połączeń SQL. Jest to szyfrowanie TLS, które wymaga użycia certyfikatów.
Poniższe informacje podsumowują ustawienia i opcje wymagane dla certyfikatów clustera PostgreSQL.
Wymóg bezpieczeństwa certyfikatu
Niezależnie od użytego certyfikatu upewnij się, że jest zgodny z poziomem bezpieczeństwa 2 OpenSSL, co można podsumować następująco:
- Certyfikat oraz certyfikaty jego urzędów certyfikacji muszą mieć klucz prywatny o długości co najmniej 2048 bitów przy szyfrowaniu RSA, DSA i DH; w przypadku kluczy na krzywych eliptycznych (ECC) muszą mieć co najmniej 224 bity.
- Podpis certyfikatu nie może być MD5 ani SHA-1 (preferowany jest SHA-512).
Każdy węzeł PostgreSQL będzie używać jednego certyfikatu, ale będzie też musiał zaimportować certyfikat głównego urzędu certyfikacji (CA).
Główny CA jest oczekiwany w formacie crt z kodowaniem base64.
Certyfikat węzła PostgreSQL musi spełniać następujące ustawienia:
- Funkcja skrótu użyta do podpisu musi należeć do rodziny SHA-2; zalecamy SHA-512.
- Certyfikat i certyfikaty jego urzędów certyfikacji muszą mieć klucz prywatny o długości co najmniej 2048 bitów przy szyfrowaniu RSA, DSA i DH; w przypadku kluczy na krzywych eliptycznych (ECC) muszą mieć co najmniej 224 bity. Zalecamy rozmiar 4096 bitów dla RSA oraz krzywą ECDSA secp384r1 o rozmiarze 384 bitów.
- Atrybut
Common Namemusi mieć jako wartość krótką nazwę serwera (podanie FQDN spowoduje błędy). - Atrybut
Key Usagemusi mieć wartościcritical,digitalSignatureikeyEncipherment. - Atrybut
Extended Key Usagemusi mieć wartościserverAuthiclientAuth. - Atrybut
Subject Alternative Namemusi być zdefiniowany tak, aby obejmował:- Nazwę węzła PostgreSQL powiązaną z rzeczywistym adresem IP
- Nazwę clustera PostgreSQL powiązaną z wirtualnym adresem IP
- Rzeczywisty adres IP węzła PostgreSQL
- Wirtualny adres IP clustera PostgreSQL
Oczekiwany format certyfikatu: P12.