Google Security Operations-Forwarder für Linux
In diesem Dokument wird beschrieben, wie Sie den Forwarder unter Linux installieren und konfigurieren. Informationen zum Installieren des Forwarders unter Windows finden Sie unter Windows-Forwarder.
Forwarder wird verwendet, um Protokolle von der Kundenumgebung an Google Security Operations zu senden Instanz. Wird verwendet, wenn Kunden die Logs direkt an Google Security Operations verwenden und nicht die Cloud-Buckets zur Datenaufnahme verwenden möchten. Für logtype ist keine native Aufnahme über die API eines Drittanbieters vorhanden. Der Forwarder kann sofort einsatzbereite Lösung verwendet werden, anstatt Ingestion API.
Sie können den Forwarder unter verschiedenen Linux-Distributionen installieren, Debian, Ubuntu, Red Hat und Suse. Google Cloud stellt die Software mithilfe eines Docker-Container Sie können den Docker-Container entweder auf einem physische oder virtuelle Maschine mit Linux ausgeführt werden.
Systemanforderungen
Im Folgenden finden Sie allgemeine Empfehlungen. Für Empfehlungen speziell für Ihre wenden Sie sich bitte an den Support von Google Security Operations.
RAM: 1 GB für jeden erfassten Datentyp (Collector), den Google Security Operations akzeptiert für die Datenaufnahme. Wenn Sie beispielsweise vier verschiedene Collectors angegeben haben, benötigen 4 GB RAM, um Daten für alle vier Collectors zu sammeln.
CPU: 2 CPUs reichen aus,um weniger als 10.000 Ereignisse pro Sekunde zu verarbeiten. (EPS) (Summe für alle Datentypen). Wenn Sie mehr als 10.000 EPS weiterleiten möchten, stellen Sie 4 bis 6 CPUs bereit.
Laufwerk: Es sind 100 MB Festplattenspeicher ausreichend, unabhängig davon, wie viele Daten Google Security Operations-Weiterleitungs-Aliasse. Wenn Sie im Rückstand befindliche Nachrichten zwischenspeichern müssen auf das Laufwerk und nicht auf den Arbeitsspeicher, siehe Datenträgerzwischenspeichern. Google Security Operations Forwarder standardmäßig in den Arbeitsspeicher.
Google-IP-Adressbereiche
Möglicherweise müssen Sie den IP-Adressbereich öffnen, wenn Sie eine Forwarder-Konfiguration einrichten, z. B. beim Einrichten der Konfiguration für Ihre Firewall. Google kann keine spezifische Liste mit IP-Adressen zur Verfügung stellen. Sie können jedoch IP-Adressbereiche von Google abrufen.
Firewallkonfiguration prüfen
Firewalls oder authentifizierte Proxys, die sich zwischen dem Forwarder-Container von Google Security Operations und dem Internet befinden, erfordern Regeln, um den Zugriff auf die folgenden Hosts zu ermöglichen:
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-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 | accounts.google.com | 443 |
TCP | gcr.io | 443 |
TCP | oauth2.googleapis.com | 443 |
TCP | storage.googleapis.com | 443 |
Konfigurationsdateien anpassen
Google Cloud passt die Konfigurationsdateien mit wie im Ausgabebereich angegeben. Sie können die Konfigurationsdatei herunterladen. entsprechend Ihren Anforderungen und geben Sie Informationen Die Logtypen, die in die Collectors aufgenommen werden sollen . Weitere Informationen zu den Konfigurationseinstellungen finden Sie unter Konfigurationseinstellungen.
Linux-Forwarder konfigurieren
Informationen zum Konfigurieren des Linux-Forwarders über die UI finden Sie unter Forwarder-Konfigurationen über die Google SecOps-UI verwalten.
So konfigurieren Sie den Linux-Forwarder manuell:
Erstellen Sie eine Kopie der Konfigurationsdateivorlage, die mit der Software bereitgestellt wird.
Konfigurationsdatei herunterladen über die Benutzeroberfläche.
Speichern Sie die beiden Dateien im selben Verzeichnis. Verwenden Sie dabei die folgende Namenskonvention:
FORWARDER_NAME
.conf: Verwenden Sie diese Datei, um die Konfigurationseinstellungen für die LogaufnahmeFORWARDER_NAME
_auth.conf: Verwenden Sie diese Datei, um die Anmeldedaten für die Autorisierung.Ändern Sie die Dateien so, dass sie die Konfiguration für Ihre Forwarder-Instanz enthalten. Verwenden Sie die in diesem Dokument bereitgestellten Beispiele als Referenz.
Achten Sie darauf, dass für jede Eingabe im
FORWARDER_NAME
_auth.conf, auch wenn die Eingabe keine entsprechende Authentifizierungsdetails. Dies ist für die korrekte Zuordnung der Daten erforderlich.
Alle Änderungen, die an der Konfigurationsdatei vorgenommen werden, werden automatisch innerhalb von 5 Minuten vom Forwarder übernommen.
Beispielkonfiguration
Das folgende Codebeispiel zeigt das Format der Konfigurationsdateien für eine Forwarder. Weitere Informationen zu den Einstellungen für die einzelnen Aufnahmetypen wie Splunk oder Syslog, finden Sie unter Daten erfassen.
Die Datei FORWARDER_NAME.conf
output: url: malachiteingestion-pa.googleapis.com:443 identity: identity: collector_id: COLLECTOR_ID \ customer_id: CUSTOMER_ID \ collectors: - syslog: common: enabled: true data_type: "WINDOWS_DHCP" data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10514 udp_address: 0.0.0.0:10514 connection_timeout_sec: 60 tcp_buffer_size: 524288 - syslog: common: enabled: true data_type: "WINDOWS_DNS" data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10515 connection_timeout_sec: 60 tcp_buffer_size: 524288
Die Datei FORWARDER_NAME_auth.conf
output: identity: secret_key: | { "type": "service_account", "project_id": "PROJECT_ID" \, "private_key_id": "PRIVATE_KEY_ID" \, "private_key": "-----BEGIN PRIVATE KEY-----\\"PRIVATE_KEY" \n-----END PRIVATE KEY-----\n", "client_email": "CLIENT_EMAIL" \, "client_id": "CLIENT_ID" \, "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/example-account-1%40example-account.iam.gserviceaccount.com" } collectors: - syslog: - syslog: certificate: "../forwarder/inputs/testdata/localhost.pem" certificate_key: "../forwarder/inputs/testdata/localhost.key"
Mit diesen beiden Dateisystemen können Sie Anmeldedaten für die Authentifizierung in einem separaten
für erhöhte Sicherheit. Sie können die Datei FORWARDER_NAME
.conf speichern
Datei in einer
Versionsverwaltungs-Repository oder einem
offenen Konfigurationsverwaltungssystem. Sie können die
FORWARDER_NAME
_auth.conf-Datei direkt in der physischen oder virtuellen Maschine gespeichert, auf der der Forwarder ausgeführt wird.
Beispielkonfiguration (einzelne Datei)
output: url: malachiteingestion-pa.googleapis.com:443 identity: identity: collector_id: "COLLECTOR_ID" \ customer_id: "CUSTOMER_ID" \ secret_key: | { "type": "service_account", "project_id": "PROJECT_ID" \, "private_key_id": "PRIVATE_KEY_ID" \, "private_key": "-----BEGIN PRIVATE KEY-----\ "PRIVATE_KEY" \n-----END PRIVATE KEY-----\n", "client_email": "CLIENT_EMAIL" \, "client_id": "CLIENT_ID" \, "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/malachite-test-1%40malachite-test.iam.gserviceaccount.com" } collectors: - syslog: common: enabled: true data_type: "WINDOWS_DHCP" data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10514 udp_address: 0.0.0.0:10514 connection_timeout_sec: 60 tcp_buffer_size: 524288 - syslog: common: enabled: true data_type: "WINDOWS_DNS" data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10515 connection_timeout_sec: 60 certificate: "../forwarder/inputs/testdata/localhost.pem" certificate_key: "../forwarder/inputs/testdata/localhost.key" tcp_buffer_size: 524288
Wenn Sie nur eine Konfigurationsdatei verwenden und zu den beiden Dateien wechseln möchten führen Sie die folgenden Schritte aus:
- Erstellen Sie eine Kopie Ihrer vorhandenen Konfiguration.
- Speichern Sie eine Datei als
FORWARDER_NAME
.conf-Datei und löschen Sie die Anmeldedaten für die Autorisierung aus der Datei. - Speichern Sie die andere Datei als Datei
FORWARDER_NAME
_auth.conf und löschen Sie alle Nicht-Autorisierungsdaten aus der Datei. Verwenden Sie die in diesem Handbuch angegebenen Beispielkonfigurationsdateien als Referenz. - Achten Sie darauf, die Namenskonvention und andere Richtlinien einzuhalten, die im Abschnitt Konfigurationsdateien anpassen aufgeführt sind.
Docker installieren
Die Installation von Docker hängt von der Hostumgebung ab. Sie können Docker auf verschiedenen Hostbetriebssystemen installieren. Google Cloud bietet eingeschränkte Dokumentationen, die Sie bei der Installation von Docker auf mehreren der gängigen Linux-Distributionen unterstützen. Docker ist jedoch eine Open-Source-Software und die gesamte erforderliche Dokumentation ist bereits verfügbar. Eine Anleitung zur Docker-Installation finden Sie in der Docker-Dokumentation.
Nach der Installation von Docker auf Ihrem System ähnelt der Forwarder-Installationsprozess jeder Art von Linux-Distribution.
Führen Sie den folgenden Befehl (erhöhte Berechtigungen) aus, um zu prüfen, ob Docker ordnungsgemäß auf Ihrem System installiert ist:
docker ps
Die folgende Antwort zeigt an, dass Docker ordnungsgemäß installiert wurde:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Nützliche Docker-Befehle
Mit dem folgenden Befehl können Sie zusätzliche Informationen zur Docker-Installation abrufen:
docker info
Der Docker-Dienst kann standardmäßig deaktiviert werden. Um zu prüfen, ob sie deaktiviert ist, führen Sie den folgenden Befehl aus:
systemctl is-enabled docker
Führen Sie einen der folgenden Schritte aus, um den Docker-Dienst zu aktivieren und sofort zu starten. Befehle:
sudo systemctl enable --now docker
sudo systemctl enable /usr/lib/systemd/system/docker.service
Ausgabe:
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service
Wenn Sie einen Forwarder starten, führen Sie den folgenden Befehl aus, um den Forwarder festzulegen für den automatischen Neustart:
sudo docker run --restart=always `IMAGE_NAME`
IMAGE_NAME
ist der Name des Forwarder-Images.Führen Sie den folgenden Befehl aus, um den Status und die Details des Docker-Dienstes zu prüfen:
sudo systemctl status docker
Ausgabe:
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-07-18 11:14:05 UTC; 15s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 263 (dockerd) Tasks: 20 Memory: 100.4M CGroup: /system.slice/docker.service └─263 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Jul 18 11:14:05 swarm-kraken dockerd[263]: time="2020-07-18T11:14:05.713787002Z" level=info msg="API listen on /run/docker.sock" Jul 18 11:14:05 swarm-kraken systemd[1]: Started Docker Application Container Engine
Bei Problemen mit Docker kann das Google Security Operations-Supportteam der Ausgabe dieses Befehls, um das Problem zu beheben.
Forwarder unter Linux installieren
In diesem Abschnitt wird beschrieben, wie Sie Google Security Operations Forwarder mithilfe eines Docker-Containers auf einem Linux-System installieren.
Schritt 1: Konfigurationsdateien für Weiterleitung herunterladen, übertragen und installieren
Google Security Operations stellt Forwarder-Konfigurationsdateien für Ihr Betriebssystem (Linux oder Windows) bereit. Sie können die Konfigurationsdatei entsprechend Ihren Anforderungen herunterladen. Nachdem Sie die folgenden Schritte ausgeführt haben, übertragen Sie die Konfigurationsdateien von Ihrem Laptop in das Forwarder-Verzeichnis /opt/chronicle/config
im Basisverzeichnis des Nutzers.
Stellen Sie über ein Terminal eine Verbindung zum Host des Linux-Forwarders her.
Erstellen Sie auf dem Host des Linux-Forwarders einen neuen Nutzer.
adduser
USERNAME
passwdUSERNAME
usermod -aG wheelUSERNAME
Wechseln Sie in das Basisverzeichnis des neuen Nutzers, der Docker ausführt. Container.
Erstellen Sie ein Verzeichnis, um die Konfigurationsdateien für die Weiterleitung von Google Security Operations zu speichern:
mkdir /opt/chronicle/config
Wechseln Sie das Verzeichnis.
cd /opt/chronicle/config
Nachdem die Dateien übertragen wurden, müssen Sie sicherstellen, dass sich die Konfigurationsdateien im Verzeichnis „/opt/chronicle/config“ befinden:
ls -l
Schritt 2: Forwarder im Docker-Container ausführen
Sie können die folgenden Verfahren verwenden, um die Google Security Operations-Weiterleitung zu starten sowie ein Upgrade auf die neueste Version der Google Security Operations-Container:
Die --log-opt
-Optionen sind seit Docker verfügbar
1:13. Diese Optionen begrenzen die Größe der
Container-Logdateien und
verwendet werden, sofern Ihre Docker-Version dies unterstützt.
Wenn Sie ein Upgrade ausführen, bereinigen Sie zuerst alle vorherigen Docker-Ausführungen. Im Im folgenden Beispiel lautet der Name des Docker-Containers
cfps
. Erhalten das neueste Docker-Image von Google Cloud mit demdocker pull
-Befehl wie unten gezeigt.docker stop cfps
docker rm cfps
Rufen Sie das neueste Docker-Image von Google Cloud ab:
docker pull gcr.io/chronicle-container/cf_production_stable
Starten Sie den Google Security Operations-Forwarder über den Docker-Container:
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
Forwarder-Logs ansehen
Führen Sie den folgenden Befehl aus, um die Google Security Operations-Forwarder-Logs aufzurufen:
sudo docker logs cfps
Führen Sie den folgenden Befehl aus, um den Pfad der Datei anzuzeigen, in der die Logs gespeichert sind:
docker inspect --format='{{.LogPath}}' CONTAINER_NAME
Führen Sie den folgenden Befehl aus, um die laufenden Logs anzuzeigen:
sudo docker logs cfps -f
Führen Sie den folgenden Befehl aus, um die Logs in einer Datei zu speichern:
sudo docker logs cfps &> logs.txt
Forwarder deinstallieren
Mit den folgenden Docker-Befehlen können Sie die Google Security Operations-Weiterleitung anhalten und deinstallieren oder entfernen.
So beenden oder deinstallieren Sie den Forwarder-Container:
docker stop cfps
So entfernen Sie den Forwarder-Container:
docker rm cfps
Forwarder aktualisieren
Der Google Security Operations-Forwarder besteht aus zwei Teilen und wird so aktualisiert:
Forwarder Bundle: Wird automatisch aktualisiert und es ist kein Neustart erforderlich.
Forwarder-Docker-Image: Wird manuell aktualisiert, nachdem der vorhandene Forwarder beendet und eine neue Instanz als wie in Schritt 2 beschrieben.
Daten erheben
In den folgenden Abschnitten erfahren Sie, wie Sie den Google Security Operations-Forwarder so konfigurieren, dass verschiedene Datentypen aufgenommen werden. an die Google Security Operations-Instanz weitergeleitet.
Splunk-Daten erfassen
Sie können den Google Security Operations-Forwarder so konfigurieren, dass Ihre Splunk-Daten an Google Security Operations weitergeleitet werden. Google Cloud konfiguriert den Google Security Operations-Forwarder mit den folgenden Informationen, um Ihre Daten aus Splunk weiterzuleiten:
URL für die Splunk REST API (z. B. https://10.0.113.15:8089).
Splunk-Abfragen, um Daten für jeden der erforderlichen Datentypen zu generieren (z. B. „index=dns“).
FORWARDER_NAME.conf output: collectors: - splunk: common: enabled: true data_type: WINDOWS_DNS data_hint: "#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto trans_id query qclass qclass_name" batch_n_seconds: 10 batch_n_bytes: 819200 url: https://127.0.0.1:8089 is_ignore_cert: true minimum_window_size: 10s maximum_window_size: 30s query_string: search index=* sourcetype=dns query_mode: realtime
- Google Security Operations die Anmeldedaten für Ihr Splunk-Konto zur Verfügung stellen
Forwarder. Erstellen Sie dazu eine
creds.txt
-Datei.
So verwenden Sie eine creds.txt
-Datei:
Erstellen Sie eine lokale Datei für Ihre Splunk-Anmeldedaten und nennen Sie sie
creds.txt
.Geben Sie Ihren Nutzernamen in die erste Zeile und das Passwort in die zweite Zeile ein:
cat creds.txt myusername mypassword
So verwenden Sie die Google Security Operations-Weiterleitung für den Zugriff auf einen Splunk kopieren Sie die Datei
creds.txt
in das Konfigurationsverzeichnis (die gleiche Verzeichnis, in dem sich die Konfigurationsdateien befinden). Beispiel:cp creds.txt /opt/chronicle/config/creds.txt
Prüfen Sie, ob sich die Datei
creds.txt
am richtigen Speicherort befindet:ls /opt/chronicle/config
Syslog-Daten erfassen
Der Google Security Operations-Forwarder kann als Syslog-Server verwendet werden. Sie können beliebige Appliance oder Server, der das Senden von Syslog-Daten über TCP oder UDP unterstützt Verbindung, um ihre Daten an den Google Security Operations-Forwarder weiterzuleiten. Sie können die exakten Daten zu kontrollieren, die die Appliance oder der Server an die Google Security Operations-Weiterleitung Der Google Security Operations-Forwarder an Google Security Operations senden.
Die Konfigurationsdatei FORWARDER_NAME
.conf (bereitgestellt von
Google Cloud) gibt an, welche Ports für jeden Typ von
weitergeleitete Daten (z. B. Port 10514). Standardmäßig werden die Sicherheitsvorgänge von Google
Forwarder akzeptiert sowohl TCP- als auch UDP-Verbindungen.
rsyslog konfigurieren
Zum Konfigurieren von rsyslog müssen Sie für jeden Port ein Ziel angeben (z. B. jedem Datentyp). Die korrekte Syntax finden Sie in der Systemdokumentation. Die Die folgenden Beispiele veranschaulichen die rsyslog-Zielkonfiguration:
TCP-Log-Traffic:
dns.* @@192.168.0.12:10514
UDP-Log-Traffic:
dns.* @192.168.0.12:10514
TLS für Syslog-Konfigurationen aktivieren
Sie können TLS für die Syslog-Verbindung zu den Google Security Operations aktivieren
Forwarder. In der Konfigurationsdatei des Google Security Operations-Forwarder
(FORWARDER_NAME
.conf), geben Sie Ihren eigenen Speicherort an
generiertes Zertifikat und Zertifikatschlüssel, wie im folgenden Beispiel gezeigt:
Zertifikat | "/opt/chronicle/external/certs/client_generated_cert.pem" |
certificate_key | "/opt/chronicle/external/certs/client_generated_cert.key" |
Basierend auf dem gezeigten Beispiel den Google Security Operations-Forwarder ändern
Konfigurationsdatei (FORWARDER_NAME
.conf) so:
collectors: - syslog: common: enabled: true data_type: WINDOWS_DNS data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10515 tcp_buffer_size: 65536 connection_timeout_sec: 60 certificate: "/opt/chronicle/external/certs/client_generated_cert.pem" certificate_key: "/opt/chronicle/external/certs/client_generated_cert.key" minimum_tls_version: "TLSv1_3"
Einige wichtige Punkte, die Sie beachten sollten:
Sie können die Größe des TCP-Zwischenspeichers konfigurieren. Die Standardgröße des TCP-Zwischenspeichers 64 KB groß.
Der empfohlene Standardwert für connection_timeout beträgt 60 Sekunden. Die TCP-Verbindung wird beendet, wenn sie für eine bestimmte Zeit inaktiv ist.
Die TLS-Mindestversion wird mit der TLS-Version des Eingabeanfrage. Die TLS-Version der Eingabeanfrage muss größer als sein als die Mindestversion für TLS. Die TLS-Mindestversion sollte eine der folgenden folgende Werte: TLSv1_0, TLSv1_1, TLSv1_2, TLSv1_3.
Sie können unter dem Konfigurationsverzeichnis ein certs-Verzeichnis erstellen und die Zertifikatsdateien hinzufügen.
Dateidaten erfassen
Ein File Collector ist so konzipiert, dass die Protokolle aus einer Datei abgerufen werden. Die Datei sollte die an den Docker-Container gebunden sind.
Verwenden Sie diese Option, wenn Sie Protokolle manuell aus einer einzelnen Protokolldatei hochladen möchten. Dies kann kann für einen Backfill von Logs für eine bestimmte Logdatei verwendet werden.
Starten Sie den Google Security Operations-Forwarder vom Docker-Container aus:
docker run \ --detach \ --name cfps \ --log-opt max-size=100m \ --log-opt max-file=10 \ --net=host \ -v /opt/chronicle/config:/opt/chronicle/external \ -v /var/log/crowdstrike/falconhostclient:/opt/chronicle/edr \ gcr.io/chronicle-container/cf_production_stable
Dieser Docker-Ausführungsbefehl ist wichtig, um dem Container das Ladevolumen zuzuordnen.
In diesem Beispiel sollten Sie den Google Security Operations-Forwarder ändern
Konfiguration (FORWARDER_NAME.conf
-Datei) so.
Die Datei sample.txt
sollte im
/var/log/crowdstrike/falconhostclient
-Ordner.
collectors: - file: common: enabled: true data_type: CS_EDR data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 file_path: /opt/chronicle/edr/sample.txt filter:
Flag-Konfigurationen
skip_seek_to_end
(bool): Dieses Flag ist standardmäßig auf false
gesetzt und die Datei
"input" sendet nur neue Protokollzeilen als Eingabe. Die Einstellung true
führt dazu, dass alle
Vorherige Protokollzeilen werden bei Forwarder-Neustarts noch einmal gesendet. Dies führt zu einem Logeintrag.
Duplikation. Das Festlegen dieses Flags auf true
ist in bestimmten
(z. B. bei Ausfällen), da ein Neustart des Forwarders
fehlen noch einmal Log-Zeilen.
poll
(bool): Datei-Collector verwendet die Tail-Bibliothek, um nach Änderungen in
im Dateisystem. Wenn Sie dieses Flag auf true
setzen, verwendet die Tail-Bibliothek die Abfrage
anstelle der standardmäßigen Benachrichtigungsmethode.
Paketdaten erfassen
Der Google Security Operations-Forwarder kann Pakete direkt aus einem Netzwerk erfassen mithilfe von libcap unter Linux. Weitere Informationen zu libcap finden Sie unter libcap – Manuelle Seite für Linux
Pakete werden erfasst und anstelle von Logeinträgen an Google Security Operations gesendet. Die Paketerfassung wird von einem lokalen verwenden. Um die Paketerfassung für Ihr System zu aktivieren, wenden Sie sich an Google Security Operations-Support
Google Cloud konfiguriert Google Security Operations-Forwarder mit Berkeley BPF-Ausdruck (Paketfilter), der beim Erfassen von Paketen verwendet wird (z. B. Port 53) und nicht „localhost“). Weitere Informationen finden Sie unter Berkeley-Paketfilter.
Daten aus Kafka-Thema erfassen
Sie können Daten aus den Kafka-Themen genau wie aus Syslog aufnehmen. Die Nutzergruppen werden genutzt, damit Sie bis zu drei Forwarder und Daten aus demselben Kafka-Thema abzurufen. Weitere Informationen finden Sie unter Kafka:
Weitere Informationen zu Kafka-Nutzergruppen finden Sie hier: https://docs.confluent.io/platform/current/clients/consumer.html
Beispielkonfiguration: Kafka-Eingabe
Die folgende Forwarder-Konfiguration zeigt, wie der Forwarder für die Aufnahme eingerichtet wird Daten aus den Kafka-Themen.
Die Datei FORWARDER_NAME.conf
collectors: - kafka: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true topic: example-topic group_id: chronicle-forwarder timeout: 60s brokers: ["broker-1:9092", "broker-2:9093"] tls: insecureSkipVerify: true certificate: "/path/to/cert.pem" certificate_key: "/path/to/cert.key" - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Die Datei FORWARDER_NAME_auth.conf
collectors: - kafka: username: user password: password - syslog:
WebProxy-Daten erfassen
Der Google Security Operations-Forwarder kann WebProxy-Daten direkt aus einem Netzwerk erfassen mithilfe von libcap unter Linux. Weitere Informationen zu libcap finden Sie unter libcap – Manuelle Seite für Linux Um die WebProxy-Datenerfassung für Ihr System zu aktivieren, wenden Sie sich an Google Security Operations-Support
Konfiguration der Google Security Operations-Weiterleitung ändern (FORWARDER_NAME.conf
-Datei)
wie folgt:
- webproxy:
common:
enabled : true
data_type: <Your LogType>
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: any
bpf: tcp and dst port 80
Konfigurationen anpassen
In der folgenden Tabelle sind wichtige Parameter aufgeführt, die in der Konfigurationsdatei des Forwarders verwendet werden.
Parameter | Beschreibung |
---|---|
data_type | Die Art der Logdaten, die der Collector erfassen und verarbeiten kann. |
Metadaten | Metadaten, die globale Metadaten überschreiben. |
max_file_buffer_bytes | Maximale Anzahl von Byte, die im Laufwerk oder Dateizwischenspeicher akkumuliert werden können. Der Standardwert ist 1073741824 , also 1 GB. |
max_memory_buffer_bytes | Maximale Anzahl von Byte, die im Zwischenspeicher des Arbeitsspeichers akkumuliert werden können. Die
Der Standardwert ist 1073741824 , also 1 GB. |
write_to_disk_dir_path | Der für den Datei- oder Laufwerkzwischenspeicher zu verwendende Pfad. |
write_to_disk_buffer_enabled | Wenn true , wird der Laufwerkzwischenspeicher anstelle des Arbeitsspeicherpuffers verwendet. Der Standardwert ist false .
|
batch_n_bytes | Maximale Anzahl von Byte, die vom Collector akkumuliert werden können, nachdem
bei dem die Daten in Batches zusammengefasst werden. Der Standardwert ist 1048576 , also
1 MB. |
batch_n_seconds | Die Anzahl der Sekunden, nach denen die vom Collector erfassten Daten in Batches zusammengefasst werden. Der Standardwert ist 11 Sekunden. |
data_hint | Datenformat, das der Collector empfangen kann (normalerweise der Header der Protokolldatei, der das Format beschreibt). |
Eine ausführliche Liste der in der Konfigurationsdatei verwendeten Parameter finden Sie unter Felder für die Weiterleitungskonfiguration und Collector-Konfigurationsfelder.
Datenkomprimierung aktivieren/deaktivieren
Die Logkomprimierung reduziert den Verbrauch der Netzwerkbandbreite beim Übertragen von Logs an Google Security Operations Die Komprimierung kann jedoch zu einer erhöhten CPU-Auslastung führen. Der Kompromiss zwischen CPU-Nutzung und Bandbreite hängt von vielen Faktoren ab, die Art der Logdaten, die Komprimierbarkeit dieser Daten, die Verfügbarkeit Zyklen auf dem Host, auf dem der Forwarder läuft, und die Notwendigkeit einer Netzwerkreduzierung Bandbreitenverbrauch.
Zum Beispiel können textbasierte Protokolle gut komprimiert werden und eine erhebliche Bandbreite bieten. Kosteneinsparungen bei geringer CPU-Auslastung. Verschlüsselte Nutzlasten von Rohpaketen und eine höhere CPU-Auslastung führen.
Standardmäßig ist die Protokollkomprimierung deaktiviert. Das Aktivieren der Protokollkomprimierung kann den Bandbreitenverbrauch reduzieren. Das Aktivieren der Protokollkomprimierung kann aber auch die CPU-Auslastung erhöhen. Achten Sie auf den Kompromiss.
Um die Protokollkomprimierung zu aktivieren, setzen Sie das Feld compression auf true in der Konfigurationsdatei des Google Security Operations-Forwarder als Beispiel:
Die Datei FORWARDER_NAME.conf
output: compression: true url: malachiteingestion-pa.googleapis.com:443 identity: identity: collector_id: 10479925-878c-11e7-9421-10604b7cb5c1 customer_id: ebdc4bb9-878b-11e7-8455-10604b7cb5c1 ...
Die Datei FORWARDER_NAME_auth.conf
output: identity: secret_key: | { "type": "service_account", ... }
Laufwerkszwischenspeicherung konfigurieren
Mit der Laufwerkszwischenspeicherung können Sie Backlog-Nachrichten auf dem Laufwerk zwischenspeichern, zu speichern. Die im Rückstand befindlichen Nachrichten können für den Fall gespeichert werden, dass der Forwarder abstürzt oder Abstürze des zugrunde liegenden Hosts. Das Aktivieren der Zwischenspeicherung des Laufwerks kann sich auf die Leistung.
Wenn die Laufwerkszwischenspeicherung deaktiviert ist, verwendet der Forwarder jeweils 1 GB Arbeitsspeicher (RAM) Protokolltyp (z. B. pro Connector). Max_memory_buffer_bytes angeben Konfigurationsparameter. Der maximal zulässige Arbeitsspeicher beträgt 4 GB.
Sie können die automatische Zwischenspeicherung des Arbeitsspeichers so konfigurieren, dass ein dynamisch gemeinsamer Zwischenspeicher verwendet wird. die besser mit Zugriffsspitzen umgehen können. Um die Funktion gemeinsam genutzten Zwischenspeichers verwenden, fügen Sie Folgendes in die Forwarder-Konfiguration ein:
auto_buffer: enabled: true target_memory_utilization: 80
Wenn die automatische
Laufwerkzwischenspeicherung aktiviert ist,
target_memory_utilization
ist nicht definiert. Es wird ein Standardwert verwendet.
von 70
.
Wenn Sie den Forwarder mit Docker ausführen, empfiehlt Google, eine vom Konfigurations-Volume getrennt. Außerdem Jede Eingabe sollte mit einem eigenen Verzeichnis oder Volume isoliert werden, um Konflikten.
Beispielkonfiguration: Laufwerkzwischenspeicherung
Die folgende Konfiguration enthält eine Syntax zum Aktivieren der Zwischenspeicherung des Laufwerks:
collectors: - syslog: common: write_to_disk_buffer_enabled: true # /buffers/NIX_SYSTEM
is part of the external mounted volume for the forwarder write_to_disk_dir_path: /buffers/NIX_SYSTEM
max_file_buffer_bytes: 1073741824 batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Filter für reguläre Ausdrücke festlegen
Mit Filtern für reguläre Ausdrücke können Sie Logs anhand von regulären Ausdrücken filtern Übereinstimmungen mit Rohprotokollen.
Die Filter verwenden die hier beschriebene RE2-Syntax: https://github.com/google/re2/wiki/Syntax
Die Filter müssen einen regulären Ausdruck enthalten und optional ein Verhalten definieren wenn es eine Übereinstimmung gibt. Das Standardverhalten bei einer Übereinstimmung ist „Sperren“. Sie können auch explizit als Block konfigurieren).
Alternativ können Sie Filter mit dem Verhalten allow
angeben. Wenn Sie
allow
-Filter blockiert, blockiert der Forwarder alle Logs, die nicht mit mindestens einem übereinstimmen
Filter „allow
“.
Es ist möglich, eine beliebige Anzahl von Filtern zu definieren. Blockfilter können
Vorrang vor allow
-Filtern.
Wenn Sie Filter definieren, muss ihnen ein Name zugewiesen werden. Die Namen der aktiven Filter werden über Forwarder-Statusmesswerte an Google Security Operations gemeldet. Filter die im Stammverzeichnis der Konfiguration definiert sind, mit den auf der gesammelt werden. Die Filter auf Collector-Ebene haben in den folgenden Fällen Vorrang: widersprüchlichen Namen. Wenn keine Filter im Stammverzeichnis oder in Collector definiert sind werden alle zugelassen.
Beispielkonfiguration: Filter für reguläre Ausdrücke
In der folgenden Forwarder-Konfiguration protokolliert WINEVTLOG
,
die nicht mit dem Stammfilter (allow_filter
) übereinstimmen, werden blockiert. In Anbetracht der regulären
lässt der Filter nur Logs mit Prioritäten zwischen 0 und 99 zu.
Alle NIX_SYSTEM
-Logs, die „foo“ enthalten, oder "bar" blockiert sind,
trotz allow_filter
. Das liegt daran, dass die Filter ein logisches ODER verwenden. Alle
Protokolle werden verarbeitet, bis ein Filter ausgelöst wird.
regex_filters: allow_filter: regexp: ^<[1-9][0-9]?$>.*$ behavior_on_match: allow collectors: - syslog: common: regex_filters: block_filter_1: regexp: ^.*foo.*$ behavior_on_match: block block_filter_2: regexp: ^.*bar.*$ batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Beliebige Labels konfigurieren
Mit Labels können beliebige Metadaten mithilfe von Schlüssel/Wert-Paaren an Logs angehängt werden. Labels können für einen gesamten Forwarder oder innerhalb eines bestimmten Collectors konfiguriert werden eines Forwarders. Wenn beide angegeben sind, werden die Labels mit den Labels des Collectors zusammengeführt. Schlüssel haben Vorrang vor den Forwarder-Tasten, wenn sich die Schlüssel überschneiden.
Beispielkonfiguration: beliebige Labels
In der folgenden Forwarder-Konfiguration ist der 'foo=bar' und 'meow=mix' Schlüssel- und
Wertpaare sind sowohl an WINEVTLOG
-Logs angehängt, als auch an "foo=baz". und
"meow=mix" Schlüssel/Wert-Paare werden an die NIX_SYSTEM
-Logs angehängt.
metadata: labels: foo: bar meow: mix collectors: syslog: common: metadata: labels: foo: baz meow: mix batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Namespaces konfigurieren
Verwenden Sie Namespace-Labels, um Logs von verschiedenen Netzwerksegmenten zu identifizieren und Konflikte zwischen sich überschneidenden IP-Adressen zu beseitigen. Sie können ein Namespace-Label für ein den gesamten Forwarder oder innerhalb eines bestimmten Collectors des Forwarders. Wenn beide hat der Namespace des jeweiligen Collectors Vorrang.
Jeder für den Forwarder konfigurierte Namespace wird mit den zugehörigen Assets in der Google Security Operations-Benutzeroberfläche. Sie können auch mithilfe der Methode Google Security Operations Search-Funktion.
Informationen zum Aufrufen von Namespaces in der Google Security Operations-Benutzeroberfläche Weitere Informationen
Beispielkonfiguration: Namespaces
In der folgenden Forwarder-Konfiguration sind die WINEVTLOG
-Logs
an den FORWARDER-Namespace angehängt sind, und NIX_SYSTEM
-Logs sind
an den CORPORATE-Namespace angehängt ist.
metadata: namespace: FORWARDER collectors: - syslog: common: metadata: namespace: CORPORATE batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Load-Balancing- und Hochverfügbarkeitsoptionen konfigurieren
Der Google Security Operations-Forwarder für Linux kann in einer Umgebung bereitgestellt werden Ein Layer-4-Load-Balancer ist zwischen der Datenquelle und dem Forwarder installiert Instanzen. So kann ein Kunde die Logsammlung mehrere Forwarder erstellen oder die Protokolle an einen anderen Forwarder senden. Dieses wird nur mit dem Sammlungstyp „syslog“ unterstützt.
Der Linux-Forwarder umfasst einen integrierten HTTP-Server, der auf den HTTP-Zustand antwortet und Prüfungen vom Load-Balancer. Der HTTP-Server sorgt auch dafür, dass die Protokolle nicht beim Starten oder Herunterfahren eines Forwarders verloren geht.
HTTP-Server, Load-Balancing und Hochverfügbarkeitsoptionen konfigurieren im Abschnitt server der Forwarder-Konfigurationsdatei. Diese Optionen das Festlegen von Zeitüberschreitungen und Statuscodes, die als Antwort auf In Container-Planer und orchestrierungsbasierte empfangene Systemdiagnosen Bereitstellungen sowie von herkömmlichen Lastenausgleichsmodulen.
Verwenden Sie die folgenden URL-Pfade für Zustands-, Bereitschafts- und Aktivitätsprüfungen.
Die <host:port>
-Werte werden in der Forwarder-Konfiguration definiert.
- http://
<host:port>
/meta/available: Aktivitätsprüfungen für Container Planer oder Orchestratoren. - http://
<host:port>
/meta/ready: Bereitschaftsprüfungen und herkömmliches Laden Systemdiagnosen des Load-Balancers.
Die folgende Forwarder-Konfiguration ist ein Beispiel für Load-Balancing und hohe Verfügbarkeit:
collectors: - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60 server: graceful_timeout: 15s drain_timeout: 10s http: port: 8080 host: 0.0.0.0 read_timeout: 3s read_header_timeout: 3s write_timeout: 3s idle_timeout: 3s routes: - meta: available_status: 204 ready_status: 204 unready_status: 503
Konfigurationspfad | Beschreibung |
---|---|
Server : Graceful_timeout | Die Zeitspanne, in der der Forwarder eine schlechte Bereitschafts-/Systemdiagnose zurückgibt nimmt weiterhin neue Verbindungen an. Dies ist auch die Zeit, zwischen das Signal empfangen, um das Herunterfahren des Geräts zu starten Server selbst. Dadurch hat der Load-Balancer Zeit, den Forwarder zu entfernen aus dem Pool. |
Server : Drain_timeout | Die Zeit, die der Forwarder auf aktive Verbindungen wartet, um von selbst schließen, bevor sie vom Server geschlossen werden. |
Server : http : Port | Die Portnummer, die der HTTP-Server auf Systemdiagnosen des Load-Balancer. Muss zwischen 1024 und 65535 liegen. |
Server : http : Host | Die IP-Adresse oder der Hostname, der in IP-Adressen aufgelöst werden kann, die der den Server überwachen soll. Wenn das Feld leer ist, wird als Standardwert „Lokales System“ verwendet (0.0.0.0) |
Server : http : read_timeout | Wird zum Abstimmen des HTTP-Servers verwendet. Muss in der Regel nicht von Standardeinstellung. Die maximal zulässige Zeit zum Lesen des gesamten -Anfrage sowohl im Header als auch im Textkörper. Sie können sowohl read_timeout read_header_timeout. |
Server : http : read_header_timeout | Wird zum Abstimmen des HTTP-Servers verwendet. Muss in der Regel nicht von Standardeinstellung. Die maximal zulässige Zeit zum Lesen der Anfrage Header. Die Verbindung hat gelesen, dass das Zeitlimit nach dem Lesen der Header. |
Server : http : write_timeout | Wird zum Abstimmen des HTTP-Servers verwendet. Muss in der Regel nicht von Standardeinstellung. Die maximal zulässige Zeit zum Senden einer Antwort. Es wird zurückgesetzt, wenn ein neuer Anfrageheader gelesen wird. |
Server : http : Idle_timeout | Wird zum Abstimmen des HTTP-Servers verwendet. Muss in der Regel nicht von Standardeinstellung. Die maximale Wartezeit auf den nächsten -Anfrage, wenn inaktive Verbindungen aktiviert sind. Wenn „idle_timeout“ null ist, wird der Wert von read_timeout verwendet. Wenn beide null sind, ist der read_header_timeout verwendet. |
route : meta : ready_status | Der Statuscode, den der Forwarder zurückgibt, wenn er zur Annahme des Traffics bereit ist
in einer der folgenden Situationen:
|
Routen : meta : ungeleseny_status | Der Statuscode, den der Forwarder zurückgibt, wenn er nicht akzeptiert werden kann Zugriffe. |
Routen : meta : available_status | Der Statuscode, den der Forwarder zurückgibt, wenn eine Aktivitätsprüfung empfangen wird und der Forwarder ist verfügbar. Containerplaner oder -Orchestratoren senden häufig Aktivitätsprüfungen. |
Häufig gestellte Fragen
Wie aktualisiere ich die Weiterleitung?
Der Linux-Forwarder wird kontinuierlich über ein Shell-Skript im Docker aktualisiert Bild. Führen Sie den Forwarder aus, um das Docker-Image zu aktualisieren.
Was ist ein Docker-Container?
Docker-Container sind wie virtuelle Maschinen, die zusätzliche Sicherheit, Isolation und Ressourcenverwaltung.
Virtuelle Maschinen haben sowohl einen privilegierten Bereich (Linux-Kernel) als auch Userspace (alles, mit dem Sie interagieren: libc, python, ls, tcpdump usw.).
Container – haben nur einen Nutzerbereich (alles, mit dem Sie interagieren: libc, python, ls, tcpdump usw.) und sind auf den Berechtigungsbereich des Hosts angewiesen.
Warum sollten Sie den Google Security Operations-Forwarder mithilfe eines Containers verteilen?
- Mehr Sicherheit durch Isolation:
<ph type="x-smartling-placeholder">
- </ph>
- Die Kundenumgebung und -anforderungen wirken sich nicht auf Google Security Operations aus. Forwarder.
- Die Google Security Operations-Forwarder-Umgebung und -Anforderungen haben keinen Einfluss Kundschaft.
- Der Mechanismus zur Containerverteilung ist bereits vorhanden und kann privat und separat für Google Cloud und die Kunden. https://cloud.google.com/container-registry/
Möchten Sie erweiterte Docker-Befehle erlernen?
- Der Google Security Operations-Forwarder verwendet einen einzigen Container. Daher ist es nicht erforderlich, Informationen zu Swarm, Orchestrierung und anderen erweiterten Docker erhalten Konzepte oder Befehle.