Wie konfiguriere ich meine Netzwerk-Firewall-Regeln, um bestimmte Domains zu blockieren oder zuzulassen?

Lesedauer: 9 Minute
0

Ich möchte ausgehenden Web-Traffic aus Ressourcen in meiner Amazon Virtual Cloud (Amazon VPC) mithilfe der AWS Network Firewall filtern.

Kurzbeschreibung

Netzwerk-Firewall-Richtlinien und Regelgruppen werden anhand ihrer Regelauswertungsreihenfolge definiert. Dabei gibt es entweder eine standardmäßige Aktionsreihenfolge oder eine strenge Bewertungsreihenfolge. Eine Firewall-Richtlinie, die für die Standardaktionsreihenfolge konfiguriert ist, bewertet Regeln in der folgenden Reihenfolge: Übergeben, Löschen, Ablehnen und Warnung. Die Stateful-Standardaktion für eine Standardrichtlinie ist „Pass“.

Bei einer strikten Bewertungsreihenfolge werden Regelgruppen in der Reihenfolge ihrer Priorität von der niedrigsten zur höchsten bewertet. Regeln innerhalb einer Gruppe werden dann in der Reihenfolge ausgewertet, in der sie konfiguriert sind. Die Stateful-Standardaktion für eine strikte Auftragsrichtlinie ist konfigurierbar, z. B. die Konfiguration von „Drop established“. Standardregelgruppen sind den standardmäßigen Richtlinien für die Aktionsreihenfolge zugeordnet, wohingegen Regelgruppen mit strikter Reihenfolge Richtlinien für die strikte Bewertungsreihenfolge zugeordnet sind.

Sie können die Netzwerk-Firewall so konfigurieren, dass der Zugriff auf bestimmte Domains zugelassen oder blockiert wird. Dies kann für Richtlinien oder Regeln erfolgen, die entweder die Standardaktionsreihenfolge oder die strikte Bewertungsreihenfolge verwenden, indem Sie eine der folgenden Methoden verwenden:

  • Regelgruppe für Stateful-Domainlisten
  • Suricata-kompatible IPS-Regeln

Stateful Domain Name Inspection kann für HTTP- und HTTPS-Protokolle konfiguriert werden. Für HTTP ist die Anforderung unverschlüsselt und ermöglicht es der Netzwerk-Firewall, den Hostnamenwert im HTTP-Host-Header zu sehen. Für HTTPS verwendet die Netzwerk-Firewall die Erweiterung Server Name Indication (SNI) im TLS-Handshake, um den Hostnamen zu ermitteln. Die Firewall vergleicht dann den Hostnamen (oder Domainnamen) mit den konfigurierten HTTP- oder TLS-Regeln.

Mit einer Domain-Allowlist leitet die Firewall HTTP- oder HTTPS-Anfragen nur an angegebene Domains weiter. Anforderungen an alle anderen Domains werden gelöscht.

Auflösung

Standard-Aktionsreihenfolge

Für Richtlinien mit Standardaktionsreihenfolge konfigurieren Sie eine Regelgruppe für Domainlisten, um HTTP- und HTTPS-Anforderungen an bestimmte Domains zuzulassen.

1.    Öffnen Sie die Amazon VPC-Konsole.

2.    Erstellen Sie eine Firewall.

3.    Wählen Sie im Navigationsbereich unter Netzwerk-Firewall die Option Firewall-Richtlinien aus.

4.    Wählen Sie die standardmäßige Firewall-Richtlinie für Aktionsreihenfolge aus, die Sie bearbeiten möchten.

5.    Wählen Sie unter Stateful-Regelgruppen die Option Aktionen und dann Stateful-Regelgruppe erstellen aus.

6.    Geben Sie einen eindeutigen Regelgruppennamen ein.

7.    Geben Sie für die Kapazitätsreservierung eine geschätzte Anzahl von Domains ein, die in der Liste enthalten sein werden. Dieser Wert kann nicht geändert werden, nachdem die Regelgruppe erstellt wurde.

8.    Wählen Sie für Stateful-Regelgruppen-Optionen die Option Domainliste aus.
Hinweis: Die Reihenfolge der Stateful-Regeln kann nicht geändert werden, da sie von der Richtlinie übernommen wurde. Die Regelreihenfolge wird als Standard angezeigt.

9.Geben Sie unter Domainliste für Domainnamenquelle die Domainnamen ein, die Sie abgleichen möchten. Domains können als exakt übereinstimmende Domains definiert werden, z. B. abc.example.com. Sie können auch als Platzhalter definiert werden, z. B. example.com.

