Requisitos previos¶
Máquina¶
OS¶
El clúster de PostgreSQL que proporciona la appliance se basa en un sistema operativo Debian 12 (bookworm) de 64 bits.
CPU¶
Se recomienda asignar 4 núcleos de CPU por nodo del clúster de PostgreSQL.
RAM¶
Se recomienda asignar 4 GB de RAM por nodo del clúster de PostgreSQL.
Disco¶
La appliance virtual se entrega con un disco virtual de 60 GB.
Red¶
Un clúster de PostgreSQL necesitará 4 direcciones IP:
- 1 dirección IP real por nodo PostgreSQL
- 1 dirección IP virtual para el clúster de PostgreSQL
¡Atención!
Las direcciones IP reales y virtuales de los nodos del clúster de PostgreSQL deben pertenecer todas a la misma subred.
Los nodos del clúster de PostgreSQL suelen situarse en la LAN para que CyberElements Bastion acceda a ellos a través de las Edge Gateways.
Para identificar mejor las distintas direcciones de las máquinas, en la documentación se designarán de la siguiente manera:
| Nombre de la dirección IP | Significado |
|---|---|
RIP_PSQL_1 |
Dirección IP real del nodo PostgreSQL n°1. |
RIP_PSQL_2 |
Dirección IP real del nodo PostgreSQL n°2. |
RIP_PSQL_3 |
Dirección IP real del nodo PostgreSQL n°3. |
VIP_PSQL |
Dirección IP virtual del clúster de PostgreSQL. |
| Origen | Destino | Puerto de destino | Comentarios |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Repositorios Debian | TCP 80 | Necesario para instalar las dependencias de CyberElements Bastion y mantener el sistema actualizado. La documentación y las appliances virtuales utilizan ftp.fr.debian.org y security.debian.org. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Servidor DNS | UDP 53 | Necesario para la resolución DNS. Opcional si hay un servidor DNS disponible en la LAN o la DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Servidor de tiempo NTP | UDP 123 | Opcional si el servidor debe sincronizar su reloj con un servidor situado en la LAN o la DMZ. De forma predeterminada, se utilizan los pools de Debian: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org y 3.debian.pool.ntp.org. |
| Origen | Destino | Puerto de destino | Comentarios |
|---|---|---|---|
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2379 | Puerto utilizado para el funcionamiento del clúster y escuchado por ETCD. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 2380 | Puerto utilizado para el funcionamiento del clúster y escuchado por ETCD. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Puerto de conexión SQL utilizado por PostgreSQL (el puerto predeterminado puede modificarse). |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 8008 | Puerto utilizado para el funcionamiento del clúster y escuchado por Patroni. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Servidor DNS | UDP 53 | Necesario para la resolución DNS. Opcional si hay un servidor DNS disponible en la WAN o la DMZ. |
RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
Servidor de tiempo NTP | UDP 123 | Opcional si el servidor debe sincronizar su reloj con un servidor situado en la WAN o la DMZ. De forma predeterminada, se utilizan los pools de Debian: 0.debian.pool.ntp.org, 1.debian.pool.ntp.org, 2.debian.pool.ntp.org y 3.debian.pool.ntp.org. |
| Direcciones IP o rango de red de los puestos de administración | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 22 | Puerto de administración remota SSH. |
| Direcciones IP o rango de red de los puestos de administración | RIP_PSQL_1RIP_PSQL_2RIP_PSQL_3 |
TCP 5432 | Puerto de conexión SQL utilizado por PostgreSQL (el puerto predeterminado puede modificarse). |
| Direcciones IP o rango de red de los puestos de administración | VIP_PSQL |
TCP 5432 | Puerto de conexión SQL utilizado por PostgreSQL (el puerto predeterminado puede modificarse). |
| Direcciones IP de las Edge Gateways que deben acceder al clúster de PostgreSQL | VIP_PSQL |
TCP 5432 | Puerto de conexión SQL utilizado por PostgreSQL (el puerto predeterminado puede modificarse). |
Certificados¶
El clúster de PostgreSQL cifra los flujos de comunicación entre sus nodos, tanto para el funcionamiento del clúster como para las conexiones SQL. Se trata de un cifrado TLS, que exige el uso de certificados.
La información siguiente resume los parámetros y las opciones necesarios para los certificados del clúster de PostgreSQL.
Constraint de seguridad del certificado
Independientemente del certificado utilizado, asegúrese de que cumple con el nivel de seguridad OpenSSL 2, que puede resumirse de la siguiente manera:
- El certificado y los certificados de sus autoridades de certificación deberán tener una clave privada de al menos 2048 bits con cifrado RSA, DSA y DH; en el caso de las claves de curva elíptica (ECC), deberán tener al menos 224 bits.
- La firma del certificado no debe ser MD5 o SHA-1 (se prefiere SHA-512).
Cada nodo PostgreSQL utilizará un único certificado, pero también deberá importar el certificado de la autoridad de certificación (CA) raíz.
Se espera que la CA raíz esté en formato crt codificado en base64.
El certificado del nodo PostgreSQL debe cumplir los siguientes parámetros:
- La función hash utilizada para la firma debe pertenecer a la familia SHA-2; se recomienda SHA-512.
- El certificado y los certificados de sus autoridades de certificación deben tener una clave privada de al menos 2048 bits con cifrado RSA, DSA y DH; en el caso de las claves de curva elíptica (ECC), deben ser de al menos 224 bits. Se recomienda un tamaño de 4096 bits para RSA y la curva ECDSA secp384r1 con un tamaño de 384 bits.
- El atributo
Common Namedebe tener como valor el nombre corto del servidor (indicar el FQDN provocará fallos). - El atributo
Key Usagedebe tener los valorescritical,digitalSignatureykeyEncipherment. - El atributo
Extended Key Usagedebe tener los valoresserverAuthyclientAuth. - El atributo
Subject Alternative Namedebe definirse para cubrir:- El nombre del nodo PostgreSQL asociado a la dirección IP real
- El nombre del clúster de PostgreSQL asociado a la dirección IP virtual
- La dirección IP real del nodo PostgreSQL
- La dirección IP virtual del clúster de PostgreSQL
Formato de certificado esperado: P12.