Come posso configurare le mie regole del firewall di rete per bloccare o autorizzare domini specifici?

10 minuti di lettura
0

Voglio filtrare il traffico web in uscita dalle risorse nel mio Amazon Virtual Cloud (Amazon VPC) utilizzando AWS Network Firewall.

Breve descrizione

Le policy e i gruppi di regole di Network Firewall sono definiti in base all'ordine di valutazione delle regole, e possono avere un ordine di azione predefinito o un ordine di valutazione rigoroso. Una policy del firewall configurata secondo l'ordine di azione predefinito valuta le regole nel seguente ordine: pass, drop, reject, and alert. L'azione stateful predefinita per una policy predefinita è pass.

Con un ordine di valutazione rigoroso, i gruppi di regole vengono valutati in ordine di priorità dalla più bassa alla più alta. Le regole all'interno di un gruppo vengono quindi valutate nell'ordine in cui sono configurate. L'azione stateful predefinita per una policy dall'ordine rigoroso è configurabile, come la configurazione Drop stabilita. I gruppi di regole predefiniti sono associati alle policy di ordine delle azioni predefinite, mentre i gruppi di regole dall'ordine rigoroso sono associati a policy rigorose degli ordini di valutazione.

È possibile configurare Network Firewall per autorizzare o bloccare l'accesso a domini specifici. Questa operazione può essere eseguita per le policy o le regole applicando l'ordine di azione predefinito o l'ordine di valutazione rigoroso utilizzando uno dei seguenti:

  • Gruppo di regole dell'elenco di domini stateful
  • Regole IPS compatibili con Suricata

L'ispezione dei nomi di dominio stateful può essere configurata per i protocolli HTTP e HTTPS. Per HTTP, la richiesta non è crittografata e consente a Network Firewall di visualizzare il valore del nome host nell'intestazione dell'host HTTP. Per HTTPS, Network Firewall utilizza l'estensione Server Name Indication (SNI) nell'handshake TLS per determinare il nome host. Il firewall confronta quindi il nome host (o nome di dominio) con le regole HTTP o TLS configurate.

Con un elenco di domini consentiti, il firewall invia le richieste HTTP o HTTPS solo a domini specificati. Le richieste a tutti gli altri domini vengono scartate.

Soluzione

Ordine delle azioni predefinito

Per le policy con un ordine di azione predefinito, configura un gruppo di regole dell'elenco di domini per consentire le richieste HTTP e HTTPS a domini specifici.

1.    Apri la Console Amazon VPC.

2.    Crea un firewall.

3.    Nel riquadro di navigazione, nella sezione Network Firewall, scegli Policy del firewall.

4.    Scegli la policy del firewall che segue l'ordine delle azioni predefinito che vuoi modificare.

5.    In Gruppi di regole stateful, scegli ** Azioni**, quindi seleziona Crea gruppo di regole stateful.

6.    Inserisci un nome univoco per il gruppo di regole.

7.    In prenotazione della capacità, inserisci un numero stimato di domini che saranno inclusi nell'elenco. Non è possibile modificare questo valore dopo la creazione del gruppo di regole.

8.    In Opzioni del gruppo di regole stateful, scegli Elenco domini.
**Nota:**Non è possibile modificare l'ordine delle regole stateful perché è ereditato dalla policy. L'Ordine delle regole viene visualizzato come Predefinito.

9.    Nella sezione Elenco domini, in Origine del nome di dominio, inserisci i nomi di dominio che vuoi abbinare. I domini possono essere definiti come una corrispondenza esatta, ad esempio abc.example.com. Possono anche essere definiti come caratteri jolly, ad esempio .example.com.

10.    Nella sezione Tipo di origine IP, scegli Predefinito se l'IP di origine è presente nello stesso VPC del firewall. Scegli Definito se l'IP di origine è presente in un VPC remoto. Quando scegli Definito, inserisci le sottoreti di origine che vuoi fare ispezionare al firewall negli Intervalli CIDR degli indirizzi IP di origine.

11.    In Protocolli, seleziona ** HTTP e HTTPS**.

12.    In Azione, scegli Autorizza.

13.    Scegli Crea e aggiungi alla policy.

Per definire manualmente le regole IPS compatibili con Suricata per HTTP e HTTPS, configura un ordine di azione predefinito (regola IPS compatibile con Suricata) nel gruppo di regole.

1.    Apri la Console Amazon VPC.

2.    Crea un firewall.

3.    Nel riquadro di navigazione, nella sezione Network Firewall, scegli Policy del firewall.

4.    Scegli la policy del firewall che segue l'ordine delle azioni predefinito che vuoi modificare.

5.    In Gruppi di regole stateful, seleziona Azioni, quindi scegli Crea gruppo di regole stateful.

6.    Inserisci un nome univoco per il gruppo di regole.

7.    In Prenotazione della capacità, inserisci un numero stimato di regole che saranno incluse nell'elenco. Non è possibile modificare questo valore dopo la creazione del gruppo di regole.

8.    Nelle Opzioni relative ai gruppi di regole stateful, scegli le Regole IPS compatibili con Suricata.
**Nota:**Non è possibile modificare l'ordine delle regole stateful perché è ereditato dalla policy. L'Ordine delle regole viene visualizzato come Predefinito.

9.    (Facoltativo) Definisci delle variabili basate su regole personalizzate da utilizzare nelle firme di Suricata.

10.    (Facoltativo) Definisci i riferimenti dei set IP da utilizzare nelle firme Suricata.

11.    Nella sezione Regole IPS compatibili con Suricata, inserisci le seguenti regole. Cambia i domini con i domini specifici a cui vuoi indirizzarti.

pass http $HOME_NET any -> $EXTERNAL_NET any (http.host; dotprefix; content:".amazonaws.com"; endswith; msg:"matching HTTP allowlisted FQDNs"; flow:to_server, established; sid:1; rev:1;)
pass http $HOME_NET any -> $EXTERNAL_NET any (http.host; content:"example.com"; startswith; endswith; msg:"matching HTTP allowlisted FQDNs"; flow:to_server, established; sid:2; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; dotprefix; content:".amazonaws.com"; nocase; endswith; msg:"matching TLS allowlisted FQDNs"; flow:to_server, established; sid:3; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; content:"example.com"; startswith; nocase; endswith; msg:"matching TLS allowlisted FQDNs"; flow:to_server, established; sid:4; rev:1;)
drop http $HOME_NET any -> $EXTERNAL_NET any (http.header_names; content:"|0d 0a|"; startswith; msg:"not matching any HTTP allowlisted FQDNs"; flow:to_server, established; sid:5; rev:1;)
drop tls $HOME_NET any -> $EXTERNAL_NET any (msg:"not matching any TLS allowlisted FQDNs"; flow:to_server, established; sid:6; rev:1;)

12.    Scegli Crea e aggiungi alla policy.
Nota: La parola chiave di flusso stabilita viene comunemente utilizzata nelle regole di dominio, ma potrebbe non tenere conto di tutti i casi edge dello scambio di pacchetti fuori flusso. Prima di utilizzare qualsiasi elenco di regole di esempio, testa la regola per verificare che funzioni come previsto.

Ordine di valutazione rigoroso

Per le policy con un ordine di valutazione rigoroso, configura un gruppo di regole dell'elenco di domini per consentire le richieste HTTP e HTTPS a domini specifici.

1.    Apri la console Amazon VPC.

2.    Crea un firewall.

3.    Nel riquadro di navigazione, nella sezione Network Firewall, scegli Policy del firewall.

4.    Scegli la policy del firewall che segue l'ordine di valutazione rigoroso che vuoi modificare.

5.    In Gruppi di regole stateful, seleziona Azioni, quindi scegli Crea gruppo di regole stateful.

6.    Inserisci un nome univoco per il gruppo di regole.

7.    In Prenotazione della capacità, inserisci un numero stimato di domini che saranno inclusi nell'elenco. Non è possibile modificare questo valore dopo la creazione del gruppo di regole.

8.    In Opzioni del gruppo di regole stateful, scegli Elenco domini.
**Nota:**Non è possibile modificare l'ordine delle regole stateful perché è ereditato dalla policy. L'Ordine delle regole viene visualizzato come Rigoroso.

9.    Nella sezione Elenco domini, in Origine del nome di dominio, inserisci i nomi di dominio che vuoi abbinare. I domini possono essere definiti come una corrispondenza esatta, ad esempio abc.example.com. Possono anche essere definiti come caratteri jolly, ad esempio .example.com.

10.    Nella sezione Tipo di origine IP, scegli Predefinito se l'IP di origine è presente nello stesso VPC del firewall. Scegli Definito se l'IP di origine è presente in un VPC remoto. Quando scegli Definito, inserisci le sottoreti di origine che vuoi fare ispezionare al firewall negli Intervalli CIDR degli indirizzi IP di origine.

11.    In Protocolli, scegli HTTP e HTTPS.

12.    In Azione, scegli Autorizza.

13.    Scegli Crea e aggiungi alla policy.

14.    Nel riquadro di navigazione, nella sezione Network Firewall, scegli Policy del firewall.

15.    Scegli la policy dall'ordine rigoroso a cui hai aggiunto questo gruppo di regole.

16.    InOrdine di valutazione delle regole stateful e azioni predefinite, seleziona Modifica.

17.    In Azioni predefinite, scegli Elimina stabilite. Quindi, scegli Salva.

Per definire manualmente le regole IPS compatibili con Suricata per HTTP e HTTPS, configura un ordine di valutazione rigoroso (regola IPS compatibile con Suricata) nel gruppo di regole.

1.    Apri la console Amazon VPC.

2.    Crea un firewall.

3.    Nel riquadro di navigazione, nella sezione Network Firewall, scegli Policy del firewall.

4.    Scegli la policy del firewall che segue l'ordine di valutazione rigoroso che vuoi modificare.

5.    In Gruppi di regole stateful, seleziona Azioni, quindi scegli Crea gruppo di regole stateful.

6.    Inserisci un nome univoco per il gruppo di regole.

7.    In Prenotazione della capacità, inserisci un numero stimato di regole che saranno incluse nell'elenco. Non è possibile modificare questo valore dopo la creazione del gruppo di regole.

8.    Nelle Opzioni relative ai gruppi di regole stateful, scegli le Regole IPS compatibili con Suricata.
**Nota:**Non è possibile modificare l'ordine delle regole stateful perché è ereditato dalla policy. L'Ordine delle regole viene visualizzato come Rigoroso.

9.    (Facoltativo) Definisci delle variabili basate su regole personalizzate da utilizzare nelle firme Suricata che definisci.

10.    (Facoltativo) Definisci i riferimenti dei set IP da utilizzare nelle firme Suricata che definisci.

11.    Nella sezione Regole IPS compatibili con Suricata, inserisci le seguenti regole. Cambia i domini con i domini specifici a cui vuoi indirizzarti.

pass http $HOME_NET any -> $EXTERNAL_NET any (http.host; dotprefix; content:".amazonaws.com"; endswith; msg:"matching HTTP allowlisted FQDNs"; flow:to_server, established; sid:1; rev:1;)
pass http $HOME_NET any -> $EXTERNAL_NET any (http.host; content:"example.com"; startswith; endswith; msg:"matching HTTP allowlisted FQDNs"; flow:to_server, established; sid:2; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; dotprefix; content:".amazonaws.com"; nocase; endswith; msg:"matching TLS allowlisted FQDNs"; flow:to_server, established; sid:3; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; content:"example.com"; startswith; nocase; endswith; msg:"matching TLS allowlisted FQDNs"; flow:to_server, established; sid:4; rev:1;)

12.    Scegli Crea e aggiungi alla policy.

13.    Nel riquadro di navigazione, nella sezione Network Firewall, scegli Policy del firewall.

14.    Scegli la policy dall'ordine rigoroso a cui hai aggiunto questo gruppo di regole.

15.    InOrdine di valutazione delle regole stateful e azioni predefinite, seleziona Modifica.

16.    In Azioni predefinite, scegli Elimina stabilite. Quindi, scegli Salva.

Nota: La parola chiave di flusso stabilita viene comunemente utilizzata nelle regole di dominio, ma potrebbe non tenere conto di tutti i casi edge dello scambio di pacchetti fuori flusso. Prima di utilizzare qualsiasi elenco di regole di esempio, testa la regola per verificare che funzioni come previsto.

Verifica

Puoi verificare che i domini siano gestiti correttamente in base alle tue configurazioni eseguendo comandi di prova sui domini specificati.

Nell'esempio seguente, il dominio https://example.com è consentito e al client viene restituita una risposta di 200 OK:

curl -v --silent https://example.com --stderr - | grep 200
< HTTP/2 200

Nell'esempio seguente, il dominio HTTP http://www.google.com è bloccato:

curl -v http://www.google.com
* Trying 172.253.115.99:80...
* Connected to www.google.com (http://www.google.com/) (172.253.115.99) port 80 (#0)
> GET / HTTP/1.1
> Host: www.google.com (http://www.google.com/)
> User-Agent: curl/7.79.1
> Accept: /

Nell'esempio seguente, il dominio HTTPS **https://www.google.com ** è bloccato:

curl -v https://www.google.com
* Trying 172.253.115.147:443...
* Connected to www.google.com (http://www.google.com/) (172.253.115.147) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
* CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):

Informazioni correlate

Policy del firewall in Network Firewall

Crea un gruppo di regole stateful

Esempi di regole stateful per Network Firewall

Ordine di valutazione per il gruppo di regole stateful

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa