Configurar criptografia TLS para BeeGFS 8
Configure a criptografia TLS para proteger a comunicação entre os serviços de gerenciamento do BeeGFS 8 e os clientes.
Visão geral
O BeeGFS 8 introduz suporte a TLS para criptografar as comunicações de rede entre ferramentas administrativas (como o beegfs utilitário de linha de comando) e serviços do servidor BeeGFS, como Management ou Remote. Configure a criptografia TLS em seu cluster BeeGFS usando um dos três métodos:
-
Utilizando uma Autoridade Certificadora confiável: Use certificados já assinados por uma Autoridade Certificadora em seu cluster BeeGFS.
-
Criação de uma Autoridade Certificadora local: Crie uma Autoridade Certificadora local e utilize-a para assinar certificados para seus serviços BeeGFS. Essa abordagem é adequada para ambientes nos quais você deseja gerenciar sua própria cadeia de confiança sem depender de uma CA externa.
-
TLS desativado: Desative completamente o TLS em ambientes onde a criptografia não é necessária ou para fins de solução de problemas. Evite esta opção em ambientes de produção porque ela expõe informações potencialmente sensíveis sobre a estrutura e configuração do sistema de arquivos em texto não criptografado.
Escolha o método que melhor se adapte ao seu ambiente e às políticas da sua organização. Consulte a "BeeGFS TLS" documentação para obter mais detalhes.
|
|
Os clientes que executam o `beegfs-client`serviço não precisam de TLS para montar o sistema de arquivos BeeGFS. TLS é necessário para usar a CLI do BeeGFS e outros serviços do BeeGFS, como Remote e Sync. |
Usando uma Autoridade Certificadora Confiável
Se você tiver acesso a certificados emitidos por uma Autoridade Certificadora (CA) confiável—seja de uma CA interna da empresa ou de um provedor terceiro—você pode configurar o BeeGFS 8 para usar esses certificados assinados pela CA em vez de gerar certificados autoassinados.
Implantando um novo cluster BeeGFS 8
Para uma nova implementação de cluster BeeGFS 8, configure o arquivo de inventário do Ansible user_defined_params.yml para referenciar seus certificados assinados pela CA:
beegfs_ha_tls_enabled: true
beegfs_ha_ca_cert_src_path: files/beegfs/cert/ca_cert.pem
beegfs_ha_tls_cert_src_path: files/beegfs/cert/mgmtd_tls_cert.pem
beegfs_ha_tls_key_src_path: files/beegfs/cert/mgmtd_tls_key.pem
|
|
Se |
Configurando um cluster BeeGFS 8 existente
Para um cluster BeeGFS 8 existente, defina os caminhos no arquivo de configuração dos serviços de gerenciamento do BeeGFS para os certificados assinados pela CA do nó de arquivos:
tls-cert-file = /path/to/cert.pem
tls-key-file = /path/to/key.pem
Configurando clientes BeeGFS 8 com certificados assinados por CA
|
|
Se você estiver atualizando um cluster BeeGFS 7 existente para BeeGFS 8, siga o "Atualize para BeeGFS 8" procedimento. Não configure o TLS do cliente até que seja instruído a fazê-lo no procedimento de atualização. |
Para configurar os clientes BeeGFS 8 para confiarem em certificados assinados por uma CA usando o pool de certificados do sistema, defina tls-cert-file = "" no arquivo de configuração de cada cliente. Se o pool de certificados do sistema não estiver sendo usado, forneça o caminho para um certificado local definindo tls-cert-file = <local cert>. Essa configuração permite que os clientes autentiquem os certificados apresentados pelos serviços de gerenciamento do BeeGFS.
Criando uma Autoridade Certificadora local
Se a sua organização deseja criar sua própria infraestrutura de certificados para o cluster BeeGFS, você pode criar uma Autoridade Certificadora (CA) local para emitir e assinar certificados para o seu cluster BeeGFS. Essa abordagem envolve a criação de uma CA que assina certificados para os serviços de gerenciamento do BeeGFS, que são então distribuídos aos clientes para estabelecer uma cadeia de confiança.
Implantando um novo cluster BeeGFS 8
Para uma nova implementação do BeeGFS 8, a beegfs_8 função Ansible (incluída na coleção BeeGFS HA) cria uma CA local no nó de controle e gera os certificados necessários para os serviços de gerenciamento. Habilite isso definindo os seguintes parâmetros no arquivo de inventário do Ansible user_defined_params.yml:
beegfs_ha_tls_enabled: true
beegfs_ha_ca_cert_src_path: files/beegfs/cert/local_ca_cert.pem
beegfs_ha_tls_cert_src_path: files/beegfs/cert/mgmtd_tls_cert.pem
beegfs_ha_tls_key_src_path: files/beegfs/cert/mgmtd_tls_key.pem
beegfs_ha_tls_config_options:
alt_names: [<mgmt_service_ip>]
|
|
Se |
Configurando um cluster BeeGFS 8 existente
Para um cluster BeeGFS existente, você pode integrar TLS criando uma Autoridade de Certificação local e gerando os certificados necessários para os serviços de gerenciamento. Atualize os caminhos no arquivo de configuração dos serviços de gerenciamento do BeeGFS para apontar para os certificados recém-criados.
|
|
Utilize estas instruções como referência. Tome as devidas precauções de segurança ao lidar com chaves privadas e certificados. |
Criar a Certificate Authority
Em um computador confiável, crie uma Autoridade Certificadora local para assinar certificados para seus serviços de gerenciamento BeeGFS. O certificado da Autoridade Certificadora será distribuído aos clientes para estabelecer confiança e permitir a comunicação segura com os serviços BeeGFS.
As instruções a seguir servem de referência para criar uma Autoridade de Certificação local em um sistema baseado em RHEL.
-
Instale o OpenSSL se ainda não estiver instalado:
dnf install openssl -
Crie um diretório de trabalho para armazenar arquivos de certificado:
mkdir -p ~/beegfs_tls && cd ~/beegfs_tls -
Gerar a chave privada da CA:
openssl genrsa -out ca_key.pem 4096 -
Crie um arquivo de configuração de CA chamado
ca.cnfe ajuste os campos de nome diferenciado para corresponder à sua organização:[ req ] default_bits = 4096 distinguished_name = req_distinguished_name x509_extensions = v3_ca prompt = no [ req_distinguished_name ] C = <Country> ST = <State> L = <City> O = <Organization> OU = <OrganizationalUnit> CN = BeeGFS-CA [ v3_ca ] basicConstraints = critical,CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always -
Gere o certificado da Autoridade Certificadora (CA). Este certificado deve ser válido por toda a vida do sistema. Planeje regenerar os certificados antes que eles expirem. Após a expiração de um certificado, a comunicação entre alguns componentes falha. Atualizar certificados TLS geralmente requer reiniciar serviços.
O seguinte comando gera um certificado de CA válido por 1 ano:
openssl req -new -x509 -key ca_key.pem -out ca_cert.pem -days 365 -config ca.cnfEmbora este exemplo utilize um período de validade de 1 ano por simplicidade, você deve ajustar o -daysparâmetro de acordo com os requisitos de segurança da sua organização e estabelecer um processo de renovação de certificados.
Criar certificados de serviço de gerenciamento
Gere certificados para seus serviços de gerenciamento do BeeGFS e assine-os com a CA que você criou. Esses certificados serão instalados nos nós de arquivos que executam os serviços de gerenciamento do BeeGFS.
-
Gere a chave privada do serviço de gerenciamento:
openssl genrsa -out mgmtd_tls_key.pem 4096 -
Crie um arquivo de configuração de certificado chamado `tls_san.cnf`com Nomes Alternativos do Assunto (SANs) para todos os endereços IP do serviço de gerenciamento:
[ req ] default_bits = 4096 distinguished_name = req_distinguished_name req_extensions = req_ext prompt = no [ req_distinguished_name ] C = <Country> ST = <State> L = <City> O = <Organization> OU = <OrganizationalUnit> CN = beegfs-mgmt [ req_ext ] subjectAltName = @alt_names [ v3_ca ] subjectAltName = @alt_names basicConstraints = CA:FALSE [ alt_names ] IP.1 = <beegfs_mgmt_service_ip_1> IP.2 = <beegfs_mgmt_service_ip_2>Atualize os campos de nome diferenciado para corresponder à sua configuração de CA e substitua os
IP.1eIP.2valores pelos endereços IP do seu serviço de gerenciamento. -
Gerar uma solicitação de assinatura de certificado (CSR):
openssl req -new -key mgmtd_tls_key.pem -out mgmtd_tls_csr.pem -config tls_san.cnf -
Assine o certificado com sua CA (válido por 1 ano):
openssl x509 -req -in mgmtd_tls_csr.pem -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out mgmtd_tls_cert.pem -days 365 -sha256 -extensions v3_ca -extfile tls_san.cnfAjuste o período de validade do certificado ( -days 365) de acordo com as políticas de segurança da sua organização. Muitas organizações exigem a renovação do certificado a cada 1-2 anos. -
Verifique se o certificado foi criado corretamente:
openssl x509 -in mgmtd_tls_cert.pem -text -nooutConfirme que a seção Subject Alternative Name inclui todos os seus endereços IP de gerenciamento.
Distribuir certificados para nós de arquivo
Distribua o certificado da CA e os certificados do serviço de gerenciamento para os nós de arquivo e clientes apropriados.
-
Copie o certificado da CA, o certificado do serviço de gerenciamento e a chave para os nós de arquivo que executam os serviços de gerenciamento:
scp ca_cert.pem mgmtd_tls_cert.pem mgmtd_tls_key.pem user@beegfs_01:/etc/beegfs/ scp ca_cert.pem mgmtd_tls_cert.pem mgmtd_tls_key.pem user@beegfs_02:/etc/beegfs/
Direcione o serviço de gerenciamento para os certificados TLS
Atualize a configuração do serviço de gerenciamento BeeGFS para habilitar TLS e referenciar os certificados TLS criados.
-
A partir de um nó de arquivo que executa o serviço de gerenciamento BeeGFS, edite o arquivo de configuração do serviço de gerenciamento, por exemplo, em
/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml. Adicione ou atualize os seguintes parâmetros relacionados ao TLS:tls-disable = false tls-cert-file = "/etc/beegfs/mgmtd_tls_cert.pem" tls-key-file = "/etc/beegfs/mgmtd_tls_key.pem" -
Reinicie o serviço de gerenciamento do BeeGFS:
systemctl restart beegfs-mgmtd -
Verifique se o serviço de gerenciamento foi iniciado com sucesso:
journalctl -xeu beegfs-mgmtdProcure por entradas de log que indiquem inicialização TLS bem-sucedida e carregamento de certificado.
Successfully initialized certificate verification library. Successfully loaded license certificate: TMP-XXXXXXXXXX
Configurar TLS para clientes BeeGFS 8
|
|
Se você estiver atualizando um cluster BeeGFS 7 existente para BeeGFS 8, siga o "Atualize para BeeGFS 8" procedimento. Não configure o TLS do cliente até que seja instruído a fazê-lo no procedimento de atualização. |
Crie e distribua certificados assinados pela autoridade certificadora local para todos os clientes BeeGFS que requerem comunicação com os serviços de gerenciamento BeeGFS.
-
Gere um certificado de cliente usando o mesmo processo descrito em [create-management-service-certificates], substituindo o endereço IP do cliente ou o nome do host no campo Nome Alternativo do Assunto (SAN).
-
Copie o certificado do cliente para o nó do cliente e renomeie-o para
cert.pem:scp client_cert.pem user@client:/etc/beegfs/cert.pem -
Reinicie o serviço do cliente BeeGFS em todos os clientes:
systemctl restart beegfs-client -
Verifique a conectividade do cliente executando um comando da CLI do BeeGFS, como:
beegfs health check
Desativando TLS
Desative o TLS para solucionar problemas ou se o seu ambiente não exigir criptografia. Evite esta opção em ambientes de produção porque ela expõe informações potencialmente sensíveis sobre a estrutura e configuração do sistema de arquivos em texto não criptografado.
Implantando um novo cluster BeeGFS 8
Para uma nova implantação de cluster BeeGFS, desative o TLS definindo o seguinte parâmetro no arquivo de inventário do Ansible user_defined_params.yml:
beegfs_ha_tls_enabled: false
Configurando um cluster BeeGFS 8 existente
Para um cluster BeeGFS 8 existente, edite o arquivo de configuração do serviço de gerenciamento. Por exemplo, edite o arquivo em /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml e defina:
tls-disable = true
Reinicie o serviço de gerenciamento para que as alterações entrem em vigor.