Manual para agregar una IP VIP en Patroni para PostgreSQL en Alta Disponibilidad

Introducción

Este manual forma parte de nuestra serie de manuales dedicada a la Instalación y Configuración de PostgreSQL en Alta Disponibilidad (HA) utilizando Patroni y etcd. En este documento específico, explicaremos cómo añadir una IP VIP (Virtual IP) a un clúster de Patroni, lo que permitirá que una dirección IP flotante se asocie al nodo líder del clúster de PostgreSQL, mejorando la alta disponibilidad y la resiliencia del servicio.

En un entorno de alta disponibilidad, especialmente en soluciones de bases de datos como PostgreSQL, la capacidad de asegurar que la IP del nodo líder sea accesible desde los clientes es esencial. Usar una IP VIP en un sistema de alta disponibilidad permite que la IP asociada con el nodo activo cambie dinámicamente en caso de un failover, asegurando que los clientes siempre puedan conectarse al nodo que esté proporcionando el servicio.

Leer más

Manual de Instalación de PostgreSQL en Alta Disponibilidad con Patroni y etcd

1. Introducción

Este manual está diseñado para guiarte a través del proceso de instalación y configuración de una base de datos PostgreSQL en alta disponibilidad utilizando Patroni y etcd como servicio de coordinación. Patroni facilita la gestión del clúster de bases de datos PostgreSQL y asegura la conmutación por error automática, mientras que etcd proporciona la sincronización de la configuración entre los nodos del clúster.

Este tipo de configuración es ideal para entornos de producción donde se necesita garantizar alta disponibilidad y resistencia ante fallos de nodo.

2. Requisitos Previos

Antes de comenzar con la instalación, asegúrate de cumplir con los siguientes requisitos previos:

  • Sistema Operativo: GNU/Linux (En este caso emplearemos Debian).
  • Privilegios de root: Acceso a una cuenta con permisos de superusuario para realizar instalaciones y configuraciones del sistema.
  • Red: Tres servidores (o más) en la misma red con direcciones IP estáticas.
  • Conectividad SSH: Asegúrate de que todos los nodos puedan comunicarse entre sí mediante SSH.
  • Dependencias: Necesitarás herramientas como curl, wget, y otros paquetes necesarios para descargar e instalar componentes.

2.1 Elección de la Cantidad de Nodos en Alta Disponibilidad

Cuando se configura un clúster de PostgreSQL en alta disponibilidad con Patroni y etcd, una de las decisiones clave es el número de nodos que formarán parte del clúster. La cantidad de nodos tiene un impacto directo en la tolerancia a fallos, la capacidad de realizar conmutaciones por error y la disponibilidad general del sistema. A continuación, explicamos cómo calcular el número adecuado de nodos y por qué se recomienda utilizar un número impar de nodos en algunos casos.

¿Cuántos Nodos Necesito?

El número mínimo recomendado para configurar un clúster de alta disponibilidad es de tres nodos. Este número de nodos asegura que el sistema sea lo suficientemente robusto como para tolerar fallos de al menos un nodo sin que se pierda la disponibilidad o el consenso en el clúster.

Para calcular el número de nodos necesarios en un clúster con etcd, se sigue una fórmula relacionada con el quorum. El quorum es la cantidad mínima de nodos que deben estar disponibles para que el sistema tome decisiones de manera confiable. Esta fórmula es la siguiente:

quorum=nodos2+1quorum = \frac{nodos}{2} + 1

Por ejemplo:

  • Con 3 nodos: el quorum es de 2 nodos, lo que permite que el sistema siga funcionando si uno de los nodos falla.
  • Con 5 nodos: el quorum es de 3 nodos, permitiendo que el sistema siga operativo incluso si dos nodos fallan.
  • Con 7 nodos: el quorum es de 4 nodos, lo que permite una mayor tolerancia a fallos.

¿Por qué es importante tener un número impar de nodos?

El uso de un número impar de nodos es fundamental cuando se utilizan tecnologías de consenso, como etcd o Raft, que son responsables de mantener la consistencia de los datos en el clúster. Esto se debe a que el consenso depende de un proceso de votación entre los nodos para tomar decisiones. Si hay un número par de nodos, existe el riesgo de que no se pueda alcanzar un consenso en caso de un fallo, ya que no se podría determinar qué nodo tiene la mayoría.

Por ejemplo:

  • Si el clúster tiene 2 nodos y uno de ellos falla, el otro nodo quedaría sin quorum, ya que no puede decidir por sí mismo si el nodo caído debe ser promovido o no.
  • Con 3 nodos, si uno falla, los otros dos pueden seguir trabajando y decidir qué hacer con el nodo caído.

