Piattaforma di nuova generazione

Configurazione del proxy inverso con NGINX

Con IBM Sterling® Order Management System (Next-generation), i dispositivi devono utilizzare mTLS quando comunicano con i server. Per utilizzare mTLS durante la comunicazione, i dispositivi devono essere configurati con un certificato client generato utilizzando il Self Service di Sterling™ Order Management System.
La sicurezza della comunicazione viene aumentata utilizzando i certificati dei client. Tuttavia, l'utilizzo dei certificati client introduce un aumento dei costi di gestione. L'impatto dei prezzi di gestione varia e dipende dall'infrastruttura di gestione dei dispositivi utilizzata. Per ridurre l'impatto, di seguito sono riportate diverse opzioni che è possibile utilizzare:
  • Utilizzo di certificati client univoci per dispositivo. Ciò si ripercuote in larga misura sui costi. Il vantaggio per la sicurezza è che i singoli dispositivi possono essere bloccati dall'accesso al servizio revocando i singoli certificati.
  • Raggruppamento di periferiche simili e installazione di un certificato univoco per gruppo. Ogni periferica in un archivio può utilizzare un certificato client singolo. Questo raggruppamento può essere di dimensione arbitraria e deve essere deciso dagli esperti di sicurezza.
  • Utilizzo di un server proxy inverso configurato con un certificato client per gestire la comunicazione con i server Sterling Order Management System . Con questa configurazione, i dispositivi non sono configurati con un certificato, ma si basano sul server proxy per gestire la connessione sicura.

L'opzione scelta deve essere riesaminata dagli esperti di sicurezza per determinare se soddisfa le politiche di sicurezza e se si tratta di un rischio accettabile.

Questa pagina copre solo un metodo possibile per configurare un server proxy inverso. Il metodo implementa un server proxy utilizzando un server NGINX e deve essere considerato solo a scopo dimostrativo o di test. Non utilizzare il seguente esempio in un ambiente di produzione. Se si desidera utilizzare un server NGINX come proxy inverso, consultare gli esperti di sicurezza per aiutare a preparare la produzione del server. Le soluzioni alternative sono possibili e potrebbero essere già disponibili nella rete. Ad esempio, se la tua rete sta utilizzando un firewall F5 , è possibile configurarlo come un proxy inverso. Indipendentemente dall'hardware o dal software utilizzato per implementare il proxy inverso, è importante proteggere la comunicazione tra i dispositivi e il proxy. Fornire ulteriori informazioni su questo argomento è fuori ambito per questo documento.

immagine

Presupposti

  • Si utilizza Sterling Order Management System sulla piattaforma di nuova generazione e si desidera creare e gestire un singolo certificato client per tutti i client Sterling Order Management System nella rete.
  • Hai una buona comprensione delle tecnologie Docker e NGINX.
  • È possibile utilizzare il sistema di riga comandi Linux .
  • Hai una buona comprensione dei concetti di base della rete.

Prerequisiti

  • Un ambiente Sterling Order Management System sulla piattaforma di nuova generazione.
  • Un account in Self Service con accesso per generare certificati client.
  • Comprensione di Docker.
  • Accesso all'utilizzo di Open SSL.

Procedura

Utilizza la seguente procedura utilizzando un NGINX basato sul contenitore.
Nota: le stesse impostazioni del file default.conf sono applicabili a NGINX installato direttamente su un host.
  1. Copiare i file NGINX sul computer locale.
    1. Avviare un contenitore temporaneo per utilizzare i file di configurazione NGINX.
      docker run --name tmp-nginx-container -d nginx
    2. Estrarre la directory nginx predefinita in una cartella sul computer locale, ad esempio $HOME/nginx.
      docker cp tmp-nginx-container:/etc/nginx/$HOME/nginx/tmp/
    3. Eliminare il contenitore temporaneo.
      docker rm -f tmp-nginx-container
      
  2. Creare un certificato client nell'ambiente Sterling Order Management System .
    1. In Self Service, generare un certificato client per l'ambiente e salvare il certificato nella directory locale, ad esempio $HOME/nginx.
    2. Immetti questo comando per estrarre la chiave e il certificato come file .pem e fornire la password quando richiesto.
      cd $HOME/nginx
      openssl pkcs12 -in $FILENAME.p12 -nokeys -out client.pem
      openssl pkcs12 -in $FILENAME.p12 -nocerts -nodes -out client.key
      
  3. Crea un certificato autofirmato per NGINX utilizzando OpenSSL.
    cd $HOME/nginx
    openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
    
  4. Configurare NGINX.
    1. In un editor di testo, aprire $HOME/nginx/conf.d/default.conf ed eliminare le configurazioni esistenti.
    2. Copiare la seguente configurazione in $HOME/nginx/conf.d/default.conf e sostituire l' URL in entrambi i campi di proxy_pass con un URL appropriato per il proprio 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. Avviare un contenitore NGINX con le opzioni per le porte SSL e non SSL e un volume che punta alla directory $HOME/nginx sull'host associato a /etc/nginx/ all'interno del contenitore.
    docker run --name nginx -p 9080:80 -p 9443:443 --rm -v $HOME/nginx:/etc/nginx/:Z nginx
    
  6. Convalidare la configurazione.
    1. In un browser, accedere a NGINX utilizzando uno dei seguenti URL:
      http://localhost:9080/smcfs/console/login.jsp
      https://localhost:9443/smcfs/console/login.jsp
      
    2. Confermare che il browser instrada all'ambiente Sterling Order Management System e non richiede di fornire un certificato client.
    3. Accedere alla console di Sterling Order Management System e confermare che il browser reindirizza l'utente alla home page della console di Sterling Order Management System .
    4. Ripetere l'operazione con gli URL per tutte le altre applicazioni nell'ambiente Sterling Order Management System .

Riferimenti