Ir para o conteúdo

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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 2379 Porta utilizada para o funcionamento do cluster e escutada pelo ETCD.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 2380 Porta utilizada para o funcionamento do cluster e escutada pelo ETCD.
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 5432 Porta de ligação SQL utilizada pelo PostgreSQL (a porta predefinida pode ser alterada).
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
RIP_PSQL_1
RIP_PSQL_2
RIP_PSQL_3
TCP 8008 Porta utilizada para o funcionamento do cluster e escutada pelo Patroni.
RIP_PSQL_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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_1
RIP_PSQL_2
RIP_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 Name deve ter como valor o nome curto do servidor (indicar o FQDN provocará falhas).
  • O atributo Key Usage deve ter os valores critical, digitalSignature e keyEncipherment.
  • O atributo Extended Key Usage deve ter os valores serverAuth e clientAuth.
  • O atributo Subject Alternative Name deve 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.