Por lo tanto, siempre que se utilicen servicios de coordinación y consenso (como etcd o Consul), es recomendable tener un número impar de nodos en el clúster para garantizar que siempre se pueda alcanzar el quorum y evitar problemas de «split-brain» (división del clúster).

¿Cuándo se podrían usar nodos pares?

En algunos casos, los nodos pares pueden ser adecuados, pero solo para ciertos tipos de servicios que no dependen de un proceso de consenso, como en la distribución de carga o en clústeres de Kubernetes donde los nodos de worker no participan en decisiones críticas de consenso. Algunos ejemplos de estos casos son:

  • Balanceadores de carga: En servicios como HAProxy o NGINX, los nodos de balanceo pueden ser pares, ya que su objetivo es distribuir el tráfico sin necesidad de consenso.
  • Servidores de aplicaciones: Si el servicio solo necesita alta disponibilidad pero no se requiere un proceso de consenso entre los nodos, los nodos de aplicaciones pueden ser pares.

Resumen

  • Para clústeres de alta disponibilidad que utilizan Patroni y etcd, 3 nodos es el mínimo recomendado, y se debe utilizar un número impar para garantizar el consenso y la disponibilidad en caso de fallos.
  • 5 nodos es ideal para entornos más grandes o donde se espera una mayor carga, ya que proporciona más tolerancia a fallos.
  • El número de nodos puede ser par en servicios que no requieren consenso, como balanceadores de carga o servidores de aplicaciones.
Leer más

Implementación de FreeIPA en Rocky Linux: Configuración de Servidor Principal y Réplica para Alta Disponibilidad

Introducción

FreeIPA (Identity, Policy, and Audit) es una solución de gestión de identidad y autenticación que proporciona una implementación centralizada de Kerberos, LDAP, DNS y políticas de acceso. Su arquitectura permite desplegar un servidor maestro y configurar réplicas para mejorar la disponibilidad y resiliencia del sistema.

Este documento describe el proceso completo de instalación y configuración de un servidor FreeIPA maestro, así como la implementación de una réplica para asegurar redundancia y balanceo de carga en la infraestructura.

1. Objetivo del documento

  • Parte 1: Instalación y configuración de FreeIPA en el servidor maestro.
  • Parte 2: Configuración de una réplica para garantizar la continuidad del servicio y la sincronización de datos entre servidores.

1.1. Arquitectura de FreeIPA

La configuración de FreeIPA sigue un modelo jerárquico donde un servidor maestro administra la base de datos LDAP y proporciona servicios centrales de autenticación. Las réplicas permiten la distribución de cargas y aseguran la disponibilidad del servicio en caso de fallos del nodo principal.

1.2 Componentes clave de FreeIPA:

  1. LDAP (389 Directory Server): Almacena la información de usuarios, grupos y políticas de acceso.
  2. Kerberos: Proporciona autenticación segura basada en tickets.
  3. DNS: Gestiona la resolución de nombres y permite la integración con Kerberos.
  4. Certificados (Dogtag CA): Maneja la autoridad certificadora para la infraestructura de claves públicas (PKI).
Leer más

Fixing the Brave Repository Error on i386 Architecture

Introducción

Si utilizas Debian, Ubuntu, Linux Mint u otra distribución basada en estas y has instalado el navegador Brave desde su repositorio oficial, es posible que te hayas encontrado con un error al actualizar la lista de paquetes. Este problema ocurre porque el repositorio de Brave no es compatible con la arquitectura i386 (32 bits), lo que genera advertencias cada vez que intentas actualizar el sistema.

Afortunadamente, este problema tiene una solución sencilla: indicarle al gestor de paquetes que solo descargue archivos para la arquitectura amd64 (64 bits). En esta guía, te explicaremos paso a paso cómo corregir este error y evitar que vuelva a aparecer en futuras actualizaciones.

Leer más

Actualización masiva de tags en Azure utilizando PowerShell

Introducción

En este artículo, exploraremos un script de PowerShell que permite actualizar etiquetas en un grupo de recursos y en todos los recursos dentro de dicho grupo en Azure. A continuación, detallaremos cómo funciona cada parte del script, qué hace cada comando y cómo puedes adaptarlo a tus necesidades.Objetivo del script

Este script tiene como objetivo actualizar o agregar una etiqueta específica (en este caso, «ID») con un valor definido en un grupo de recursos y en todos los recursos dentro de ese grupo. Esto es útil cuando necesitas mantener una estructura de etiquetado uniforme y coherente a través de múltiples recursos en un grupo de Azure.