10.    Wählen Sie für den Typ Quell-IPs die Option Standard aus, wenn die Quell-IP in derselben VPC wie die Firewall vorhanden ist. Wählen Sie Definiert, wenn die Quell-IP in einer Remote-VPC vorhanden ist. Wenn Sie Definiert wählen, geben Sie unter Quell-IP-CIDR-Bereiche die Quellsubnetze ein, die die Firewall überprüfen soll.

11.    Wählen Sie für Protokolle HTTP und HTTPS aus.

12.    Wählen Sie unter Aktion die Option Zulassen.

13.    Wählen Sie Erstellen und zur Richtlinie hinzufügen aus.

Um Suricata-kompatible IPS-Regeln für HTTP und HTTPS manuell zu definieren, konfigurieren Sie in der Regelgruppe eine Standardaktionsreihenfolge (Suricata-kompatible IPS-Regel).

1.    Öffnen Sie die Amazon VPC-Konsole.

2.    Erstellen Sie eine Firewall.

3.    Wählen Sie im Navigationsbereich unter Netzwerk-Firewall die Option Firewall-Richtlinien aus.

4.    Wählen Sie die standardmäßige Firewall-Richtlinie für Aktionsreihenfolge aus, die Sie bearbeiten möchten.

5.    Wählen Sie unter Stateful-Regelgruppen die Option Aktionen und dann die Option Stateful-Regelgruppe erstellen aus.

6.    Geben Sie einen eindeutigen Regelgruppennamen ein.

7.    Geben Sie für Kapazitätsreservierung eine geschätzte Anzahl von Regeln ein, die die Liste enthalten soll. Dieser Wert kann nicht geändert werden, nachdem die Regelgruppe erstellt wurde.

8.    Wählen Sie für Stateful-Regelgruppen-Optionen Suricata-kompatible IPS-Regeln aus.
Hinweis: Die Reihenfolge der Stateful-Regeln kann nicht geändert werden, da sie von der Richtlinie übernommen wurde. Die Regelreihenfolge wird als Standard angezeigt.

9.    (Optional) Definieren Sie benutzerdefinierte Regelvariablen für die Verwendung in den Suricata-Signaturen.

10.    (Optional) Definieren Sie IP-Set-Referenzen zur Verwendung in den Suricata-Signaturen.

11.    Geben Sie unter Suricata-kompatible IPS-Regeln die folgenden Regeln ein. Ändern Sie die Domains in die spezifischen Domains, die Sie adressieren möchten.

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.    Wählen Sie Erstellen und zur Richtlinie hinzufügen aus.
**Hinweis:**Das Etablierte Flow-Schlüsselwort wird häufig in Domainregeln verwendet, aber es berücksichtigt möglicherweise nicht alle Randfälle beim Paketaustausch, die außerhalb des Datenflusses liegen. Bevor Sie ein Beispiel für eine Regelliste verwenden, testen Sie die Regel, um sicherzustellen, dass sie wie erwartet funktioniert.

Strenge Bewertungsreihenfolge

Für Richtlinien mit strenger Bewertungsreihenfolge konfigurieren Sie eine Regelgruppe für Domainlisten, um HTTP- und HTTPS-Anforderungen an bestimmte Domains zuzulassen.

1.    Öffnen Sie die Amazon VPC-Konsole.

2.    Erstellen Sie eine Firewall.

3.    Wählen Sie im Navigationsbereich unter Netzwerk-Firewall die Option Firewall-Richtlinien aus.

4.    Wählen Sie die Firewall-Richtlinie mit strikter Bewertungsreihenfolge aus, die Sie bearbeiten möchten.

5.    Wählen Sie unter Stateful-Regelgruppen die Option Aktionen und dann die Option Stateful-Regelgruppe erstellen aus.

6.    Geben Sie einen eindeutigen Regelgruppennamen ein.

7.    Geben Sie für Kapazitätsreservierung eine geschätzte Anzahl von Domains ein, die in der Liste enthalten sein werden. Dieser Wert kann nicht geändert werden, nachdem die Regelgruppe erstellt wurde.

8.    Wählen Sie für Stateful-Regelgruppen-Optionen die Option Domainliste aus.
Hinweis: Die Reihenfolge der Stateful-Regeln kann nicht geändert werden, da sie von der Richtlinie übernommen wurde. Die Regelreihenfolge wird als Strikt angezeigt.

9.Geben Sie unter Domainliste für Domainnamenquelle die Domainnamen ein, die Sie abgleichen möchten. Domains können als exakt übereinstimmende Domains definiert werden, z. B. abc.example.com. Sie können auch als Platzhalter definiert werden, z. B. example.com.

10.    Wählen Sie für den Typ Quell-IPs die Option Standard aus, wenn die Quell-IP in derselben VPC wie die Firewall vorhanden ist. Wählen Sie Definiert, wenn die Quell-IP in einer Remote-VPC vorhanden ist. Wenn Sie Definiert wählen, geben Sie unter Quell-IP-CIDR-Bereiche die Quellsubnetze ein, die die Firewall überprüfen soll.

11.    Wählen Sie für Protokolle HTTP und HTTPS aus.

12.    Wählen Sie unter Aktion die Option Zulassen.

13.    Wählen Sie Erstellen und zur Richtlinie hinzufügen aus.

14.    Wählen Sie im Navigationsbereich unter Netzwerk-Firewall die Option Firewall-Richtlinien aus.

15.    Wählen Sie die strikte Reihenfolgenrichtlinie aus, zu der Sie diese Regelgruppe hinzugefügt haben.

16.    Wählen Sie für Reihenfolge und Standardaktionen für Stateful-Regel-Bewertung die Option Bearbeiten aus.

17.    Wählen Sie unter Standardaktionen die Option Drop established aus. Wählen Sie dann Speichern.

Um Suricata-kompatible IPS-Regeln für HTTP und HTTPS manuell zu definieren, konfigurieren Sie in der Regelgruppe eine strenge Bewertungsreihenfolge (Suricata-kompatible IPS-Regel).

1.    Öffnen Sie die Amazon VPC-Konsole.

2.    Erstellen Sie eine Firewall.

3.    Wählen Sie im Navigationsbereich unter Netzwerk-Firewall die Option Firewall-Richtlinien aus.

4.    Wählen Sie die Firewall-Richtlinie mit strikter Bewertungsreihenfolge aus, die Sie bearbeiten möchten.

5.    Wählen Sie unter Stateful-Regelgruppen die Option Aktionen und dann die Option Stateful-Regelgruppe erstellen aus.

6.    Geben Sie einen eindeutigen Regelgruppennamen ein.

7.    Geben Sie für Kapazitätsreservierung eine geschätzte Anzahl von Regeln ein, die die Liste enthalten soll. Dieser Wert kann nicht geändert werden, nachdem die Regelgruppe erstellt wurde.

8.    Wählen Sie für Stateful-Regelgruppen-Optionen Suricata-kompatible IPS-Regeln aus.
Hinweis: Die Reihenfolge der Stateful-Regeln kann nicht geändert werden, da sie von der Richtlinie übernommen wurde. Die Regelreihenfolge wird als Strikt angezeigt.

9.    (Optional) Definieren Sie benutzerdefinierte Regelvariablen für die Verwendung in den von Ihnen definierten Suricata-Signaturen.

10.    (Optional) Definieren Sie IP-Set-Referenzen zur Verwendung in den von Ihnen definierten Suricata-Signaturen.

11.    Geben Sie unter Suricata-kompatible IPS-Regeln die folgenden Regeln ein. Ändern Sie die Domains in die spezifischen Domains, die Sie adressieren möchten.

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.    Wählen Sie Erstellen und zur Richtlinie hinzufügen aus.

13.    Wählen Sie im Navigationsbereich unter Netzwerk-Firewall die Option Firewall-Richtlinien aus.

14.    Wählen Sie die strikte Reihenfolgenrichtlinie aus, zu der Sie diese Regelgruppe hinzugefügt haben.

15.    Wählen Sie für Reihenfolge und Standardaktionen für Stateful-Regel-Bewertung die Option Bearbeiten aus.

16.    Wählen Sie unter Standardaktionen die Option Drop established aus. Wählen Sie dann Speichern.

**Hinweis:**Das Etablierte Flow-Schlüsselwort wird häufig in Domainregeln verwendet, aber es berücksichtigt möglicherweise nicht alle Randfälle beim Paketaustausch, die außerhalb des Datenflusses liegen. Bevor Sie ein Beispiel für eine Regelliste verwenden, testen Sie die Regel, um sicherzustellen, dass sie wie erwartet funktioniert.

Überprüfung

Sie können anhand Ihrer Konfigurationen überprüfen, ob die Domains korrekt behandelt werden, indem Sie Testbefehle für die angegebenen Domains ausführen.

Im folgenden Beispiel ist die Domain https://example.com zulässig und eine 200 OK-Antwort wird an den Client zurückgegeben:

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

Im folgenden Beispiel ist die HTTP-Domain http://www.google.com blockiert:

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: /

Im folgenden Beispiel ist die HTTPS-Domain https://www.google.com blockiert:

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):

Ähnliche Informationen

Firewall-Richtlinien in der Netzwerk-Firewall

Erstellen einer Stateful-Regelgruppe

Beispiele für Stateful-Regeln für die Netzwerk-Firewall

Bewertungsreihenfolge für eine Stateful-Regelgruppe

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren