Nota

Proteggi le tue applicazioni utilizzando OCI Network Firewall e OCI WAF Regional con Let's Encrypt Certificates

Introduzione

In uno scenario caratterizzato da un'ampia trasformazione digitale, la protezione delle applicazioni non è più facoltativa: è una priorità fondamentale. Mentre le organizzazioni passano i loro carichi di lavoro a Oracle Cloud Infrastructure (OCI), è essenziale implementare una forte difesa dalle minacce informatiche. OCI offre una vasta gamma di strumenti per rafforzare le tue applicazioni e in questa esercitazione ti spiegheremo come proteggere i tuoi asset digitali utilizzando OCI Network Firewall e OCI Web Application Firewall (WAF) regionale/locale.

Modello

Perché questo tutorial è essenziale?

Mentre le tue applicazioni comunicano con il mondo esterno, affrontano la sfida sempre presente delle minacce alla sicurezza informatica. Questa esercitazione consente di creare una difesa su più livelli, proteggendo le applicazioni dalle minacce note ed emergenti sfruttando la potenza di OCI Network Firewall e OCI WAF region. Esploreremo concetti importanti, tra cui il supporto multi-dominio e la generazione o il rinnovo di certificati X.509 utilizzando strumenti standard. Inoltre, analizzeremo l'uso del servizio gratuito e ampiamente riconosciuto Let's Encrypt. Attraverso questo, otterrai una comprensione completa delle pratiche essenziali per proteggere le tue applicazioni.

Per chi è questo tutorial?

Questa esercitazione è stata progettata per architetti cloud, professionisti della sicurezza e sviluppatori che desiderano una comprensione completa delle funzioni di sicurezza OCI. Che tu sia un professionista del cloud esperto o che tu stia appena iniziando il tuo viaggio verso la sicurezza del cloud, questo tutorial ti fornirà le competenze per costruire una solida difesa intorno alle tue applicazioni.

Che cos'è OCI Network Firewall

Oracle Cloud Infrastructure Network Firewall rappresenta un servizio firewall gestito all'avanguardia creato utilizzando Palo Alto Networks. È una tecnologia di firewall di nuova generazione (NGFW). Offre funzionalità firewall basate sul machine learning per proteggere i carichi di lavoro OCI ed è facile da utilizzare su OCI. In qualità di offerta firewall-as-a-service nativa OCI, OCI Network Firewall consente di sfruttare le funzioni del firewall senza dover configurare e gestire un'infrastruttura di sicurezza aggiuntiva. L'istanza di OCI Network Firewall è altamente scalabile con alta disponibilità integrata e può essere creata in una rete cloud virtuale (VCN) e in una subnet di tua scelta.

Il servizio OCI Network Firewall fornisce insight approfonditi sul flusso di dati che entrano nei tuoi ambienti cloud, affrontando sia la comunicazione in entrata che quella tra subnet o tra VCN. In sostanza, offre visibilità sul traffico di rete Nord-Sud e sul traffico di rete Est-Ovest. Per ulteriori informazioni, vedere Firewall di rete OCI.

Che cos'è OCI Web Application Firewall regionale/locale

OCI Web Application Firewall (WAF) è un servizio di sicurezza basato su cloud che aiuta a proteggere le applicazioni Web da minacce e attacchi comuni alla sicurezza, come SQL injection, cross-site scripting (XSS) e Distributed Denial of Service (DDoS). L'area OCI WAF è la versione più recente di WAF in genere distribuita a livello regionale, integrata con OCI Load Balancer per fornire un meccanismo di difesa flessibile e scalabile. Per ulteriori informazioni, vedere OCI Web Application Firewall.

Architettura

Architettura

Questa architettura proposta includerà la protezione totale per i carichi di lavoro della tenancy utilizzando i componenti riportati di seguito.

Diagramma flusso dati

Il flusso di dati di rete può essere facilmente visto nel seguente diagramma di rete, richieste in entrata in linee di punti verdi, risposte in linee di punti rossi.

Architettura

Questo diagramma fa riferimento alle best practice per distribuire il firewall di rete OCI per il traffico Nord-Sud. Nella fase iniziale, il traffico in entrata (rappresentato in verde e operativo al livello 7) viene indirizzato attraverso il gateway Internet. A Internet Gateway è associata una tabella di instradamento per deviare tutto il traffico indirizzato alla subnet del load balancer (192.168.6.0/24) verso l'IP privato NGFW. Questo farà in modo che il traffico in entrata attraverserà il NGFW per l'ispezione.

In seguito al flusso di rete, il traffico passa al firewall di rete OCI o al firewall di nuova generazione (NGFW) dal gateway Internet. È interessante notare che OCI Network Firewall riceve senza problemi il traffico senza interrompere la connessione TLS/SSL. OCI Network Firewall applica i profili di decifrazione per decifrare il traffico TLS, consentendo un'ispezione approfondita dei pacchetti. Per ulteriori informazioni, vedere Uso di OCI Network Firewall per la decifrazione SSL.

