Entschlüsselung und Prüfung des Netzwerkdatenverkehrs einrichten

Richten Sie die Zertifikatsauthentifizierung und Vault Secrets ein, um den Netzwerktraffic zu entschlüsseln und zu prüfen.

Vault Secrets werden verwendet, um SSL-/TLS-Traffic zu entschlüsseln und zu prüfen.

Eingehende SSL-Prüfung entschlüsselt und prüft eingehenden SSL-/TLS-Traffic von einem Client zu einem Zielnetzwerkserver. Weitere Informationen zur eingehenden SSL-Prüfung finden Sie unter Eingehende SSL-Prüfung.

SSL-Forward-Proxy entschlüsselt und prüft SSL/TLS-Traffic von internen Benutzern zum Web. Pro Firewall-Policy ist nur ein SSL-Forward-Proxy-Secret zulässig. Weitere Informationen zum SSL-Forward-Proxy finden Sie unter SSL-Forward-Proxy.

Nachdem Sie eine Firewall-Policy erstellt haben, erstellen Sie ein zugeordnetes Secret, um das Vault Secret einem eingehenden oder ausgehenden SSL-Schlüssel zuzuordnen. Anschließend erstellen Sie ein Entschlüsselungsprofil, um zu steuern, wie der SSL-Weiterleitungsproxy und die eingehende SSL-Prüfung Sessionmodusprüfungen, Serverprüfungen und Fehlerprüfungen ausführen.

Weitere Informationen zur Verwendung des Zertifikats mit einer Firewall-Policy finden Sie unter Firewall-Policys erstellen und verwalten.

Aufgabe 1: Zugriff auf Vault Secrets durch den Netzwerkfirewallservice zulassen

Erstellen Sie eine IAM-Policy, damit die Firewall-Policy auf Vault Secrets zugreifen und diese verwenden kann.

So lassen Sie allen Firewall-Policys Zugriff auf Vault-Service-Secrets zu:
Allow any-user to read secret-family in compartment <compartment_ID> where ALL {request.principal.type='networkfirewallpolicy'} 
So erteilen Sie einer Firewall-Policy Zugriff auf Vault-Service-Secrets:
Allow any-user to read secret-family in compartment <compartment_ID> where ALL {request.principal.type='networkfirewallpolicy', request.principal.id='<Network Firewall Policy OCID>'}
Warnung

Wenn diese Berechtigung später entzogen wird, stoppt die Firewall die Entschlüsselung von Traffic, da der Service nicht auf das zugeordnete Secret zugreifen kann.

Diese Policys ersetzen die veraltete Policy für den Zugriff auf Vault Secrets:

allow service ngfw-sp-prod to read secret-family in compartment <compartment_name> 
Aufgabe 2: Vault und Masterschlüssel zum Speichern des Zertifikats erstellen
  1. Erstellen Sie einen Vault zum Speichern des Zertifikats.
  2. Erstellen Sie einen Masterverschlüsselungsschlüssel im Vault.
    Wichtig

    Der Masterschlüssel muss ein symmetrischer Schlüssel sein. Sie können Geheimnisse nicht mit asymmetrischen Schlüsseln verschlüsseln.
Aufgabe 3: Zertifikat speichern

Sie können ein selbstsigniertes oder von einer CA signiertes Zertifikat mit dem OCI-Netzwerkfirewallservice verwenden.

Oracle stellt ein Skript bereit, mit dem Sie ein selbstsigniertes Zertifikat generieren können.
Wichtig

  • Der Netzwerkfirewallservice validiert das angegebene Zertifikat und speichert es in der vertrauenswürdigen Root. Um das Zertifikat zu validieren, geben Sie die gesamte SSL-Zertifikatskette an, einschließlich des Root-Zertifikats für Zwischenzertifikate und des Private Keys. Laden Sie Zertifikate im Format .pem hoch, die in die folgende .json-Vorlage gewrappt sind.
  • Wenn das in "certKeyPair" angegebene Blattzertifikat ein Forward-Trust-Zertifikat ist, muss es Certificate Authority Signing-Fähigkeit aufweisen. Setzen Sie das Kennzeichen CA auf "true".

    Wenn in diesem Beispiel "LEAF_CERT_01_PEM_CONTENT" ein Forward-Trust-Zertifikat ist, muss das Flag CA auf "true" gesetzt werden.
    {
      "caCertOrderedList" : [
        "ROOT_CERT01_PEM_CONTENT",
        "INTERMEDIATE_CERT01_PEM_CONTENT",
        "INTERMEDIATE_CERT02_PEM_CONTENT",
      ],
      "certKeyPair": {
        "cert" : "LEAF_CERT_01_PEM_CONTENT",
        "key":   "PRIVATE_KEY_01_PEM_CONTENT"
      }
    }
Um ein selbstsigniertes OpenSSL-Zertifikat zu verwenden, können Sie mit einem von Oracle bereitgestellten Skript eines erstellen:
  1. Laden Sie OpenSSL herunter, und installieren Sie es.
  2. Laden Sie Perl herunter, und installieren Sie es.
  3. Laden Sie das Skript aus dem GitHub-Repository von Oracle herunter.
  4. Führen Sie das Skript mit dem folgenden Befehl aus. Ersetzen Sie <test.test.com> durch den DNS-Namen des Webservers, den Sie schützen müssen:
    ./create-certificate inbound <test.test.com>
    oder
    ./create-certificate forward <test.test.com>
Aufgabe 4: Secrets im Vault erstellen

Erstellen Sie für jedes zu verwendende Zertifikat ein Secret im Vault.

  1. Öffnen Sie das Navigationsmenü, gehen Sie zu Identität und Sicherheit, und wählen Sie Vault aus.
  2. Wählen Sie unter Listenbereich in der Liste Compartment das Compartment aus.
  3. Wählen sie den Vault aus, der in Aufgabe 2: Vault und Masterschlüssel zum Speichern des Zertifikats erstellt erstellt wurde.

  4. Wählen Sie Secrets, Secret erstellen aus.
  5. Wählen sie im Dialogfeld Secret erstellen ein Compartment aus der Liste Erstellen in Compartment aus. (Secrets können sich außerhalb des Compartments befinden, in dem der Vault enthalten ist.)
  6. Wählen Sie Name aus, und geben Sie einen Namen ein. Verwenden Sie einen Namen, der dem Typ des Zertifikats entspricht, das das Secret enthält. Beispiel: "ssl-inbound-inspection".
  7. Wählen Sie Beschreibung aus, und geben Sie eine Beschreibung ein.
  8. Geben Sie den Masterverschlüsselungsschlüssel an, den Sie in Aufgabe 2: Vault- und Masterschlüssel zum Speichern des Zertifikats erstellt haben.
  9. Geben Sie als Format der Secret-Inhalte Nur Text an.
  10. Wählen Sie Secret-Inhalte aus, und kopieren Sie die Zertifikatinhalte in das Feld. (Die maximal zulässige Größe eines Secret Bundles beträgt 25 KB.)
  11. Wählen Sie Secret erstellen aus.
Hinweis

Beispiel für den Inhalt im erstellten Secret mit maskierten Daten:
{
  "caCertOrderedList" : [
    "-----BEGIN CERTIFICATE-----\nxxxxxxxxxxx\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\nxxxxxxxxxxx\n-----END CERTIFICATE-----",
    "-----BEGIN CERTIFICATE-----\nxxxxxxxxxxx\n-----END CERTIFICATE-----"
  ],
  "certKeyPair": {
    "cert" : "-----BEGIN CERTIFICATE-----\nnxxxxxxxxxxx\n-----END CERTIFICATE-----",
    "key":  "-----BEGIN RSA PRIVATE KEY-----\nnnxxxxxxxxxxx\n-----END RSA PRIVATE KEY-----"
  }
}