Leer más

Cyberdefenders – FakeGPT Lab writeup

Instructions:

  • Uncompress the lab (pass: cyberdefenders.org)

Scenario:

Your cybersecurity team has been alerted to suspicious activity on your organization’s network. Several employees reported unusual behavior in their browsers after installing what they believed to be a helpful browser extension named «ChatGPT». However, strange things started happening: accounts were being compromised, and sensitive information appeared to be leaking.

Your task is to perform a thorough analysis of this extension identify its malicious components.

Leer más

Implementación Automática de la Extensión AADLoginForLinux en Azure Arc mediante Azure Policy

Introducción

Esta documentación proporciona una guía paso a paso para crear y asignar una política personalizada de Azure destinada a implementar la extensión AADLoginForLinux en máquinas Linux habilitadas con Azure Arc. La política asegura que la extensión se aplique automáticamente para habilitar el inicio de sesión basado en Microsoft Entra ID, mejorando las capacidades de autenticación y administración.

Siguiendo esta guía, podrás:

  • Crear una política personalizada en Azure Policy para automatizar la implementación de la extensión AADLoginForLinux.
  • Asignar la política a grupos de recursos o suscripciones específicas.
  • Entender y resolver errores comunes relacionados con el acceso basado en roles en Microsoft Entra ID.
Leer más

HackTheBox – Chemistry Writeup

Introducción

Este documento detalla el proceso paso a paso para explotar la máquina Chemistry de Hack The Box. A lo largo del análisis, se emplearon diversas herramientas y técnicas, comenzando con la enumeración inicial, el análisis de vulnerabilidades, y culminando con la obtención de acceso root.

El propósito es proporcionar una guía detallada y reproducible, destacando los bugs encontrados, las técnicas utilizadas, y los comandos ejecutados en cada etapa del proceso.

Herramientas Utilizadas:

  • CURL: Utilizado con la opción --path-as-is para explotar la vulnerabilidad y acceder a archivos arbitrarios en el sistema objetivo.
  • John the Ripper: Intentado para crackear las contraseñas contenidas en /etc/shadow (sin éxito).
Leer más

HackTheBox – Cicada Writeup

Introducción

Este documento detalla el proceso paso a paso para explotar la máquina Cicada en Hack The Box. Se incluyen todas las herramientas y técnicas empleadas, desde la enumeración inicial hasta la obtención de la flag de administrador.

Herramientas Utilizadas:

  • nmap: herramienta de código abierto utilizada para el escaneo y mapeo de redes.
  • enum4linux: Herramienta de auditoría de redes para obtener información sobre sistemas Windows a través del protocolo SMB. Permite la enumeración de usuarios, grupos, políticas y otras configuraciones importantes de un dominio.
  • CrackMapExec (CME): Herramienta de post-explotación que facilita la administración de redes de Windows. Se utiliza para realizar tareas como la enumeración de usuarios, la ejecución remota de comandos, y la explotación de vulnerabilidades en una red comprometida mediante SMB, RDP, WinRM, entre otros.
  • Evil-WinRM: Herramienta de post-explotación que permite interactuar con sistemas Windows de forma remota a través de PowerShell utilizando el protocolo WinRM.
  • Mimikatz: Herramienta de seguridad utilizada para obtener contraseñas y hashes de usuarios de un sistema Windows, así como para manipular credenciales.
  • pypykatz: Herramienta basada en Python para extraer y analizar contraseñas de archivos SAM y SYSTEM de Windows sin necesidad de estar en un entorno de ejecución de Windows.
  • samdump2: Herramienta de línea de comandos utilizada para extraer contraseñas o hashes de los archivos SAM y SYSTEM de Windows.
Leer más

HackTheBox – GreenHorn Writeup

Introducción

Este documento detalla el proceso paso a paso para explotar la máquina GreenHorn de Hack The Box. Se incluyen todas las herramientas y técnicas utilizadas, desde la enumeración inicial hasta la obtención de acceso root.

El objetivo es mostrar cómo se realizó la explotación de manera práctica y reproducible, destacando los comandos usados y los resultados obtenidos en cada etapa. 

 

Herramientas Utilizadas:

  • Ncat: Para crear un listener en la máquina atacante y recibir conexiones reversas.
  • CrackStation: Para descifrar el hash de la contraseña.
  • Depix: Para procesar una imagen pixelada y extraer el texto oculto.
  • SSH: Para acceder a la máquina como usuario root.
  • Netcat: Para transferir archivos entre las máquinas comprometidas.
Leer más