Introdução

Algumas implantações do Couchbase exigem comunicações seguras entre os nós da rede, o que pode ocorrer por motivos como políticas de governança de dados ou conformidade regulatória.  Segurança do protocolo da Internet (IPsec) é um conjunto de protocolos para comunicações IP (Internet Protocol) seguras por meio de autenticaçãong e criptografando cada Pacote IP de uma sessão de comunicação. O IPsec pode ser usado para proteger os fluxos de dados entre um par de hosts (de host para host), entre um par de gateways de segurança (rede para rede), ou entre um gateway de segurança e um host (rede para host). O objetivo deste artigo é fornecer aos administradores do Couchbase uma introdução rápida sobre como configurar o IPsec entre os nós em um cluster do Couchbase.  

Modos IPsec

O IPSec tem dois modos: modo de túnel e modo de transporte. O mais usado é o modo de túnel, que geralmente é usado para configurações de VPN (criação de dispositivo de rede de túnel em processo). O modo túnel não é prático para um cluster do Couchbase, pois exigiria a criação e a manutenção de túneis entre todos os pares de nós.

O modo de transporte é necessário para proteger a comunicação entre nós na mesma rede. Ele permite o uso do IPsec por pacote. Totalmente transparente para os aplicativos.

O IPSec pode fornecer autenticação de pacotes (ou seja, garantir que os pacotes recebidos sejam pacotes de nós confiáveis) e criptografia de pacotes. O modo de transporte e as entradas associadas do banco de dados de políticas de segurança permitem configurar o comportamento necessário para um cluster do Couchbase:

  • tipos específicos de pacotes de entrada só serão aceitos se estiverem encapsulados em ipsec e forem válidos (caso contrário, serão descartados)

  • tipos específicos de pacotes de saída devem ser encapsulados em ipsec

Normalmente, "tipo específico" será algo como: todos os pacotes de/para o segmento de rede do cluster do couchbase. Ou pode ser algo como tudo: todos os pacotes de/para as portas de serviço do couchbase.

Requisitos

  • Distribuição do Linux (o Debian é usado para este blog). O Windows oferece suporte a IPsec, mas isso não foi testado.

  • Linux Openswan U2.6.32/K2.6.32-573.el6.x86_64 (netkey) ou superior
  • Couchbase 4.1 ou superior
  • Acesso do usuário sudo/root ao sistema

Instalação e configuração do OpenSwan

Na linha de comando, usando o sudo, o seguinte comando foi executado em cada nó. Para outras distribuições Linux, use o gerenciador de pacotes apropriado.

# sudo apt-get update

# sudo apt-get install openswan

O instalador pode solicitar que o usuário crie um certificado x.509. Não crie um certificado x.509. O IPsec precisa ser configurado para o modo de transporte. No ambiente de demonstração criado para este blog, temos dois nós: 10.0.2.4 e 10.0.2.5.  

Etapas

1 - Em cada nó - adicione uma linha no arquivo /etc/ipsec.secrets: ipaddress_node1 ipaddress_node2: PSK "some_key"

2 - Modifique o arquivo /etc/ipsec.conf para usar arquivos *.conf localizados no subdiretório ipsec.d. Isso permite uma automação fácil se você precisar adicionar nós ao cluster. Cada par de nós precisa de sua própria entrada.  

3 - Crie um arquivo de configuração no diretório /etc/ipsec.d/ com as seguintes informações:

conexão com o couchbase

type=transport

authby=secret

esquerda=

direito=

pfs=sim

auto=start

  • conn couchbase -connection: rótulo arbitrário para sua conexão. Pode ser qualquer coisa que você queira
  • type=transport: queremos usar o modo de transporte para essa conexãoauthby=secret: usaremos uma chave pré-compartilhada (PSK) para essa conexão.
  • left=10.0.2.4: esta e a próxima linha apenas indicam os endereços IP envolvidos nessa associação IPsec. Não importa qual IP é o "esquerdo" e qual é o "direito".
  • right=10.0.2.5: veja o item acima.
  • pfs=yes: queremos ativar o Perfect Forward Secrecy para essa conexão. Em resumo, isso aumenta drasticamente a segurança. Iauto=start: Queremos iniciar imediatamente a associação IPsec de forma proativa. Isso também pode ser definido como auto=start, caso em que ele aguarda que a outra extremidade da conexão inicie o tráfego.

4 - Habilite o IPSec para usar a nova configuração em ambos os nós: #sudo service ipsec restart

Testando a configuração

Em uma linha de comando em um nó, digite o seguinte comando:  

#ping

No outro nó, use a linha de comando e digite : (resultado desejado) Se não receber nenhuma mensagem, você precisará depurar sua configuração (consulte os guias de IPsec listados abaixo)

#sudo tcpdump esp

Observação: ESP = Encapsulamento de carga de segurança

Configuração do Couchbase

Instale o Couchbase em cada nó, uma configuração simples de dois nós. Configure o cluster. Toda a comunicação entre os dois nós pode ser rastreada usando o comando tcpdump esp; o exemplo acima documenta a comunicação entre dois nós do Couchbase.

Cluster de teste do Couchbase:

Couchbase Test Cluster

Captura de tela - #sudo tcpdump esp

Referências

Visão geral do IPsec https://en.wikipedia.org/wiki/IPsec

Implementação do modo de transporte IPsec  http://andersonfam.org/2014/04/02/ipsec-transport-mode/

Usando o StrongSwan (exemplo de 3 nós) - http://blog.sprinternet.at/2016/03/ipsec-transport-mode-with-strongswan-on-debian-jessie/

Arquivos de configuração de amostra usados para este teste

/etc/ipsec.conf

# /etc/ipsec.conf - Arquivo de configuração IPsec do Openswan

#

Manual do #: ipsec.conf.5

#

# Coloque seus próprios arquivos de configuração em /etc/ipsec.d/ terminando em .conf

versão 2.0       O # está em conformidade com a segunda versão da especificação ipsec.conf

Configuração básica do #

configuração

           Controles de registro de depuração do #: "none" para (quase) nenhum, "all" para muitos.

           # klipsdebug=none

           # plutodebug="análise de controle"

           # Para o Red Hat Enterprise Linux e o Fedora, deixe protostack=netkey

           protostack=netkey

           nat_traversal=yes

           virtual_private=

           oe=off

           # Ative essa opção se você vir a mensagem "failed to find any available worker"

           # nhelpers=0

1TP5Você pode colocar seu arquivo de configuração (.conf) em "/etc/ipsec.d/" e descomentar isso.

incluir /etc/ipsec.d/*.conf

/etc/ipsecrets

incluir /etc/ipsec.d/*.secrets

# use endereços IP de seu próprio ambiente

10.0.2.4 10.0.2.5: PSK "sharedkey"

 

/etc/ipsec.d/couchbase.conf

conexão com o couchbase

       type=transport

       authby=secret

          left=10.0.2.4

          right=10.0.2.4

       pfs=y

       auto=start

 

Autor

Postado por Tim Wong

Tim é consultor de soluções principal da Couchbase, dando suporte a contas na área da Baía de São Francisco. Ele trabalha com banco de dados, integração de dados corporativos (batch, tempo real, nuvem) e tecnologias de business intelligence há mais de 20 anos, com passagens pela Oracle, TIBCO e Informatica.

Deixar uma resposta