Buenas prácticas y tutoriales

Configuración de IPsec para un clúster Couchbase

Introducción

Algunos despliegues de Couchbase requieren comunicaciones seguras entre nodos a través de la red, esto podría ser debido a razones como las políticas de gobierno de datos o el cumplimiento normativo.  Seguridad del protocolo de Internet (IPsec) es un conjunto de protocolos para comunicaciones seguras basadas en el Protocolo de Internet (IP) mediante autenticating y encriptando cada Paquete IP de una sesión de comunicación. IPsec puede utilizarse para proteger los flujos de datos entre un par de hosts (de host a host), entre un par de pasarelas de seguridad (de red a red), o entre una pasarela de seguridad y un host (red a host). El objetivo de este artículo es proporcionar a los administradores de Couchbase una guía rápida sobre cómo configurar IPsec en los nodos de un cluster de Couchbase.  

Modos IPsec

IPSec tiene dos modos: modo túnel y modo transporte. El más utilizado es el modo túnel, que suele usarse para configuraciones VPN (creación de dispositivo de red de túnel en proceso). El modo túnel no es práctico para un clúster Couchbase, ya que requeriría crear y mantener túneles entre todos los pares de nodos.

El modo de transporte es necesario para proteger la comunicación entre nodos de la misma red. Permite el uso de IPsec por paquete. Totalmente transparente para las aplicaciones.

IPSec puede proporcionar autenticación de paquetes (es decir, asegurar que los paquetes que se reciben son paquetes de nodos de confianza) y encriptación de paquetes. El modo de transporte y las entradas asociadas de la Base de Datos de Políticas de Seguridad permiten configurar el comportamiento requerido para un cluster Couchbase:

  • determinados tipos de paquetes entrantes sólo se aceptan si están encapsulados en ipsec y son válidos (se descartan en caso contrario)

  • se requiere que determinados tipos de paquetes salientes se encapsulen en ipsec

Por lo general, "tipo específico" va a ser algo así como: todos los paquetes de/a couchbase cluster segmento de red. O puede ser algo como todo: todos los paquetes hacia/desde los puertos de servicio couchbase.

Requisitos

  • Distribución Linux (para este blog se utiliza Debian). Windows soporta IPsec, esto no fue probado.

  • Linux Openswan U2.6.32/K2.6.32-573.el6.x86_64 (netkey) o superior
  • Couchbase 4.1 o superior
  • Acceso de usuario sudo/root al sistema

Instalación y configuración de OpenSwan

Desde la línea de comandos usando sudo, se ejecutó el siguiente comando en cada nodo. Para otras distribuciones linux utilice su gestor de paquetes apropiado.

# sudo apt-get update

# sudo apt-get install openswan

El instalador puede pedir al usuario que cree un certificado x.509, no cree un certificado x.509. IPsec debe configurarse para el modo de transporte. En el entorno de demostración creado para este blog, tenemos dos nodos: 10.0.2.4 y 10.0.2.5.  

Pasos

1 - En cada nodo - añadir una línea en el archivo /etc/ipsec.secrets: ipaddress_node1 ipaddress_node2: PSK "alguna_clave"

2 - Modifique el archivo /etc/ipsec.conf para utilizar archivos *.conf ubicados en el subdirectorio ipsec.d. Esto permite una fácil automatización si necesitas añadir nodos al cluster. Cada par de nodos necesita su propia entrada.  

3 - Cree un archivo de configuración en el directorio /etc/ipsec.d/ con la siguiente información:

conn couchbase

tipo=transporte

authby=secreto

izquierda=

right=

pfs=sí

auto=inicio

  • conn couchbase -connection: etiqueta arbitraria para su conexión. Puede ser cualquier cosa que desee
  • type=transport: queremos utilizar el modo transporte para esta conexiónauthby=secret: utilizaremos una clave precompartida (PSK) para esta conexión.
  • left=10.0.2.4: esta línea y la siguiente sólo denotan las direcciones IP involucradas en esta asociación IPsec. No importa qué IP es la "izquierda" y cuál es la "derecha".
  • right=10.0.2.5: véase el punto anterior.
  • pfs=yes: queremos activar Perfect Forward Secrecy para esta conexión. En resumen, esto mejora drásticamente la seguridad. Iauto=start: Queremos iniciar proactivamente la asociación IPsec inmediatamente. También se puede configurar como auto=start, en cuyo caso espera a que el otro extremo de la conexión inicie el tráfico.

4 - Habilite IPSec para utilizar la nueva configuración en ambos nodos: #sudo service ipsec restart

Probar la configuración

Desde una línea de comandos en un nodo, escriba el siguiente comando:  

#ping

Desde el otro nodo, utilice la línea de comandos y escriba : (resultado deseado) Si no obtiene ningún mensaje, tendrá que depurar su configuración (consulte las Guías IPsec que se indican a continuación)

#sudo tcpdump esp

Nota: ESP = Encapsulating Security Payload (carga útil de seguridad encapsulada)

Configuración de Couchbase

Instala Couchbase en cada nodo, una configuración simple de dos nodos. Configurar el cluster. Toda la comunicación entre los dos nodos puede ser rastreada usando el comando tcpdump esp, el ejemplo de arriba documenta la comunicación entre dos nodos Couchbase.

Clúster de pruebas de Couchbase:

Couchbase Test Cluster

Captura de pantalla - #sudo tcpdump esp

Referencias

Visión general de IPsec https://en.wikipedia.org/wiki/IPsec

Implementación del modo de transporte IPsec -  https://andersonfam.org/2014/04/02/ipsec-transport-mode/

Uso de StrongSwan (ejemplo de 3 nodos) - https://blog.sprinternet.at/2016/03/ipsec-transport-mode-with-strongswan-on-debian-jessie/

Ejemplos de archivos de configuración utilizados para esta prueba

/etc/ipsec.conf

# /etc/ipsec.conf - Archivo de configuración IPsec de Openswan

#

# Manual: ipsec.conf.5

#

# Por favor, coloque sus propios archivos de configuración en /etc/ipsec.d/ terminando en .conf

versión 2.0       # se ajusta a la segunda versión de la especificación ipsec.conf

Configuración básica del #

configuración

           # Controles de registro de depuración: "ninguno" para (casi) ninguno, "todos" para muchos.

           # klipsdebug=none

           # plutodebug="control parsing"

           # Para Red Hat Enterprise Linux y Fedora, deje protostack=netkey

           protostack=clave de red

           nat_traversal=sí

           virtual_private=

           oe=off

           # Actívalo si ves "no se ha encontrado ningún trabajador disponible".

           # nhelpers=0

#Ypuedes poner tu archivo de configuración (.conf) en "/etc/ipsec.d/" y descomentar esto.

include /etc/ipsec.d/*.conf

/etc/ipsecrets

include /etc/ipsec.d/*.secrets

# utilice direcciones IP de su propio entorno

10.0.2.4 10.0.2.5: PSK "sharedkey"

 

/etc/ipsec.d/couchbase.conf

conn couchbase

       tipo=transporte

       authby=secreto

          left=10.0.2.4

          right=10.0.2.4

       pfs=y

       auto=inicio

 

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Author

Posted by Tim Wong

Tim es Consultor Principal de Soluciones en Couchbase, dando soporte a cuentas en el área de la Bahía de San Francisco. Ha trabajado con bases de datos, integración de datos empresariales (por lotes, en tiempo real, en la nube) y tecnologías de inteligencia empresarial durante más de 20 años en Oracle, TIBCO e Informatica.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.