Sicherheitsprofile für die URL-Filterung erstellen und verwalten

Sicherheitsprofile für die URL-Filterung sind Layer-7-Richtlinienstrukturen, die URL-Filter verwenden, um Sicherheitsrichtlinien für Firewall-Endpunkte zu definieren. Mit diesen Profilen werden Domainnamen im Netzwerkverkehr ausgewertet, um Aktionen zum Zulassen oder Ablehnen basierend auf bestimmten Abgleichsstrings und Prioritäten zu erzwingen.

Auf dieser Seite wird beschrieben, wie Sie Sicherheitsprofile für die URL-Filterung erstellen und verwalten.

Vorbereitung

Rollen

Bitten Sie Ihren Administrator, Ihnen die erforderlichen IAM-Rollen in Ihrer Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen, Aufrufen, Aktualisieren oder Löschen von Sicherheitsprofilen benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sicherheitsprofil für URL-Filterung erstellen

Wenn Sie ein url-filtering-Sicherheitsprofil erstellen möchten, geben Sie einen Namen als String oder als eindeutige URL-ID an.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Sicherheitsprofile auf.

    Zu „Sicherheitsprofile“

  2. Wählen Sie im Menü „Projektauswahl“ Ihre Organisation oder Ihr Projekt aus, in dem Sie das Sicherheitsprofil erstellen möchten.

  3. Wählen Sie den Tab Sicherheitsprofile aus.

  4. Klicken Sie auf Profil erstellen.

  5. Geben Sie in das Feld Name einen Namen ein.

  6. Optional: Geben Sie im Feld Beschreibung eine Beschreibung ein.

  7. Wenn Sie ein Cloud Next Generation Firewall Enterprise-Sicherheitsprofil erstellen möchten, wählen Sie im Bereich Zweck die Option Cloud NGFW Enterprise aus.

  8. Wenn Sie ein Sicherheitsprofil für die URL-Filterung erstellen möchten, wählen Sie im Bereich Typ die Option URL-Filterung aus.

  9. Klicken Sie im Abschnitt URL-Filter auf die Schaltfläche URL-Filter erstellen.

  10. Geben Sie im Bereich URL-Filter erstellen die folgenden Details an:

    • Priorität: Geben Sie die Priorität des URL-Filters an.
    • Aktion: Geben Sie die Aktion an, die Cloud NGFW für den Traffic ausführt.
      • Zulassen: Ermöglicht die Verbindungen, die einer URL entsprechen.
      • Ablehnen: Die Verbindungen, die einer URL entsprechen, werden abgelehnt.
    • URL-Liste: Geben Sie eine Liste von URLs oder Abgleichstrings an. Jeder URL- oder Abgleichsstring-Eintrag muss in einer eigenen Zeile ohne Leer- oder Trennzeichen stehen. Jeder Eintrag kann nur aus einer Domain bestehen. Weitere Informationen zu den Matcher-Strings finden Sie unter Matcher-Strings für URLs.
  11. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie eine YAML-Datei mit folgendem Inhalt:

    name: NAME
    type: url-filtering
    urlFilteringProfile:
      urlFilters:
        - filteringAction: ACTION
          priority: PRIORITY
          urls: [URL,URL,...]
    

    Ersetzen Sie Folgendes:

    • NAME: der Name des Sicherheitsprofils für die URL-Filterung. Sie können den Namen als String oder als eindeutige URL-ID angeben.

    • ACTION: Geben Sie eine der folgenden Aktionen an:

      • ALLOW: lässt Verbindungen zu, die mit einer URL übereinstimmen
      • DENY: lehnt Verbindungen ab, die mit einer URL übereinstimmen
    • PRIORITY: Priorität eines URL-Filters zwischen 0 und 2147483647.

    • URLs: Eine durch Kommas getrennte Liste von Abgleichsstrings. Beispiel: www.example.com und www.examplepetstore.com.

  2. Führen Sie den gcloud network-security security-profiles import-Befehl aus, um das Sicherheitsprofil für die URL-Filterung zu erstellen:

    gcloud network-security security-profiles import NAME \
      --source FILE_NAME \
      [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
      --location global
    

    Alternativ können Sie ein Sicherheitsprofil für die URL-Filterung ohne YAML-Datei mit dem gcloud network-security security-profiles url-filtering create-Befehl erstellen:

    gcloud network-security security-profiles url-filtering create NAME \
        [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
        --description DESCRIPTION \
        --location global
    

    Ersetzen Sie Folgendes:

    • NAME: der Name des Sicherheitsprofils für die URL-Filterung.

      Wenn Sie für den Namen nicht das Format der eindeutigen URL-ID verwenden, müssen Sie den Namen der Organisation oder des Projekts und den Standort angeben.

    • FILE_NAME: der Name der YAML-Datei. Beispiel: url-filtering-sp.yaml

    • ORGANIZATION_ID: die Organisations-ID. Mit diesem Flag können Sie ein Sicherheitsprofil auf Organisationsebene erstellen.

    • PROJECT_ID: Projekt-ID. Verwenden Sie dieses Flag, um ein Sicherheitsprofil auf Projektebene zu erstellen.

    • DESCRIPTION: eine optionale Beschreibung für das Sicherheitsprofil für die URL-Filterung.

    Das folgende Code-Snippet zeigt ein Beispiel für ein Sicherheitsprofil für die URL-Filterung, das Anfragen an www.example.com und www.examplepetstore.com zulässt, Anfragen an alle anderen Domains jedoch ablehnt:

    urlFilteringProfile:
      urlFilters:
        - filteringAction: ALLOW
          priority: 1000
          urls: ['www.example.com', 'www.examplepetstore.com']
        # the following URL filter is implicit and will be processed last
        - filteringAction: DENY
          priority: 2147483647
          urls: ['*']
    

URL-Filter mit impliziter Ablehnung

Das Sicherheitsprofil für die URL-Filterung enthält immer einen Standard-URL-Filter mit der niedrigsten Priorität (2147483647), der alle Verbindungen ablehnt, die nicht mit den URL-Filtern mit höherer Priorität übereinstimmen. Das folgende Code-Snippet zeigt ein Beispiel für den URL-Filter „Implizit verweigern“:

  urlFilteringProfile:
    urlFilters:
      # user-specified URL filters
      - filteringAction: DENY
        priority: 1000
        urls: ['www.example.com','www.examplepetstore.com']
      - filteringAction: ALLOW
        priority: 2000
        urls: ['www.example.org','www.example.net']
      # implicit deny URL filter that will be processed last
      - filteringAction: DENY
        priority: 2147483647
        urls: ['*']
  

Der URL-Filter für die implizite Ablehnung ist sichtbar, wenn Sie ein Sicherheitsprofil für die URL-Filterung aufrufen oder exportieren. Der implizite Filter kann nicht geändert oder entfernt werden. Wenn Sie beispielsweise die Standardaktion eines Profils von DENY (durch impliziten Filter erzwungen) in ALLOW ändern möchten, müssen Sie einen expliziten Filter hinzufügen, den Cloud NGFW vor dem impliziten Filter verarbeitet.

  urlFilteringProfile:
    urlFilters:
      # user-specified filters
      - filteringAction: DENY
        priority: 1000
        urls: ['www.example.com','www.examplepetstore.com']
      # explicit allow URL filter that you can add
      - filteringAction: ALLOW
        priority: 2000
        urls: ['*']
      # implicit deny URL filter that will be processed last
      - filteringAction: DENY
        priority: 2147483647
        urls: ['*']
  

Matcher-Strings für URLs

Matcher-Strings sind die Werte, die Sie im Feld urls eines URL-Filters angeben. Sie können einen oder mehrere Abgleichstrings in einem URL-Filter angeben.

Platzhalter

Jeder Abgleichstring in einer URL-Liste unterstützt ein Platzhalterzeichen (*) in begrenztem Umfang.

  • Jeder Abgleichstring darf nur ein einzelnes Sternchen (*) enthalten, das entweder das erste oder das einzige Zeichen ist.
  • Das Sternchen (*) kann die folgenden Bedeutungen haben:

    • Ein Sternchen (*) vor einem Punkt (.) gibt alle Subdomains der Domain an.

      Beispiel: Der Abgleichstring *.example.com stimmt mit a.example.com und a.b.c.example.com überein, aber nicht mit example.com.

      urlFilteringProfile:
        urlFilters:
          # user-specified filters
          - filteringAction: ALLOW
            priority: 1000
            urls: ['*.example.com']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      

      Im vorherigen Beispiel lässt Cloud NGFW Traffic zu den Subdomains von example.com zu, lehnt aber den restlichen ausgehenden Traffic ab.

    • Ein Sternchen (*) vor einem Label gibt die Domain und alle Subdomains an.

      Der Matcher-String *example.com stimmt beispielsweise mit a.example.com, a.b.c.example.com und example.com überein.

      urlFilteringProfile:
        urlFilters:
          # user-specified filters
          - filteringAction: ALLOW
            priority: 1000
            urls: ['*example.com']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      

      Im vorherigen Beispiel lässt Cloud NGFW Traffic zu example.com sowie zu den Subdomains von example.com zu, lehnt aber den restlichen ausgehenden Traffic ab.

    • Ein Sternchen (*) vor einer Domainendung (z. B. .com) gibt alle Domains (und ihre Subdomains) an, die die Domainendung verwenden.

      Beispiel: Der Abgleichstring *.com stimmt mit example.com und examplepetstore.com sowie allen zugehörigen Subdomains überein.

      Das folgende Code-Snippet zeigt, wie Sie alle Domains (und ihre Subdomains) zulassen, die auf .com enden, und den restlichen Traffic ablehnen.

      urlFilteringProfile:
        urlFilters:
          # Allow all domains (and their subdomains) that end in '.com'
          - filteringAction: ALLOW
            priority: 2000
            urls: ['*.com']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      

      Das folgende Code-Snippet zeigt, wie Sie alle Subdomains von example.com und examplepetstore.com ablehnen, diese Domains und alle anderen Domains (und ihre Subdomains), die mit .com enden, jedoch zulassen.

      urlFilteringProfile:
        urlFilters:
          # Deny all subdomains of example.com
          - filteringAction: DENY
            priority: 1000
            urls: ['*.example.com']
          # Deny all subdomains of examplepetstore.com
          - filteringAction: DENY
            priority: 1500
            urls: ['*.examplepetstore.com']
          # Allow all domains (and their subdomains) that end in '.com'
          - filteringAction: ALLOW
            priority: 2000
            urls: ['*.com']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      
    • Cloud NGFW interpretiert das Sternchen (*) nicht als Platzhalter für reguläre Ausdrücke.

      Beispiel: *example.test stimmt nicht mit newexample.test oder a.newexample.test überein. Der Abgleichstring stimmt nur mit example.test und den Subdomains von example.test überein.

    • Ein einzelnes Sternchen (*) ohne andere Zeichen gibt an, dass alle Anfragen übereinstimmen.

      Der Abgleichstring im URL-Filter mit expliziter Zulassung und der niedrigsten Priorität enthält beispielsweise nur ein Sternchen (*) und hat die Aktion ALLOW, die die Standardaktion DENY überschreibt. Das liegt daran, dass der URL-Filter „implizit verweigern“ den Standardwert DENY für alle Anfragen erzwingt, die nicht mit URL-Filtern mit höherer Priorität übereinstimmen.

      Der URL-Filter mit der höchsten Priorität – entweder ein expliziter ALLOW oder ein impliziter DENY – bestimmt, ob Cloud NGFW Verbindungen zulässt oder ablehnt, wenn keine SNI- oder Domaininformationen vorhanden sind. Dies kann bei unverschlüsseltem HTTP-Traffic oder bei deaktivierter TLS-Prüfung für verschlüsselte Nachrichtenheader passieren.

      urlFilteringProfile:
        urlFilters:
          # user-specified filters
          - filteringAction: DENY
            priority: 1000
            urls: ['www.example.com','www.examplepetstore.com']
          # explicit allow URL filter that you can add
          - filteringAction: ALLOW
            priority: 2000
            urls: ['*']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      

Beschränkungen

  • Matcher-Strings stellen entweder Domains oder Subdomains dar.
  • Abgleichstrings unterstützen keinen Schrägstrich (/). Beispiel: www.example.com/images.
  • Abgleichstrings unterstützen keine Schemas oder Protokollnamen. Beispiel: http://www.example.com.
  • Abgleichstrings unterstützen keine Portnummern. Beispiel: www.example.com:80.
  • Abgleichstrings unterstützen nur ASCII-Buchstaben, Ziffern und folgende Sonderzeichen: Bindestrich (-), Punkt (.) und Sternchen (*).

Domainnamen, die andere Zeichen als ASCII-Buchstaben, Ziffern, Bindestriche (-), Punkte (.) oder Sternchen (*) enthalten, müssen mit Punycode konvertiert werden. Punycode ist ein Codierungsstandard, der Unicode-Domainnamen in ein ASCII-kompatibles Format umwandelt.

  • Wenn Sie zwei oder mehr Labels haben, trennen Sie sie durch Punkte (.). Ein Label kann einen oder mehrere Bindestriche (-) enthalten, darf aber nicht mit einem Bindestrich beginnen oder enden. Jedes Label kann maximal 63 Zeichen enthalten.

  • In einem URL-Filter kann kein Punkt am Anfang eines Domainnamens oder aufeinanderfolgende Punkte in einem Abgleichstring verwendet werden. Ein URL-Filter kann nachgestellte Punkte enthalten, Cloud NGFW entfernt diese jedoch vor dem Speichern eines URL-Filters.

  • Cloud NGFW konvertiert die Abgleichstrings in Kleinbuchstaben, bevor der URL-Filter gespeichert wird. Cloud NGFW führt keine andere Normalisierung durch.

  • Jeder Domainname darf maximal 255 Zeichen enthalten.

URL-Filter für Subdomains mit mehreren Ebenen

Sie können URL-Filter mit unterschiedlichen Prioritäten und Aktionen verwenden, um den Netzwerkverkehr zu Subdomains mit mehreren Ebenen zu steuern. Sie können auch das Platzhalterzeichen (*) in Matcher-Strings verwenden, um Domains und Subdomains anzugeben.

Betrachten Sie beispielsweise ein Szenario, in dem Sie das folgende Verhalten implementieren:

  • a.b.c.example.com erlauben
  • *.b.c.example.com ablehnen (alle anderen Subdomains von b.c.example.com ablehnen)
  • *.c.example.com zulassen (alle anderen Subdomains von c.example.com zulassen)
  • *.example.com ablehnen (alle anderen Subdomains von example.com ablehnen)
  • example.com erlauben
  • Alles andere zulassen

Das folgende Code-Snippet implementiert dieses Szenario:

  urlFilteringProfile:
    urlFilters:
      # Allow 'a.b.c.example.com'
      - filteringAction: ALLOW
        priority: 1000
        urls: ['a.b.c.example.com']
      # Deny all subdomains of 'b.c.example.com'
      - filteringAction: DENY
        priority: 2000
        urls: ['*.b.c.example.com']
      # Allow all subdomains of 'c.example.com'
      - filteringAction: ALLOW
        priority: 3000
        urls: ['*.c.example.com']
      # Deny all subdomains of 'example.com'
      - filteringAction: DENY
        priority: 4000
        urls: ['*.example.com']
      # explicit allow URL filter
      - filteringAction: ALLOW
        priority: 5000
        urls: ['*']
      # implicit deny URL filter that will be processed last
      - filteringAction: DENY
        priority: 2147483647
        urls: ['*']
  

URL-Filter-Sicherheitsprofil auflisten und Details ansehen

Sie können die in einer Organisation oder einem Projekt erstellten Sicherheitsprofile für die URL-Filterung auflisten. Sie können sich auch die Profildetails ansehen, z. B. Typ, Zweck und Beschreibung.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Sicherheitsprofile auf.

    Zu „Sicherheitsprofile“

  2. Wählen Sie den Tab Sicherheitsprofile aus, um eine Liste der konfigurierten Sicherheitsprofile aufzurufen.

  3. Wenn Sie nach URL-Filter-Sicherheitsprofilen filtern möchten, geben Sie im Feld Filter als Profiltyp URL-Filterung an.

    Der Tab enthält eine Liste der Sicherheitsprofile für die URL-Filterung.

  4. Klicken Sie auf ein URL-Filterung-Sicherheitsprofil, um die Profildetails aufzurufen.

gcloud

Verwenden Sie den gcloud network-security security-profiles url-filtering list-Befehl, um alle Sicherheitsprofile für die URL-Filterung aufzulisten:

gcloud network-security security-profiles url-filtering list \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    [--billing-project QUOTA_PROJECT_ID]
    --location global

Wenn Sie die Details eines Sicherheitsprofils für die URL-Filterung aufrufen möchten, führen Sie den gcloud network-security security-profiles url-filtering describe-Befehl aus:

gcloud network-security security-profiles url-filtering describe NAME \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    [--billing-project QUOTA_PROJECT_ID]
    --location global

Ersetzen Sie Folgendes:

  • NAME: der Name des Sicherheitsprofils.

    Wenn Sie für den Namen nicht das Format der eindeutigen URL-ID verwenden, müssen Sie den Namen der Organisation oder des Projekts und den Standort angeben.

  • ORGANIZATION_ID: die Organisations-ID, in der das Sicherheitsprofil vorhanden ist.

  • PROJECT_ID: die Projekt-ID, in der das Sicherheitsprofil vorhanden ist.

  • QUOTA_PROJECT_ID: Ihre Kontingentprojekt-ID. Verwenden Sie dieses Flag nur für Sicherheitsprofile auf Organisationsebene.

URL-Filter-Sicherheitsprofil löschen

Sie können ein Sicherheitsprofil für die URL-Filterung löschen, indem Sie dessen Namen, Standort und Organisation oder Projekt angeben. Wenn von einer Sicherheitsprofilgruppe auf ein Sicherheitsprofil verwiesen wird, kann dieses nicht gelöscht werden.

Verwenden Sie die Google Cloud Console oder die gcloud CLI, um ein Sicherheitsprofil für die URL-Filterung zu löschen. Wenn jedoch von einer Sicherheitsprofilgruppe auf ein Sicherheitsprofil verwiesen wird, kann dieses nicht gelöscht werden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Sicherheitsprofile auf.

    Zu „Sicherheitsprofile“

  2. Wählen Sie den Tab Sicherheitsprofile aus. Der Tab enthält eine Liste der konfigurierten Sicherheitsprofile.

  3. Wählen Sie das Sicherheitsprofil aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.

  4. Klicken Sie zum Bestätigen noch einmal auf Löschen.

gcloud

Verwenden Sie den gcloud network-security security-profiles url-filtering delete-Befehl, um ein Sicherheitsprofil für die URL-Filterung zu löschen:

gcloud network-security security-profiles url-filtering delete NAME \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    --location global

Ersetzen Sie Folgendes:

  • NAME: der Name des Sicherheitsprofils.

    Wenn Sie den Namen nicht im Format der eindeutigen URL-ID angeben, müssen Sie den Namen der Organisation oder des Projekts sowie den Standort angeben.

  • ORGANIZATION_ID: die Organisations-ID. Verwenden Sie dieses Flag für ein Sicherheitsprofil auf Organisationsebene.

  • PROJECT_ID: Ihre Projekt-ID. Verwenden Sie dieses Flag für ein Sicherheitsprofil auf Projektebene.

  • QUOTA_PROJECT_ID: Ihre Kontingentprojekt-ID. Verwenden Sie dieses Flag nur für Sicherheitsprofile auf Organisationsebene.

URL-Filter-Sicherheitsprofil importieren

Sie können ein Sicherheitsprofil für die URL-Filterung (entweder benutzerdefiniert oder zuvor exportiert) aus einer YAML-Datei importieren. Wenn Sie ein Sicherheitsprofil für die URL-Filterung importieren und bereits ein Profil mit demselben Namen vorhanden ist, wird das vorhandene Profil von Cloud NGFW aktualisiert.

Verwenden Sie die gcloud CLI, um ein Sicherheitsprofil für die URL-Filterung aus einer YAML-Datei zu importieren. Wenn beim Importieren eines Profils bereits ein Profil mit demselben Namen vorhanden ist, wird dieses Profil von Cloud NGFW aktualisiert.

gcloud

Verwenden Sie den gcloud network-security security-profiles import-Befehl, um ein Sicherheitsprofil für die URL-Filterung aus einer YAML-Datei zu importieren:

gcloud network-security security-profiles import NAME \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    --location global \
    --source FILE_NAME

Ersetzen Sie Folgendes:

  • NAME: der Name des Sicherheitsprofils vom Typ url-filtering, das Sie importieren möchten. Sie können den Namen als String oder als eindeutige URL-ID angeben.

  • ORGANIZATION_ID: die Organisations-ID. Verwenden Sie dieses Flag für ein Sicherheitsprofil auf Organisationsebene.

  • PROJECT_ID: Projekt-ID. Verwenden Sie dieses Flag für ein Sicherheitsprofil auf Projektebene.

  • FILE_NAME: der Pfad zur YAML-Datei mit den Konfigurationsexportdaten.

URL-Filterprofil exportieren

Sie können ein Sicherheits-Profil für die URL-Filterung in eine YAML-Datei exportieren. Anstatt beispielsweise ein großes Sicherheitsprofil über die Benutzeroberfläche zu ändern, können Sie es exportieren, schnell ändern und wieder importieren.

Verwenden Sie die gcloud CLI, um ein Sicherheitsprofil für die URL-Filterung in eine YAML-Datei zu exportieren.

gcloud

Verwenden Sie den gcloud network-security security-profiles export-Befehl, um ein Sicherheitsprofil für die URL-Filterung in eine YAML-Datei zu exportieren:

gcloud network-security security-profiles export NAME \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    --location global \
    --destination FILE_NAME

Ersetzen Sie Folgendes:

  • NAME: der Name des Sicherheitsprofils vom Typ url-filtering, das Sie exportieren möchten. Sie können den Namen als String oder als eindeutige URL-ID angeben.

  • ORGANIZATION_ID: die Organisations-ID. Verwenden Sie dieses Flag für ein Sicherheitsprofil auf Organisationsebene.

  • PROJECT_ID: Projekt-ID. Verwenden Sie dieses Flag für ein Sicherheitsprofil auf Projektebene.

  • FILE_NAME: der Pfad zur YAML-Datei, in die Cloud NGFW die Konfiguration exportiert.

Nächste Schritte