Características pouco conhecidas do Illumio ASP — Policy Compute Engine Certificate Checks
Nesta série rápida, a equipe de gerenciamento de produtos da Illumio destacará os recursos menos conhecidos (mas não menos poderosos) do Iluminação ASP.
Protocolo de segurança da camada de transporte (TLS) é um protocolo criptográfico para proteger a comunicação em redes de computadores, usando certificados de chave pública. O formato mais comum para certificados de chave pública é o X.509, descrito em RFC 5280. Os certificados X.509 são documentos criptográficos complexos com opções para diversos usos, como autenticação, criptografia, confiança etc. Seguindo as melhores práticas do setor, Iluminação ASP a comunicação é protegida usando TLS.
Para proteger a comunicação no Illumio ASP, certas opções devem estar presentes no certificado com critérios de implantação específicos, e os certificados devem ser instalados no Policy Compute Engine (PCE), o “cérebro” do Illumio ASP que centraliza a visibilidade e o gerenciamento de políticas. Embora esses sejam critérios comuns para certificados, eles podem ser onerosos e exigir atenção aos detalhes por parte do usuário.
Nesta postagem do blog, descreverei os critérios de implantação dos certificados Illumio PCE e um recurso pouco conhecido para verificações de certificados.
Protocolo e certificados TLS
O TLS é usado para proteger as seguintes sessões de comunicação:
- Acesso do usuário ao console web do PCE e à API REST pelo protocolo HTTPS (HTTP sobre TLS).
- Comunicação entre o PCE e os VENs, com API REST via HTTPS e Event Service, um protocolo personalizado usando TLS sobre TCP.
- Comunicação entre serviços PCE em diferentes nós PCE em um cluster de vários nós, como gerenciamento de clusters e descoberta de serviços.
Para TLS, um certificado de servidor X.509 deve ser instalado em cada não PCE durante a instalação. Quando qualquer cliente (por exemplo, o VEN) abre uma sessão TLS no PCE, o PCE apresenta o certificado de servidor X.509 para proteger a comunicação com o cliente. Durante a instalação, o certificado do servidor é carregado no PCE como parte de um pacote de certificados, que contém o certificado do servidor e um conjunto de certificados CA (intermediário ou raiz) para estabelecer a cadeia de confiança de volta para uma CA raiz.
Os certificados X.509 geralmente são emitidos por uma Autoridade Certificadora (CA) pública, como Digicert, Verisign, GoDaddy e LetsEncrypt. Além disso, os clientes podem usar certificados emitidos por suas próprias CAs privadas (CA interna) ou usar certificados autoassinados. Independentemente de como um certificado é emitido, o cliente deve ser capaz de validar a cadeia de confiança de volta para a CA raiz desse certificado; caso contrário, o handshake TLS falhará e um canal de comunicação seguro não poderá ser estabelecido.
Verificação do certificado PCE
Durante a implantação inicial do PCE, o usuário geralmente precisa validar os certificados para garantir que os requisitos variados e complicados sejam atendidos. O Illumio PCE vem com uma ferramenta de verificação de certificados para ajudar os usuários a automatizar a verificação de certificados de acordo com os critérios específicos de implantação.
O pacote de certificados para o Illumio PCE deve atender aos seguintes critérios:
- Deve conter certificados codificados pelo PEM.
- Os certificados são assinados usando um algoritmo de assinatura aceitável.
- O pacote deve incluir todos os certificados de CA (intermediários e/ou raiz) necessários para estabelecer a cadeia de confiança de volta à CA raiz. Se o certificado for gerado por uma CA privada, o pacote deverá incluir todos os certificados na cadeia de confiança até a CA raiz e quaisquer certificados de CA intermediários.
- A certificação do servidor deve ser o primeiro certificado do pacote.
- Todos os certificados do pacote devem ser válidos para a data atual.
- O certificado deve corresponder ao FQDN do PCE, nos campos Assunto e Nome Alternativo do Assunto (SAN).
- O certificado deve oferecer suporte à autenticação do servidor e do cliente.
Da mesma forma, a chave privada que corresponde ao certificado X.509 deve ser instalada em cada nó PCE com os seguintes critérios:
- A chave privada deve ser codificada em PEM.
- O arquivo não deve ser codificado de outras formas, por exemplo, DER, PKCS7/P7B, PKCS8 ou PKCS12/PFX.
- O arquivo não deve ser protegido por senha.
Com o tempo, a Illumio descobriu que a implantação do PCE nas empresas enfrenta vários desafios quando se trata de criação e implantação de certificados.
Por exemplo, os certificados podem não ser emitidos para o FQDN do PCE; ou os nomes de host dos vários nós não estão incluídos corretamente no campo SAN; ou o conjunto correto de opções não é fornecido no campo Uso estendido da chave dos certificados. Da mesma forma, durante o processo de instalação, os certificados podem ser instalados sem as permissões corretas para os arquivos ou diretórios, ou algumas partes da cadeia de confiança podem ser perdidas durante a instalação.
Os desafios são reservados para o processo inicial de instalação e podem ir além. Se o PCE for escalado de um cluster de 4 nós para um cluster de 6 nós, os certificados precisarão ser atualizados para incluir o novo FQDN no campo SAN. Para reduzir o esforço manual com certificados, a Illumio fornece uma ferramenta administrativa de linha de comando chamada “illumio-pce-env” para verificar os certificados automaticamente.
Essa ferramenta fornece várias opções para validar certificados para vários casos de uso, alguns dos quais são:
- Para validar o certificado TLS com testes básicos, incluindo a cadeia de confiança e outros aspectos, execute o seguinte comando:
- configuração illumio-pce-env --list
- A opção de especificação “--list” verifica sua configuração e certificados e indica possíveis problemas ao definir o código de retorno. Essa é uma maneira rápida de verificar problemas e pode ser invocada como parte do Chef, do Ansible ou de outros scripts de instalação.
- Para validar o certificado TLS com testes básicos, incluindo a cadeia de confiança e outros aspectos, execute o seguinte comando:
- configuração do illumio-pce-env —list —test 5
- Se o comando anterior falhar, talvez um administrador queira descobrir exatamente o que deu errado. Para ajudar com isso, é possível especificar um argumento de nível de verbosidade — 1 (mínimo) a 5 (máximo) — com a opção --test. Usando um nível de detalhamento de 5, o comando exibe os resultados detalhados com cada etapa da validação do certificado, incluindo informações sobre os testes que foram executados e os resultados de cada teste. Isso ajuda a diagnosticar o problema exato com os certificados ou a cadeia de confiança.
- Para validar seus certificados com nomes de domínio alternativos, execute o seguinte comando:
- illumio-pce-env setup --list — test 5: some.alternative.host e nome de domínio
- Caso o plano de FQDN seja usado para o PCE em produção seja diferente da implantação de teste ou se um PCE estiver sendo expandido de um cluster de 4 nós para um cluster de 6 nós, o certificado precisará ser verificado se o campo SAN incluir os nomes de host corretos. O campo SAN permite o uso de curativas, o que dificulta a confirmação manual de nomes de host válidos. Essa sintaxe compara o certificado e a cadeia com o some.alternative.hostAndDomainName especificado.
- Para validar seus certificados com um teste de ponta a ponta usando a sintaxe '+', execute o seguinte comando:
- configuração illumio-pce-env --list --test 5+
- Aqui, o argumento para testar é “5+”. Às vezes, os testes estáticos de um certificado podem não ser suficientes, e um administrador pode querer validar o sistema com um teste completo do certificado com as bibliotecas TLS do sistema operacional. Isso emula o uso real do certificado em tempo de execução. A sintaxe '+' cria um servidor OpenSSL de loopback em execução na porta 4433 e tenta usar o comando curl para estabelecer uma conexão TLS.
- Para validar seus certificados antes de copiá-los para o local de produção planejado, execute o seguinte comando:
- illumio-pce-env setup --batch --list\ email=required @emailaddress node=value\ cert=/path/to/cert\ pkey=/path/to/private_key\ trust=/path/to/certificate_chain\ --test 5
- Se um administrador quiser verificar o certificado sem realmente instalá-lo, há uma sintaxe que permite isso. Isso seria usado se um novo certificado fosse implantado e o administrador quisesse verificar se ele atende aos requisitos do PCE.
Consulte a documentação do Illumio PCE para obter uma lista completa das mensagens exibidas pela ferramenta illumio-pce-env, bem como uma lista abrangente de possíveis mensagens de erro.
Em resumo, os certificados X.509 usados para proteger a comunicação com o TLS têm requisitos variados e complicados e podem ser úteis para o administrador validar. O Illumio ASP fornece uma ferramenta de linha de comando com um rico conjunto de opções para validar certificados para diferentes necessidades, desde testes básicos até testes completos de ponta a ponta, até testes mais precisos e precisos antes da implantação.
Espero que esta postagem do blog tenha ajudado a fornecer informações sobre esse recurso pouco conhecido e útil do Illumio PCE. Para mais perguntas, entre em contato conosco em [email protected] e não se esqueça de conferir as outras postagens desta série, que abrangem: