Pré-requisitos¶
Máquina¶
OS¶
O cluster PostgreSQL fornecido pela appliance baseia-se num sistema operativo Debian 12 (bookworm) de 64 bits.
CPU¶
Recomenda-se atribuir 4 núcleos de CPU por nó do cluster PostgreSQL.
RAM¶
Recomenda-se atribuir 4 GB de RAM por nó do cluster PostgreSQL.
Disco¶
A appliance virtual é fornecida com um disco virtual de 60 GB.
Rede¶
Um cluster PostgreSQL necessitará de 4 endereços IP:
- 1 endereço IP real por nó PostgreSQL
- 1 endereço IP virtual para o cluster PostgreSQL
Atenção!
Os endereços IP reais e virtuais dos nós do cluster PostgreSQL devem pertencer todos à mesma sub-rede.
Os nós do cluster PostgreSQL são normalmente colocados na LAN para que o CyberElements Bastion lhes possa aceder através dos Edge Gateway.
Para identificar melhor os diferentes endereços das máquinas, serão designados da seguinte forma na documentação:
| Nome do endereço IP | Significado |
|---|---|
RIP_PSQL_1 |
Endereço IP real do nó PostgreSQL n.º 1. |
RIP_PSQL_2 |
Endereço IP real do nó PostgreSQL n.º 2. |
RIP_PSQL_3 |
Endereço IP real do nó PostgreSQL n.º 3. |
VIP_PSQL |
Endereço IP virtual do cluster PostgreSQL. |
| Origem | Destino | Porta de destino | Comentários |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Repositórios Debian | TCP 80 | Necessário para instalar as dependências do CyberElements Bastion e manter o sistema atualizado. A documentação e as appliances virtuais utilizam ftp.fr.debian.org e security.debian.org. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Servidor DNS | UDP 53 | Necessário para a resolução DNS. Opcional se estiver disponível um servidor DNS na LAN ou na DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Servidor de tempo NTP | UDP 123 | Opcional se o servidor tiver de sincronizar o seu relógio com um servidor situado na LAN ou na DMZ. Por predefinição, são utilizados os pools da Debian: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org e 3.debian.pool.ntp.org. |
| Origem | Destino | Porta de destino | Comentários |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2379 | Porta utilizada para o funcionamento do cluster e escutada pelo ETCD. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2380 | Porta utilizada para o funcionamento do cluster e escutada pelo ETCD. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Porta de ligação SQL utilizada pelo PostgreSQL (a porta predefinida pode ser alterada). |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 8008 | Porta utilizada para o funcionamento do cluster e escutada pelo Patroni. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Servidor DNS | UDP 53 | Necessário para a resolução DNS. Opcional se estiver disponível um servidor DNS na WAN ou na DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Servidor de tempo NTP | UDP 123 | Opcional se o servidor precisar de sincronizar o seu relógio com um servidor situado na WAN ou na DMZ. Por predefinição, são utilizados os pools da Debian: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org e 3.debian.pool.ntp.org. |
| Endereços IP ou intervalo de rede dos postos de trabalho de administração | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 22 | Porta de administração remota SSH. |
| Endereços IP ou intervalo de rede dos postos de trabalho de administração | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Porta de ligação SQL utilizada pelo PostgreSQL (a porta predefinida pode ser alterada). |
| Endereços IP ou intervalo de rede dos postos de trabalho de administração | VIP_PSQL |
TCP 5432 | Porta de ligação SQL utilizada pelo PostgreSQL (a porta predefinida pode ser alterada). |
| Endereços IP dos Edge Gateway que precisam de aceder ao cluster PostgreSQL | VIP_PSQL |
TCP 5432 | Porta de ligação SQL utilizada pelo PostgreSQL (a porta predefinida pode ser alterada). |
Certificados¶
O cluster PostgreSQL cifra os fluxos de comunicação entre os seus nós, tanto para o funcionamento do cluster como para as ligações SQL. Trata-se de uma cifragem TLS, que exige a utilização de certificados.
As informações abaixo resumem as definições e as opções necessárias para os certificados do cluster PostgreSQL.
Restrição de segurança do certificado
Independentemente do certificado utilizado, verifique se cumpre o nível de segurança 2 do OpenSSL, que se pode resumir da seguinte forma:
- O certificado e os certificados das suas autoridades de certificação devem ter uma chave privada de, no mínimo, 2048 bits com cifragem RSA, DSA e DH; nas chaves de curva elíptica (ECC), devem ter no mínimo 224 bits.
- A assinatura do certificado não deve ser MD5 nem SHA-1 (é preferível SHA-512).
Cada nó PostgreSQL utilizará um único certificado, mas também terá de importar o certificado da autoridade de certificação (CA) raiz.
Espera-se que a CA raiz esteja no formato crt codificado em base64.
O certificado do nó PostgreSQL deve cumprir as seguintes definições:
- A função de hash utilizada para a assinatura deve pertencer à família SHA-2; recomendamos SHA-512.
- O certificado e os certificados das suas autoridades de certificação devem ter uma chave privada de, no mínimo, 2048 bits com cifragem RSA, DSA e DH; no caso das chaves de curva elíptica (ECC), devem ter, no mínimo, 224 bits. Recomendamos um tamanho de 4096 bits para RSA e a curva ECDSA secp384r1 com um tamanho de 384 bits.
- O atributo
Common Namedeve ter como valor o nome curto do servidor (indicar o FQDN provocará falhas). - O atributo
Key Usagedeve ter os valorescritical,digitalSignatureekeyEncipherment. - O atributo
Extended Key Usagedeve ter os valoresserverAutheclientAuth. - O atributo
Subject Alternative Namedeve ser definido de modo a cobrir:- O nome do nó PostgreSQL associado ao endereço IP real
- O nome do cluster PostgreSQL associado ao endereço IP virtual
- O endereço IP real do nó PostgreSQL
- O endereço IP virtual do cluster PostgreSQL
Formato de certificado esperado: P12.