Plataforma de próxima geração

Configurando o proxy reverso com NGINX

Com o IBM Sterling® Order Management System (Next-generation), os dispositivos precisam usar mTLS ao se comunicarem com os servidores. Para usar mTLS durante a comunicação, os dispositivos devem ser configurados com um certificado de cliente gerado usando o Sterling™ Order Management System Self Service.
A segurança da comunicação é aumentada com o uso de certificados de cliente. No entanto, o uso de certificados de cliente introduz o aumento do custo de gerenciamento O impacto dos custos de gerenciamento varia e depende da infraestrutura de gerenciamento de dispositivo que está sendo usada Para reduzir o impacto, a seguir estão várias opções que podem ser usadas::
  • Utilizando certificados de cliente exclusivos por dispositivo. Isso impacta em grande parte o custo. O benefício para a segurança é que os dispositivos individuais podem ser impedidos de acessar o serviço revogando certificados individuais.
  • Agrupando dispositivos semelhantes e instalando um certificado exclusivo por grupo. Cada dispositivo em um armazenamento pode usar um único certificado de cliente Esse agrupamento pode ser arbitrário e deve ser decidido por seus especialistas em segurança.
  • Alavancando um servidor proxy reverso configurado com um certificado de cliente para gerenciar a comunicação com os servidores Sterling Order Management System . Com essa configuração, os dispositivos não são configurados com um certificado, mas dependem do servidor proxy para gerenciar a conexão segura.

A opção escolhida deve ser revisada por seus especialistas em segurança para determinar se ela atende às políticas de segurança e se é um risco aceitável.

Esta página abrange apenas um método possível para configurar um servidor proxy reverso O método implementa um servidor proxy usando um servidor NGINX e deve ser considerado apenas para fins de demonstração ou teste. Não use o exemplo a seguir em um ambiente de produção Se você deseja usar um servidor NGINX como um proxy reverso, consulte seus especialistas em segurança para ajudá-lo a obter a produção do servidor pronta. As soluções alternativas são possíveis e podem já estar disponíveis em sua rede. Por exemplo, se sua rede estiver usando um firewall F5 , será possível configurá-lo como um proxy reverso. Independentemente do hardware ou software usado para implementar o proxy reverso, é importante proteger a comunicação entre seus dispositivos e o proxy. Fornecer mais informações sobre este assunto está fora do escopo deste documento.

imagem

Premissas

  • Você usa o Sterling Order Management System na plataforma da próxima geração e deseja criar e gerenciar um único certificado de cliente de todos os clientes do Sterling Order Management System em sua rede
  • Você tem um entendimento justo sobre as tecnologias Docker e NGINX.
  • É possível usar o sistema de linha de comandos do Linux
  • Você tem um entendimento justo sobre os conceitos básicos de rede..

Pré-requisitos

  • Um ambiente do Sterling Order Management System na plataforma da próxima geração
  • Uma conta no Autoatendimento com acesso para gerar certificados clientes.
  • Compreensão de Docker.
  • Acesso para usar o Open SSL.

Procedimento

Use as etapas a seguir usando um NGINX baseado em contêiner.
Nota: As mesmas configurações de arquivo default.conf são aplicáveis ao NGINX instalado diretamente em um host.
  1. Copie arquivos NGINX para seu computador local.
    1. Inicie um contêiner temporário para trabalhar com os arquivos de configuração NGINX.
      docker run --name tmp-nginx-container -d nginx
    2. Extraia o diretório nginx padrão para uma pasta em seu computador local, como $HOME/nginx
      docker cp tmp-nginx-container:/etc/nginx/$HOME/nginx/tmp/
    3. Exclua o contêiner temporário
      docker rm -f tmp-nginx-container
      
  2. Crie um certificado cliente no ambiente do Sterling Order Management System .
    1. No Self Service, gere um certificado de cliente para o ambiente e salve o certificado em seu diretório local, como $HOME/nginx.
    2. Execute o comando a seguir para extrair a chave e o certificado como arquivos .pem e fornecer a senha quando solicitado..
      cd $HOME/nginx
      openssl pkcs12 -in $FILENAME.p12 -nokeys -out client.pem
      openssl pkcs12 -in $FILENAME.p12 -nocerts -nodes -out client.key
      
  3. Crie um certificado autoassinado para NGINX usando OpenSSL.
    cd $HOME/nginx
    openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
    
  4. Configure o NGINX
    1. Em um editor de texto, abra o $HOME/nginx/conf.d/default.conf e exclua as configurações existentes
    2. Copie a seguinte configuração em $HOME/nginx/conf.d/default.conf e substitua o URL em ambos os campos de proxy_pass por um URL apropriado para seu ambiente.
      server {
              listen 80;
              listen [::]:80;
              server_name localhost;
      
              location / {
                  proxy_pass https://EXAMPLE-prod-4.oms.supply-chain.ibm.com/;
                  proxy_ssl_server_name on;
                  proxy_http_version 1.1;
                  proxy_ssl_certificate /etc/nginx/client.pem;
                  proxy_ssl_certificate_key /etc/nginx/client.key;
                  proxy_ssl_session_reuse on;
                  ######
                  ## Settings specific to a Docker container mapped to non-80/443 port on host
                  absolute_redirect off;
              }
          }
      
          server {
              listen 443 ssl;
              listen [::]:443 ssl;
              server_name localhost;
              ssl_certificate     /etc/nginx/certificate.pem;
              ssl_certificate_key /etc/nginx/key.pem;
              ssl_protocols       TLSv1.2;
              ssl_ciphers         HIGH:!aNULL:!MD5;
              location / {
                  proxy_pass https://EXAMPLE-prod-4.oms.supply-chain.ibm.com/;
                  proxy_ssl_server_name on;
                  proxy_http_version 1.1;
                  proxy_ssl_certificate /etc/nginx/client.pem;
                  proxy_ssl_certificate_key /etc/nginx/client.key;
                  proxy_ssl_session_reuse on;
                  ######
                  ## Settings specific to a Docker container mapped to non-80/443 port on host
                  absolute_redirect off;
              }
          }
  5. Inicie um contêiner NGINX com opções para portas SSL e não SSL e um volume que seja apontado para o diretório $HOME/nginx no host que é mapeado para /etc/nginx/ no contêiner.
    docker run --name nginx -p 9080:80 -p 9443:443 --rm -v $HOME/nginx:/etc/nginx/:Z nginx
    
  6. Valide a configuração
    1. Em um navegador, acesse o NGINX usando uma das seguintes URLs:
      http://localhost:9080/smcfs/console/login.jsp
      https://localhost:9443/smcfs/console/login.jsp
      
    2. Confirme se o navegador roteia para o ambiente do Sterling Order Management System e não solicita que você forneça um certificado de cliente.
    3. Efetue login no console do Sterling Order Management System e confirme se o navegador o redireciona para a página inicial do console do Sterling Order Management System
    4. Repita com URLs para todos os outros aplicativos no ambiente do Sterling Order Management System .

Referências