Una volta ispezionato a fondo il traffico, OCI Network Firewall passa a OCI Load Balancer, che termina per la prima volta la connessione TLS/SSL. Il WAF collegato esegue quindi un'ispezione approfondita dei pacchetti sul traffico decifrato per assicurarsi che sia pulito prima di inoltrarlo ai server backend. Il load balancer esegue quindi l'instradamento del bilanciamento del carico e avvia una connessione secondaria al server backend selezionato.

Per il traffico di ritorno dai server backend, i server backend rispondono inizialmente al load balancer OCI (illustrato in rosso e operante al livello 7). Una volta raggiunto il load balancer, il WAF collegato ispeziona innanzitutto il traffico restituito per assicurarsi che soddisfi gli standard di sicurezza. Dopo l'ispezione WAF, il load balancer instrada il traffico verso un IP privato in cui OCI Network Firewall esegue ulteriori controlli di sicurezza sulla risposta. Una volta ispezionato dal firewall, il traffico viene instradato al gateway Internet in base alla tabella di instradamento associata alla subnet NGFW. Da IGW, il traffico restituito fluirà al client originale su Internet.

Obiettivi

L'obiettivo principale di questa esercitazione è quello di consentire agli utenti di rafforzare i propri carichi di lavoro cloud impostando in modo efficace OCI WAF region in combinazione con OCI Network Firewall. Integrando i certificati X.509 firmati da Let's Encrypt per il front-end del load balancer OCI, gli utenti possono garantire una connessione sicura e convalidata. L'esercitazione guida ulteriormente gli utenti nell'implementazione delle best practice OCI Network Firewall per il traffico Nord-Sud, distribuendo un'applicazione OCI Load Balancer. In particolare, questa configurazione designa strategicamente il load balancer OCI come unico componente che utilizza un certificato non autofirmato: Let's Encrypt, mentre altri elementi che utilizzano TLS (Transport Layer Security) utilizzano certificati autofirmati senza problemi, più facili da gestire.

Prerequisiti

Task 1: Distribuzione locale di OCI Web Application Firewall

Il primo componente che verrà distribuito è WAF local.

  1. Eseguire il login a OCI Console e fare clic su Web Application Firewall.

    Menu WAF 1

  2. In Criteri, fare clic su Crea criterio WAF e immettere le informazioni riportate di seguito. Fare clic su Avanti.

    Menu WAF 1

  3. In Criterio di controllo dell'accesso, selezionare Abilita controllo di accesso se necessario. Per ulteriori informazioni, vedere Controlli di accesso per i criteri Web Application Firewall.

    Menu WAF 1

  4. In Criterio di limitazione tariffa, selezionare Abilita per configurare le regole di limitazione di frequenza se è necessaria la limitazione di frequenza. Per ulteriori informazioni, vedere Limitazione dei tassi per Web Application Firewall.

    Menu WAF 1

  5. In Protezioni, selezionare Abilita per configurare le regole di protezione se è necessario configurare la protezione. Per ulteriori informazioni, vedere Protezioni per Web Application Firewall.

    Menu WAF 1

  6. In Seleziona punto di applicazione, lo scopo di questo menu è collegare i criteri WAF appena creati a un load balancer esistente. Se non è stato creato alcun load balancer o è disponibile in questo momento, è possibile saltare questo passo e collegare i criteri durante la creazione del load balancer.

    Menu WAF 1

Task 2: Firma del certificato del server con Let's Encrypt

In questo tutorial, utilizzeremo un servizio CA pubblico gratuito chiamato Let's Encrypt per firmare il nostro certificato server. Pertanto, il certificato catena verrà visualizzato come segue:

1.-End-user Certificate - Issued to: *.example.com; Issued By: Let’s Encrypt R3
2.-Intermediate Certificate 1 - Issued to: Let’s Encrypt R3 (RSA 2048, O = Let's Encrypt, CN = R3); Issued By: Signed by ISRG Root X1:ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1)
3.-Root certificate - Issued by and to: ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1) , Selfsigned

In PEM format:

-----BEGIN CERTIFICATE-----
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yNDAxMTUxNjAyMTNaFw0yNDA0MTQxNjAyMTJaMBgxFjAUBgNVBAMM
DSouZnd0ZXN0LnNpdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1
3NkuEB3r0m/cIWjYBvXEg8QAcib3QjkGO2YwDRu9IwjyxTYTqiWp0F8ZYh2hM1zP
...xxxx
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
oIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5Dt....XXXX
-----BEGIN CERTIFICATE-----
oOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUsWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOd....xxx
-----END CERTIFICATE-----

Quindi, prima di utilizzare Let's Encrypt dobbiamo installare alcuni software che ci aiuteranno a creare il nostro certificato Let's Encrypt o firmare un CSR da firmare. Per ulteriori informazioni, vedere Cifriamo.

Per la firma, useremo certbot di Let's Encrypt. Per ulteriori informazioni sull'impostazione delle istruzioni, vedere Impostazione delle istruzioni. Per installarlo su Oracle Linux, vedere Let's Encrypt - Free Certificates on Oracle Linux (CertBot).

Una volta installato certbot, puoi facilmente creare un certificato x.509 firmato eseguendo il seguente comando.

sudo certbot certonly --manual --preferred-challenges=dns --email YOUR EMAIL ADDRESS --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.example.com --key-type rsa

Poiché si sta utilizzando un dominio con caratteri jolly (_.example.com), certbot richiede una verifica per confermare la proprietà di _.example.com. Per scegliere la richiesta di verifica DNS si utilizza l'opzione -preferred-challenges=dns. Durante l'esecuzione di certbot, verrà visualizzato un messaggio sulla richiesta di verifica DNS come mostrato nella seguente immagine.

Richiesta di verifica DNS Certbot

Poiché stiamo utilizzando un servizio DNS OCI, creiamo solo un record txt nella zona example.com.

Richiesta di verifica TXT DNS OCI

Ora, certbot dovrebbe terminare il processo, consentendo di ottenere il certificato dell'utente finale, completo della catena CA completa e della chiave privata corrispondente. Questo certificato dell'utente finale (con la relativa catena completa) verrà utilizzato per il listener HTTPS del load balancer più avanti in questa esercitazione.

Task 3: configurare il load balancer OCI

Dopo aver completato l'impostazione per il servizio locale WAF OCI, il nostro prossimo obiettivo è distribuire il load balancer OCI nei livelli da 4 a 7, noto anche come load balancer flessibile OCI, per fungere da servizio rivolto al pubblico con un servizio locale WAF collegato ad esso.

  1. Aprire la console OCI, fare clic su Networking e Load balancer.

    Load balancer 1

  2. Fare clic su Crea load balancer, immettere le informazioni seguenti e fare clic su Successivo.

    • Nome load balancer: immettere il nome del load balancer.

    • Scegliere il tipo di visibilità: selezionare il load balancer Pubblico.

    • Larghezza di banda: selezionare la forma del load balancer e altri dettagli di configurazione.

    • Scegli networking: selezionare una VCN con almeno due subnet pubbliche, una per OCI Load Balancer e un'altra per OCI Network Firewall.

      Menu principale del load balancer

    • Mostra opzioni avanzate: selezionare Utilizzare un criterio Web Application Firewall per proteggersi dagli attacchi Layer 7 e scegliere il WAF locale creato in precedenza.

      Menu principale/opzione avanzata del load balancer

  3. Saltare la sezione Scegli backend, poiché l'aggiunta dei server backend avverrà in seguito alla creazione del load balancer e fare clic su Successivo.

  4. In Configura listener, immettere le informazioni riportate di seguito e fare clic su Successivo.

    Menu listener del load balancer

    Configureremo i listener del load balancer delle richieste in entrata, essenzialmente il punto di accesso principale per il load balancer in cui riceviamo tutte le connessioni dal mondo esterno. Sarà necessario impostare HTTPS per il protocollo HTTPS sicuro sulla porta predefinita 443, che inevitabilmente richiede l'uso dei certificati X.509 (certificati SSL). Usando HTTPS ci assicureremo che tutte le connessioni siano criptate in modo sicuro.

    In uno scenario tipico in cui il load balancer pubblico funge da punto di accesso primario per gli utenti finali su Internet, è imperativo caricare certificati SSL firmati da un'autorità di certificazione pubblica affidabile (CA), come Digicert, Global Sign, Let's Encrypt e altri. Inoltre, questi certificati esposti a Internet devono essere rinnovati in prossimità delle relative date di scadenza per garantire che i clienti non ricevano messaggi non necessari come La connessione non è privata!! ERR_CERT_DATE_INVALID.

    Detto questo, dovrai caricare sia i dettagli pubblici che quelli privati del certificato Let's Encrypt creato. Assicurarsi che entrambi i componenti siano caricati correttamente per facilitare le connessioni sicure. Assicurarsi di caricare il certificato fullchain (che include CA intermedie e/o root) nella parte pubblica.

  5. La configurazione Gestisci log è facoltativa e non rientra nell'ambito di questa esercitazione. Fare clic su Sottometti.

  6. Dopo un po' di tempo il load balancer verrà creato. Ora dobbiamo configurare i server backend. Poiché SSL verrà utilizzato per i server backend, è necessario in primo luogo creare almeno un certificato nella sezione dei certificati del load balancer che verrà utilizzato per impostare la connessione SSL ai server backend. Come descritto in precedenza, questo bundle di certificati può essere creato manualmente con strumenti di terze parti oppure è possibile utilizzare il servizio di gestione dei certificati OCI. Per questo tutorial, useremo lo strumento XCA.

    Vai a Networking, Load balancer, Load balancer, Dettagli del load balancer e Certificati.

  7. Nella sezione Certificato, selezionare Risorsa certificato come Gestisci certificato load balancer e fare clic su Aggiungi certificato.

    Origine certificato del load balancer

    Aggiungere il certificato CA root o CA intermedio pubblico utilizzato per firmare i certificati SSL del server backend. Come promemoria, abbiamo utilizzato certificati autofirmati con qualsiasi nome comune e SAN, e senza una data di scadenza. Non è necessario installare qui alcun certificato server, poiché il load balancer utilizzerà esclusivamente la CA root per la convalida del certificato del server backend.

    Load balancer che aggiunge un certificato

  8. Per creare i server backend, selezionare Set backend e fare clic su Crea set backend.

    Set backend load balancer 1

  9. In Crea set backend, immettere le informazioni riportate di seguito.

    • Nome set backend: immettere il nome del set backend.
    • Selezionare SSL.
    • Selezionare Gestisci certificato load balancer.
    • Aggiungere il certificato creato al passo 7. Se si desidera assicurarsi che il load balancer controlli la firma del certificato SSL ricevuto, fare clic su Verifica certificato peer.
    • Controlli stato:
      • Protocollo: selezionare HTTP.
      • Porta: selezionare la porta 443.
      • Intervalli e timeout: mantenere l'intervallo e il timeout predefiniti (10000 e 3000 msec).
      • Per la risposta dello stato dal controllo dello stato, selezionare 200.
      • Percorso URL (URI): aggiunge qualsiasi risorsa dall'URL esistente nel server Web. Ad esempio: index.html, mainpage.html e così via.

    Set backend load balancer 1

Task 4: configurare OCI Network Firewall

Dopo l'impostazione di OCI Load Balancer, il nostro obiettivo è configurare un firewall di rete OCI per salvaguardare il traffico Nord-Sud. Il firewall verrà posizionato tra il load balancer appena configurato e il gateway Internet. Per procedere con l'impostazione del firewall di rete OCI, vedere Utilizzare il firewall di rete OCI per il proxy di inoltro SSL e l'ispezione in entrata utilizzando la regola di decifrazione e completare quanto segue.

Task 5: Configura instradamento OCI

OCI Network Firewall è stato distribuito, dobbiamo assicurarci che il traffico Nord-Sud lo attraversa in entrambe le direzioni. La prima cosa da fare è creare una tabella di instradamento dedicata per il gateway Internet associato alla VCN in cui si trova il firewall di rete OCI.

  1. Creare la tabella di instradamento nella VCN e aggiungere una voce del tipo di destinazione come private IP, della destinazione come blocco CIDR, introducendo il blocco CIDR della subnet del load balancer, per questa esercitazione 192.168.6.0/24 e della destinazione come IP privato assegnato al firewall di rete OCI distribuito nel task 6.

    Tabella di instradamento GW Internet

  2. Associare la tabella di instradamento al gateway Internet, fare clic su tre punti e su Associa tabella di instradamento, quindi selezionare la tabella di instradamento.

    Tabella di instradamento GW Internet

  3. Una volta associata a questa tabella di instradamento al gateway Internet, tutto il traffico diretto verso il load balancer pubblico 192.168.6.0/24 verrà inizialmente reindirizzato all'IP privato 192.168.5.78, dove risiede il firewall di rete OCI.

    Dall'IP privato 192.168.5.78 del firewall di rete OCI, dopo l'ispezione dei pacchetti da OCI Network Firewall, il pacchetto manterrà il percorso verso OCI Load Balancer. Da lì, vengono indirizzati alla destinazione finale tra i server backend selezionati, determinata dalla configurazione di instradamento del load balancer.

    Ora, è essenziale garantire che i pacchetti che ritornano agli utenti Internet seguano lo stesso percorso in ordine inverso, attraversando il firewall di rete OCI per l'ispezione delle risposte. È necessario creare una tabella di instradamento per la subnet pubblica del load balancer per instradare le risposte dai server backend tramite l'IP privato 192.168.5.78 del firewall di rete OCI, come mostrato nell'immagine riportata di seguito.

    tabella di instradamento del load balancer

Dalla subnet del firewall di rete OCI, dobbiamo assicurarci che le risposte vengano instradate al gateway Internet, aggiungendo un instradamento 0.0.0.0/0 al gateway Internet.

Tabella di instradamento firewall di rete

Dopo aver raggiunto il gateway Internet, i pacchetti vengono reindirizzati alla loro origine. Come test, passare a https://www.test.com.

Tabella di instradamento GW Internet

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.