Forwarder installieren und konfigurieren

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie den Google Security Operations-Weiterleiter auf Linux- und Windows-Systemen mit Docker installieren und konfigurieren.

Der Forwarder ist eine Softwarekomponente, die Sie auf einem Computer oder Gerät wie einem Server in Ihrem Netzwerk installieren können. Er erfasst Protokolldaten und leitet diese an Ihre Google SecOps-Instanz weiter.

Sie können den Weiterleiter verwenden, um Protokolle direkt aus Ihrer Umgebung an Google SecOps zu senden, ohne dass Sie für nicht unterstützte Protokolltypen Cloud-Buckets oder APIs von Drittanbietern benötigen. Der Forwarder dient als sofort einsatzbereite Lösung, sodass keine manuelle Integration in die Datenaufnahme-API erforderlich ist.

Google SecOps stellt einen Docker-Container für die sichere Bereitstellung von Forwardern bereit. Sie können den Docker-Container auf physischen oder virtuellen Maschinen ausführen und verwalten.

Systemanforderungen

Im Folgenden finden Sie allgemeine Empfehlungen. Wenn Sie Empfehlungen speziell für Ihr System benötigen, wenden Sie sich an den Google SecOps-Support.

Linux-System

Der Weiterleiter wird von verschiedenen Linux-Distributionen wie Debian, Ubuntu, Red Hat und Suse unterstützt. Für eine optimale Leistung wird Docker-Version 20.10.21 oder höher empfohlen.

  • RAM: Für jeden erfassten Datentyp, der von Google SecOps für die Datenaufnahme akzeptiert wird, ist 1 GB RAM erforderlich. Wenn Sie beispielsweise vier verschiedene Collector angeben, benötigen Sie 4 GB RAM, um Daten für alle vier zu erheben.

  • CPU: Zwei CPUs reichen aus,um bis zu 10.000 Ereignisse pro Sekunde (EPS) für alle Datentypen zu verarbeiten. Wenn Sie davon ausgehen,dass Ihr Forwarder mehr als 10.000 EPS verarbeitet, weisen Sie ihm vier bis sechs CPUs zu.

  • Laufwerk: Unabhängig davon, wie viele Daten der Weiterleiter verarbeitet, werden 20 GB Speicherplatz empfohlen.

Windows-System

Weiterleitungen werden unter Microsoft Windows Server 2022 unterstützt. Für eine optimale Leistung wird Docker-Version 20.10.21 oder höher empfohlen.

  • RAM: Für jeden erfassten Datentyp, der von Google SecOps für die Datenaufnahme akzeptiert wird, sind 1,5 GB RAM erforderlich. Wenn Sie beispielsweise vier verschiedene Collector angeben, benötigen Sie 6 GB RAM, um Daten für alle vier zu erfassen.

  • CPU: Zwei CPUs reichen aus,um bis zu 10.000 Ereignisse pro Sekunde (EPS) für alle Datentypen zu verarbeiten. Wenn Sie davon ausgehen,dass Ihr Forwarder mehr als 10.000 EPS verarbeitet, weisen Sie vier bis sechs CPUs zu.

  • Laufwerk: Unabhängig davon, wie viele Daten der Weiterleiter verarbeitet, werden 20 GB Speicherplatz empfohlen.

Hinweise

Beachten Sie Folgendes, bevor Sie mit der Implementierung des Transporteurs beginnen.

Google-IP-Adressbereiche

Wenn Sie den Weiterleiter konfigurieren, müssen Sie möglicherweise die Firewalleinstellungen anpassen, die die Angabe von IP-Adressbereichen erfordern. Die von Google APIs und Diensten verwendeten Standard-Domain-IP-Bereiche werden dynamisch zugewiesen und ändern sich häufig. Weitere Informationen finden Sie unter IP-Adressbereiche von Google abrufen.

Firewallkonfiguration prüfen

Wenn sich Ihr Forwarder-Container hinter Firewalls oder authentifizierten Proxys befindet, müssen Sie den Zugriff auf die folgenden Hosts gewähren:

Verbindungstyp Ziel Port
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west9-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP southamerica-east1-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP gcr.io 443
TCP cloud.google.com/artifact-registry 443
TCP oauth2.googleapis.com 443
TCP storage.googleapis.com 443

Implementierung planen

Bevor Sie mit der Konfiguration des Weiterleitungsprogramms beginnen, sollten Sie Ihre Implementierung planen. So können Sie Ihre Datenquellen und Konfigurationsattribute an Ihre Sicherheitsziele, Infrastrukturfunktionen und Skalierungsanforderungen anpassen.

Daten für die Datenaufnahme festlegen

Wählen Sie aus den folgenden Optionen die relevantesten Datenquellen für Ihren Reseller aus:

  • Splunk: Ideal, wenn Sie Splunk bereits für die Protokollverwaltung verwenden.

  • Syslog Vielseitig einsetzbar für System- und Anwendungsprotokolle von verschiedenen Geräten.

  • Datei: Flexibel für die Aufnahme beliebiger Protokolldateien.

  • Paket: Bietet umfassende Netzwerktransparenz durch Aufzeichnung von Rohverkehr.

  • Kafka: Ideal für die Echtzeit-Aggregation von großen Datenmengen aus verteilten Systemen.

  • WebProxy: Ideal für Statistiken zu Webzugriffen und Nutzerverhalten.

Beschränkung

Datenfeeds dürfen maximal 4 MB groß sein.

Konfiguration ermitteln

Bevor Sie den Forwarder installieren, müssen Sie die folgenden wichtigen Attribute festlegen, um eine erfolgreiche Implementierung zu ermöglichen.

Datenkompression

Die Daten- oder Protokollkomprimierung reduziert die Netzwerkbandbreitennutzung bei der Übertragung von Protokollen an Google SecOps. Dies kann jedoch zu einer höheren CPU-Auslastung führen. Das optimale Gleichgewicht zwischen Bandbreiteneinsparungen und CPU-Nutzung hängt von mehreren Faktoren ab, z. B. vom Protokolltyp, der Komprimierbarkeit der Daten, den verfügbaren CPU-Ressourcen und den Einschränkungen der Netzwerkbandbreite.

Textbasierte Protokolle lassen sich beispielsweise in der Regel gut komprimieren und können bei geringer CPU-Auslastung erhebliche Bandbreiteneinsparungen erzielen. Verschlüsselte oder binäre Daten lassen sich dagegen möglicherweise nicht effizient komprimieren und können zu einer höheren CPU-Auslastung führen.

Die Protokollkomprimierung ist standardmäßig deaktiviert. Bewerten Sie den Trade-off anhand Ihrer spezifischen Umgebung und der Art Ihrer Protokolldaten.

Laufwerkpufferung

Es wird empfohlen, die Laufwerkspeicherung zu aktivieren. Mit der Laufwerkpufferung können Sie nicht verarbeitete Nachrichten auf dem Laufwerk statt im Arbeitsspeicher puffern und so bei einem Absturz des Brokers oder Hosts vor Datenverlust schützen. Die Aktivierung der Laufwerkpufferung kann sich jedoch auf die Leistung auswirken.

Wenn die Laufwerkpufferung deaktiviert ist, weist der Forwarder jedem Protokolltyp (z. B. pro Connector) 1 GB Arbeitsspeicher (RAM) zu. Der maximal zulässige Arbeitsspeicher für das Laufwerk-Buffering beträgt 4 GB.

Filter für reguläre Ausdrücke

Mit regulären Ausdrucksfiltern können Sie Protokolle nach Mustern filtern, die mit den Rohprotokolldaten abgeglichen werden. Die Filter verwenden die RE2-Syntax. Die Filter müssen einen regulären Ausdruck enthalten und optional ein Verhalten bei einer Übereinstimmung definieren.

Benutzerdefinierte Labels

Mit Labels können Protokollen benutzerdefinierte Metadaten in Form von Schlüssel/Wert-Paaren hinzugefügt werden. Sie können Labels für einen gesamten Weiterleiter oder für einen bestimmten Collector des Weiterleiters konfigurieren. Wenn beide vorhanden sind, überschreiben Labels auf Ebene des Datensammlers Labels auf Ebene des Übertragers, wenn sich die Schlüssel überschneiden.

Namespaces

Mithilfe von Namespace-Labels können Sie Protokolle aus verschiedenen Netzwerksegmenten identifizieren und Überschneidungen von IP-Adressen beheben. Sie können ein Namespace-Label für einen gesamten Weiterleiter oder für einen bestimmten Collector des Weiterleiters konfigurieren. Wenn beide vorhanden sind, wird der Namespace auf Ebene des Collectors über den Namespace auf Ebene des Brokers hinweggeschrieben.

Logtyp

Google SecOps unterstützt eine Vielzahl von Protokolltypen. Eine umfassende Liste finden Sie unter Unterstützte Datensätze.

Optionen für Load Balancing und Hochverfügbarkeit

Load Balancing wird nur für den syslog-Erfassungstyp unterstützt.

Der Forwarder kann in Umgebungen bereitgestellt werden, in denen zwischen der Datenquelle und den Forwarder-Instanzen ein Layer-4-Load Balancer installiert ist. So können Sie die Protokollerfassung auf mehrere Weiterleiter verteilen und die Zuverlässigkeit erhöhen, indem Protokolle bei einem Ausfall an einen anderen Weiterleiter weitergeleitet werden.

Der Forwarder hat einen integrierten HTTP-Server, der auf Systemdiagnosen von Load Balancern reagiert und Logverluste beim Starten und Herunterfahren verhindert. Sie können die Optionen für den HTTP-Server, das Load Balancing und die Hochverfügbarkeit konfigurieren, um Zeitüberschreitungsdauern und Statuscodes für Systemdiagnosen anzugeben. Diese Konfiguration ist sowohl mit containerbasierten Bereitstellungen als auch mit Load Balancern kompatibel.

Einstellung Beschreibung
Kulanzzeit Die Zeitspanne, in der neue Verbindungen akzeptiert werden, nachdem der Weiterleiter als Reaktion auf eine Systemdiagnose den Status unready zurückgegeben hat. Dies ist auch die Zeit, die zwischen dem Empfang eines Stoppsignals und dem tatsächlichen Herunterfahren des Servers vergeht. So hat der Load Balancer Zeit, den Weiterleiter aus dem Pool zu entfernen.

Gültige Werte werden in Sekunden angegeben. Wenn Sie beispielsweise 10 Sekunden angeben möchten, geben Sie 10. ein. Dezimalwerte sind nicht zulässig.

Standard:15 Sekunden
Zeitlimit für den Drain Die Zeit, die der Weiterleiter wartet, bis aktive Verbindungen von selbst geschlossen werden, bevor sie vom Server geschlossen werden. Wenn Sie beispielsweise 5 Sekunden angeben möchten, geben Sie 5. ein. Dezimalwerte sind nicht zulässig.

Standard:10 Sekunden
Port Die Portnummer, unter der der HTTP-Server Systemdiagnosen vom Load Balancer empfängt. Der Wert muss zwischen 1.024 und 65.535 liegen.

Standard: 8080
IP-Adresse oder Hostname Die IP-Adresse oder ein Hostname, der in eine IP-Adresse aufgelöst werden kann, auf die der Server warten soll.

Standard:0.0.0.0 (lokales System)
Zeitüberschreitung für das Lesen Wird zum Optimieren des HTTP-Servers verwendet. Muss in der Regel nicht von der Standardeinstellung geändert werden. Die maximal zulässige Zeit für das Lesen der gesamten Anfrage, einschließlich Header und Text. Sie können sowohl das Feld read timeout als auch das Feld read header timeout festlegen.

Standard:3 Sekunden
Zeitüberschreitung beim Lesen des Headers Wird zum Optimieren des HTTP-Servers verwendet. Muss in der Regel nicht von der Standardeinstellung geändert werden. Die maximal zulässige Zeit für das Lesen von Anfrageheadern. Die Lesefrist der Verbindung wird nach dem Lesen des Headers zurückgesetzt.

Standard:3 Sekunden
Zeitüberschreitung für Schreibvorgänge Wird zum Optimieren des HTTP-Servers verwendet. Muss in der Regel nicht von der Standardeinstellung geändert werden. Die maximal zulässige Zeit für das Senden einer Antwort. Er wird zurückgesetzt, wenn ein neuer Anfrageheader gelesen wird.

Standard:3 Sekunden
Zeitüberschreitung bei Inaktivität Wird zum Optimieren des HTTP-Servers verwendet. Muss in der Regel nicht von der Standardeinstellung geändert werden. Die maximale Wartezeit für die nächste Anfrage, wenn inaktive Verbindungen aktiviert sind. Wenn das Feld idle timeout auf null gesetzt ist, wird der Wert des Felds read timeout verwendet. Wenn beide null sind, wird das Feld read header timeout (Zeitüberschreitung für das Lesen des Headers) verwendet.

Standard:3 Sekunden
Statuscode „Verfügbar“ Der Statuscode, den der Weiterleiter zurückgibt, wenn eine Aktivitätsprüfung empfangen wird und der Weiterleiter verfügbar ist. Container-Scheduler und ‑Orchestratoren senden häufig Liveness-Prüfungen.

Standard:204
Statuscode „Bereit“ Der Statuscode, den der Weiterleiter zurückgibt, wenn er in einer der folgenden Situationen bereit ist, Traffic anzunehmen:
  • Eine Bereitschaftsprüfung wird von einem Container-Scheduler oder -Orchestrator empfangen.
  • Eine Systemdiagnose wird von einem Load Balancer empfangen.
Standard:204
Statuscode „Nicht bereit“ Der Statuscode, den der Weiterleiter zurückgibt, wenn er nicht bereit ist, Traffic anzunehmen.

Standard: 503

Schritt 1: Weiterleitungskonfiguration definieren

Für jeden bereitgestellten Forwarder ist eine Forwarder-Konfigurationsdatei erforderlich. In einer Konfigurationsdatei für einen Weiterleiter werden die Einstellungen für die Übertragung der Daten an Ihre Google SecOps-Instanz angegeben. Wir empfehlen, für jeden Host eine neue Konfigurationsdatei zu generieren, damit die einzelnen Collector klar voneinander unterschieden werden können.

Google Cloud passt diese Konfigurationsdateien mit spezifischen Metadaten für jede Weiterleitungsinstanz an. Sie können diese Dateien an Ihre spezifischen Anforderungen anpassen und Details zu den Arten von Protokollen einfügen, die Sie aufnehmen möchten.

Sie können eine Weiterleitungskonfigurationsdatei entweder über die Benutzeroberfläche, über die API oder manuell generieren.

  • Die Benutzeroberfläche bietet eine grafische Benutzeroberfläche zum Konfigurieren von Forwardern und ist die empfohlene Methode zum Erstellen einer Forwarderkonfiguration. Das ist der einfachste Einstieg und erfordert keine Programmierung. Informationen zum Herunterladen der Konfigurationsdatei über die Benutzeroberfläche von Google SecOps finden Sie unter Weiterleitungskonfigurationen über die Google SecOps-Benutzeroberfläche verwalten.

  • Die API bietet eine programmatische Möglichkeit, Forwarder zu konfigurieren. Informationen zum programmatischen Herunterladen der Weiterleitungskonfiguration finden Sie unter Forwarder Management API.

  • Sie können die Konfigurationsdatei manuell erstellen und die Konfigurationsoptionen hinzufügen. Wir empfehlen, die Konfigurationsdatei über die Benutzeroberfläche zu generieren, um für Genauigkeit zu sorgen und potenzielle Fehler zu minimieren. Informationen zum manuellen Generieren der Datei finden Sie unter Weiterleitungskonfigurationsdatei manuell verwalten.

Schritt 2: Docker installieren

In diesem Abschnitt wird beschrieben, wie Sie Docker auf Ihrem System installieren.

Linux-System

Docker ist Open Source und die gesamte erforderliche Dokumentation ist in der Open-Source-Docker-Community verfügbar. Eine Anleitung zur Installation von Docker finden Sie unter Docker Engine installieren.

Führen Sie den folgenden Befehl aus, um zu prüfen, ob Docker richtig auf Ihrem System installiert ist. Er erfordert erhöhte Berechtigungen:

   docker ps
  

Die folgende Antwort zeigt an, dass Docker ordnungsgemäß installiert wurde:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Windows-System

Starten Sie Windows PowerShell mit Administratorberechtigungen und prüfen Sie die Netzwerkverbindung zu Google Cloud. Gehen Sie dazu so vor:

  1. Klicken Sie auf Start.

  2. Geben Sie PowerShell ein und klicken Sie mit der rechten Maustaste auf Windows PowerShell.

  3. Klicken Sie auf Als Administrator ausführen.

  4. Führen Sie dazu diesen Befehl aus:

    C:\> test-netconnection <host> -port <port>
    

    Die Befehlsausgabe gibt an, dass der Status von TcpTestSucceeded true ist.

    Beispiel:

    C:\> test-netconnection malachiteingestion-pa.googleapis.com -port 443
    ComputerName     :  malachiteingestion-pa.googleapis.com
    RemoteAddress    : 198.51.100.1
    RemotePort       : 443
    InterfaceAlias   : Ethernet
    SourceAddress    : 203.0.113.1
    TcpTestSucceeded : True
    

So installieren Sie Docker auf Ihrem Windows-Server:

  1. Aktivieren Sie die Microsoft Windows-Containerfunktion:

    Install-WindowsFeature containers -Restart
    
  2. Führen Sie den folgenden Befehl im PowerShell-Administratormodus aus, um Docker CE zu installieren:

    Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
    
    .\install-docker-ce.ps1
    
    
  3. Testen Sie die Docker-Befehlszeile, indem Sie den Befehl docker ps ausführen. Dadurch wird eine Liste der laufenden Container zurückgegeben. Wenn Docker nicht richtig installiert ist, wird ein Fehler angezeigt.

    Weitere Informationen finden Sie unter Erste Schritte: Windows für Container vorbereiten.

    Für Enterprise-Bereitstellungen installieren Sie Mirantis Container Runtime, auch Docker EE genannt.

Schritt 3: Weiterleitung installieren

In diesem Abschnitt wird beschrieben, wie Sie den Forwarder mit einem Docker-Container installieren.

Schritt 3a: Konfigurationsdateien in das Verzeichnis des Forwarders verschieben

Der erste Schritt bei der Installation des Forwarders besteht darin, die erforderlichen Konfigurationsdateien in das angegebene Forwarder-Verzeichnis zu verschieben.

Linux-System

So legen Sie die Konfigurationsdateien im Verzeichnis des Forwarders ab:

  1. Stellen Sie über das Terminal eine Verbindung zum Linux-Weiterleitungshost her.

  2. Wechseln Sie in das Basisverzeichnis, in dem der Docker-Container ausgeführt wird.

  3. Erstellen Sie ein Verzeichnis zum Speichern der Konfigurationsdateien des Brokers.

      mkdir /opt/chronicle/'CONFIG'
    

    Sie können den Verzeichnisnamen CONFIG durch einen beliebigen Namen Ihrer Wahl ersetzen. Verwenden Sie beim Ausführen des Befehls docker run denselben Verzeichnisnamen.

  4. Wechseln Sie das Verzeichnis.

      cd /opt/chronicle/config
    

  5. Achten Sie nach der Übertragung darauf, dass sich die Konfigurationsdateien im Verzeichnis /opt/chronicle/config befinden.

      ls -l
    

Windows-System

Erstellen Sie einen Ordner C:\config und legen Sie die Konfigurationsdateien darin ab. Sie können den Ordnernamen config durch einen beliebigen Namen ersetzen. Achten Sie darauf, beim Ausführen des Befehls docker run denselben Ordnernamen zu verwenden.

Schritt 3b: Weiterleitung ausführen

Nachdem Sie die Konfigurationsdateien im angegebenen Verzeichnis für den Forwarder abgelegt haben, können Sie den Forwarder starten oder auf die neueste Version des Google SecOps-Containers upgraden.

Wenn Sie den Container aktualisieren, bereinigen Sie alle vorherigen Docker-Ausführungen mit den folgenden Befehlen.

      docker stop 'cfps'
    

      docker rm 'cfps'
    

In diesem Beispiel lautet der Name des Docker-Containers cfps.

So starten Sie den Forwarder zum ersten Mal oder führen ein Upgrade auf die neueste Version des Google SecOps-Containers aus:

  1. Rufen Sie das neueste Docker-Image von Google Cloud ab:

    Linux-System:

        docker pull gcr.io/chronicle-container/cf_production_stable
    

    Windows-System:

      docker pull gcr.io/chronicle-container/cf_production_stable_windows
    
  2. Starten Sie den Forwarder über den Docker-Container:

    Linux-System:

      docker run \
        --detach \
        --name cfps \
        --restart=always \
        --log-opt max-size=100m \
        --log-opt max-file=10 \
        --net=host \
        -v /opt/chronicle/config:/opt/chronicle/external \
        gcr.io/chronicle-container/cf_production_stable
    

    Windows-System:

      docker run `
        --detach `
        --name cfps `
        --restart=always `
        --log-opt max-size=100m `
        --log-opt max-file=10 `
        -p 0.0.0.0:10515-10520:10515-10520/udp `
        -v C:\config\:C:/opt/chronicle/external `
        gcr.io/chronicle-container/cf_production_stable_windows
    

Die --log-opt-Optionen sind seit Docker 1.13 verfügbar. Mit diesen Optionen wird die Größe der Container-Logdateien begrenzt. Sie müssen verwendet werden, solange die von Ihnen verwendete Docker-Version sie unterstützt.

Absender verwalten

In den folgenden Abschnitten finden Sie Informationen zur Verwaltung des Transporteurs.

Logs für Weiterleitungen ansehen

  • Führen Sie den folgenden Befehl aus, um die Logs des Weiterleitungsprogramms aufzurufen:

    docker logs cfps
    
  • Führen Sie den folgenden Befehl aus, um den Pfad der Datei aufzurufen, in der die Protokolle gespeichert sind:

    docker inspect --format='{{.LogPath}}' CONTAINER_NAME
    
  • Führen Sie den folgenden Befehl aus, um die laufenden Logs in Echtzeit aufzurufen:

    docker logs cfps -f
    
  • Führen Sie den folgenden Befehl aus, um die Protokolle in einer Datei zu speichern:

    docker logs cfps &> logs.txt
    

Weiterleitung deinstallieren

Mit den folgenden Docker-Befehlen können Sie den Forwarder beenden, deinstallieren oder entfernen.

  • Führen Sie den folgenden Befehl aus, um den Forwarder-Container zu beenden oder zu deinstallieren:

    docker stop cfps
    
  • Führen Sie den folgenden Befehl aus, um den Forwarder-Container zu entfernen:

    docker rm cfps
    

Weiterleitung aktualisieren

Der Weiterleiter besteht aus zwei Komponenten, die jeweils folgendermaßen aktualisiert werden:

  • Forwarder-Bundle: Diese Komponente wird automatisch aktualisiert, sodass kein Neustart erforderlich ist.

  • Docker-Image für den Forwarder: Updates für diese Komponente werden manuell ausgeführt. Sie müssen die aktuelle Weiterleitungsinstanz beenden und eine neue starten, wie in Schritt 3b beschrieben.

Leitfäden zur Datenaufnahme über einen Forwarder für bestimmte Datensätze

Weitere Informationen dazu, wie ein bestimmter Datensatz mithilfe von Weiterleitungen aufgenommen wird, finden Sie unter den folgenden Links: