Installer et configurer le service de transfert
Ce document explique comment installer et configurer le redirecteur Google Security Operations sur les systèmes Linux et Windows à l'aide de Docker.
Le redirecteur est un composant logiciel que vous pouvez installer sur une machine ou un appareil, comme un serveur, au sein de votre réseau. Il collecte les données de journaux et les transfère vers votre instance Google SecOps.
Vous pouvez utiliser le redirecteur pour envoyer des journaux directement de votre environnement vers Google SecOps, sans avoir besoin de buckets cloud ni d'API tierces pour les types de journaux non compatibles. Le redirecteur sert de solution prête à être déployée, ce qui élimine le besoin d'une intégration manuelle avec l'API d'ingestion.
Google SecOps fournit un conteneur Docker pour le déploiement sécurisé du redirecteur. Vous pouvez exécuter et gérer le conteneur Docker sur des machines physiques ou virtuelles.
Configuration requise
Voici quelques recommandations générales. Pour obtenir des recommandations spécifiques à votre système, contactez l'assistance Google SecOps.
Système Linux
Le redirecteur est compatible avec différentes distributions Linux telles que Debian, Ubuntu, Red Hat et Suse. Pour des performances optimales, vous devez utiliser Docker version 20.10.21 ou ultérieure.
RAM : 1 Go de RAM est requis pour chaque type de données collectées que Google SecOps accepte pour l'ingestion. Par exemple, si vous spécifiez quatre collecteurs différents, vous avez besoin de 4 Go de RAM pour collecter les données des quatre.
Processeur : deux processeurs suffisent pour gérer jusqu'à 10 000 événements par seconde (EPS) pour tous les types de données. Si vous prévoyez que votre redirecteur gérera plus de 10 000 EPS, allouez quatre à six processeurs.
Disque : 20 Go d'espace disque sont recommandés, quelle que soit la quantité de données traitée par le redirecteur.
Système Windows
Le redirecteur est compatible avec Microsoft Windows Server 2022. Pour des performances optimales, vous devez utiliser Docker version 20.10.21 ou ultérieure.
RAM : 1,5 Go de RAM sont requis pour chaque type de données collectées que Google SecOps accepte pour l'ingestion. Par exemple, si vous spécifiez quatre collecteurs différents, vous avez besoin de 6 Go de RAM pour collecter les données des quatre.
Processeur : deux processeurs suffisent pour gérer jusqu'à 10 000 événements par seconde (EPS) pour tous les types de données. Si vous prévoyez que votre redirecteur gérera plus de 10 000 EPS, allouez quatre à six processeurs.
Disque : nous vous recommandons de disposer de 20 Go d'espace disque, quelle que soit la quantité de données traitée par le redirecteur.
Avant de commencer
Avant de commencer l'implémentation de votre redirecteur, tenez compte des points suivants.
Plages d'adresses IP utilisées par Google
Lors de la configuration du redirecteur, vous devrez peut-être ajuster les paramètres de pare-feu qui impliquent de spécifier des plages d'adresses IP. Les plages d'adresses IP de domaine par défaut utilisées par les API et les services Google sont allouées de manière dynamique et changent souvent. Pour en savoir plus, consultez Obtenir les plages d'adresses IP utilisées par Google.
Vérifier la configuration du pare-feu
Si le conteneur de redirecteur s'exécute derrière un pare-feu ou un proxy authentifié, accordez un accès sortant aux hôtes suivants :
| Type de connexion | Destination | 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 | eu-chronicle.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 | www.googleapis.com |
443 |
| TCP | storage.googleapis.com |
443 |
Planifier votre implémentation
Avant de commencer à configurer le redirecteur, planifiez votre implémentation. Cela vous aidera à aligner vos sources de données et vos attributs de configuration sur vos objectifs de sécurité, les capacités de votre infrastructure et vos exigences d'évolutivité.
Déterminer les données à ingérer
Identifiez les sources de données les plus pertinentes pour votre redirecteur parmi les options suivantes :
Splunk : idéal si vous utilisez déjà Splunk pour la gestion des journaux.
Syslog : polyvalent pour les journaux système et d'application de divers appareils.
Fichier : flexible pour l'ingestion de n'importe quel fichier journal.
Paquet : offre une visibilité approfondie du réseau en capturant le trafic brut.
Kafka : idéal pour l'agrégation de journaux en temps réel et à volume élevé à partir de systèmes distribués.
WebProxy : idéal pour obtenir des insights sur le trafic Web et le comportement des utilisateurs.
Limite
La taille maximale d'une ligne de journal dans les flux de données est de 4 Mo.
Déterminer la configuration
Avant d'installer le redirecteur, déterminez les attributs clés suivants pour garantir une implémentation réussie.
Compression des données
La compression des données ou des journaux réduit la consommation de bande passante réseau lors du transfert des journaux vers Google SecOps. Toutefois, cela peut entraîner une augmentation de l'utilisation du processeur. L'équilibre optimal entre les économies de bande passante et l'utilisation du processeur dépend de plusieurs facteurs, tels que le type de journal, la compressibilité des données, les ressources de processeur disponibles et les contraintes de bande passante de votre réseau.
Par exemple, les journaux textuels se compressent généralement bien et peuvent permettre d'économiser une bande passante importante avec une faible utilisation du processeur, tandis que les données chiffrées ou binaires peuvent ne pas se compresser efficacement et entraîner une utilisation plus élevée du processeur.
Par défaut, la compression des journaux est désactivée. Évaluez le compromis en fonction de votre environnement spécifique et de la nature de vos données de journaux.
Mise en mémoire tampon sur disque
Nous vous recommandons d'activer la mise en mémoire tampon sur disque. La mise en mémoire tampon sur disque vous permet de mettre en mémoire tampon les messages en attente sur le disque plutôt que dans la mémoire, ce qui vous protège contre la perte de données en cas de plantage du redirecteur ou de l'hôte. Toutefois, l'activation de la mise en mémoire tampon sur disque peut avoir un impact sur les performances.
Si la mise en mémoire tampon sur disque est désactivée, le redirecteur alloue 1 Go de mémoire (RAM) pour chaque type de journal (par exemple, par connecteur). La mémoire maximale autorisée pour la mise en mémoire tampon sur disque est de 4 Go.
Filtres d'expression régulière
Les filtres d'expression régulière vous permettent d'évaluer des modèles par rapport aux données de journaux brutes à l'aide de la syntaxe RE2. Chaque filtre doit inclure une expression régulière et peut éventuellement définir le comportement lorsqu'une correspondance est trouvée.
Étiquettes arbitraires
Les étiquettes permettent d'associer des métadonnées personnalisées aux journaux à l'aide de paires clé/valeur. Vous pouvez configurer des étiquettes pour l'ensemble d'un redirecteur ou dans un collecteur spécifique du redirecteur. Si les deux sont présents, les étiquettes au niveau du collecteur remplacent les étiquettes au niveau du redirecteur en cas de chevauchement des clés.
Espaces de noms
Vous pouvez utiliser des libellés d'espace de noms pour identifier les journaux provenant de segments de réseau distincts et résoudre les conflits d'adresses IP qui se chevauchent. Vous pouvez configurer un libellé d'espace de noms pour l'ensemble d'un redirecteur ou dans un collecteur spécifique du redirecteur. Si les deux sont présents, l'espace de noms au niveau du collecteur remplace l'espace de noms au niveau du redirecteur.
Type de journal
Google SecOps est compatible avec différents types de journaux. Pour obtenir la liste complète, consultez Ensembles de données compatibles.
Options d'équilibrage de charge et de haute disponibilité
L'équilibrage de charge n'est compatible qu'avec le type de collecte syslog.
Le redirecteur peut être déployé dans des environnements où un équilibreur de charge de couche 4 est installé entre la source de données et les instances du redirecteur. Cela vous permet de répartir la collecte de journaux sur plusieurs redirecteurs, ce qui améliore la fiabilité en redirigeant les journaux vers un autre redirecteur en cas de défaillance.
Le redirecteur dispose d'un serveur HTTP intégré qui répond aux vérifications d'état des équilibreurs de charge et empêche la perte de journaux au démarrage et à l'arrêt. Vous pouvez configurer le serveur HTTP, l'équilibrage de charge et les options de haute disponibilité pour spécifier les délais avant expiration et les codes d'état des vérifications d'état. Cette configuration est compatible avec les déploiements basés sur des conteneurs et les équilibreurs de charge.
| Paramètre | Description |
|---|---|
| Délai d'expiration progressif | Durée pendant laquelle les nouvelles connexions sont acceptées après que le redirecteur a renvoyé l'état unready en réponse à une vérification de l'état'état.
Il s'agit également du temps d'attente entre la réception d'un signal d'arrêt et le début de l'arrêt du serveur lui-même. Cela donne à l'équilibreur de charge le temps de supprimer le redirecteur du pool.Les valeurs valides sont exprimées en secondes. Par exemple, pour spécifier 10 secondes, saisissez 10.. Les valeurs décimales ne sont pas autorisées.Valeur par défaut : 15 secondes |
| Délai avant expiration du drainage | Durée pendant laquelle le redirecteur attend que les connexions actives se ferment d'elles-mêmes avant d'être fermées par le serveur. Par exemple, pour spécifier cinq secondes, saisissez 5.. Les valeurs décimales ne sont pas autorisées.Valeur par défaut : 10 secondes |
| Port | Numéro de port sur lequel le serveur HTTP écoute les vérifications d'état de l'équilibreur de charge. La valeur doit être comprise entre 1 024 et 65 535. Par défaut : 8080 |
| Adresse IP ou nom d'hôte | Adresse IP ou nom d'hôte pouvant être résolu en adresse IP, que le serveur doit écouter. Par défaut : 0.0.0.0 (le système local) |
| Délai avant expiration de la lecture | Utilisé pour régler le serveur HTTP. En règle générale, il n'est pas nécessaire de modifier le paramètre par défaut. Durée maximale autorisée pour lire l'intégralité de la requête, à la fois l'en-tête et le corps. Vous pouvez définir à la fois le champ délai avant expiration de lecture et le champ délai avant expiration de lecture de l'en-tête. Par défaut : 3 secondes |
| Délai avant expiration de la lecture de l'en-tête | Utilisé pour régler le serveur HTTP. En règle générale, il n'est pas nécessaire de modifier le paramètre par défaut. Durée maximale autorisée pour lire les en-têtes de requête. Le délai de lecture de la connexion est réinitialisé après la lecture de l'en-tête. Par défaut : 3 secondes |
| Délai avant expiration de l'écriture | Utilisé pour régler le serveur HTTP. En règle générale, il n'est pas nécessaire de modifier le paramètre par défaut. Délai maximal autorisé pour envoyer une réponse. Il est réinitialisé lorsqu'un nouvel en-tête de requête est lu. Par défaut : 3 secondes |
| Délai d'inactivité | Utilisé pour régler le serveur HTTP. En règle générale, il n'est pas nécessaire de modifier le paramètre par défaut. Temps d'attente maximal de la requête suivante lorsque les connexions inactives sont activées. Si le champ Délai d'inactivité avant expiration est défini sur zéro, la valeur du champ Délai de lecture avant expiration est utilisée. Si les deux sont définis sur zéro, le champ read header timeout (délai avant expiration de l'en-tête de lecture) est utilisé. Par défaut : 3 secondes |
| Code d'état disponible | Code d'état renvoyé par le redirecteur lorsqu'une vérification d'activité est reçue et que le redirecteur est disponible. Les planificateurs et les orchestrateurs de conteneurs envoient souvent des vérifications d'activité. Par défaut : 204 |
| Code d'état "Prêt" | Code d'état renvoyé par le redirecteur lorsqu'il est prêt à accepter le trafic dans l'une des situations suivantes :
|
| Code d'état "Non prêt" | Code d'état renvoyé par le redirecteur lorsqu'il n'est pas prêt à accepter du trafic. Par défaut : 503 |
Étape 1 : Définissez la configuration du redirecteur
Chaque redirecteur déployé nécessite un fichier de configuration de redirecteur. Un fichier de configuration du redirecteur spécifie les paramètres de transfert des données vers votre instance Google SecOps. Nous vous recommandons de générer un nouveau fichier de configuration pour chaque hôte afin de distinguer clairement les collecteurs associés à chacun d'eux.
Google Cloud personnalise ces fichiers de configuration avec des métadonnées spécifiques pour chaque instance de redirecteur. Vous pouvez modifier ces fichiers pour les adapter à vos besoins spécifiques et y ajouter des détails sur les types de journaux que vous souhaitez ingérer.
Vous pouvez générer un fichier de configuration de redirecteur via l'interface utilisateur, l'API ou manuellement.
L'UI fournit une interface graphique pour configurer les redirecteurs. Il s'agit de la méthode recommandée pour créer une configuration de redirecteur. Il s'agit de la méthode la plus simple pour commencer, qui ne nécessite aucune programmation. Pour télécharger le fichier de configuration à l'aide de l'interface utilisateur Google SecOps, consultez Gérer les configurations de redirecteur via l'UI Google SecOps.
L'API permet de configurer les redirecteurs de manière programmatique. Pour télécharger la configuration du redirecteur de manière programmatique, consultez API Forwarder Management.
Vous pouvez créer le fichier de configuration manuellement et y ajouter les options de configuration. Nous vous recommandons d'utiliser la méthode de l'UI pour générer le fichier de configuration afin de garantir l'exactitude et de minimiser les erreurs potentielles. Pour générer le fichier manuellement, consultez Gérer manuellement le fichier de configuration du redirecteur.
Étape 2 : Installez Docker
Cette section explique comment installer Docker sur votre système.
Authentification Docker avec Artifact Registry
Lors de l'installation de Docker, vous devez l'authentifier. Vous pouvez authentifier Docker à l'aide de l'interface de ligne de commande (CLI) de Google Cloud CLI ou, si vous ne parvenez pas à installer Google Cloud CLI, en créant un fichier JSON de compte de service dans la VM.
Méthode 1 : Utiliser l'interface de ligne de commande (CLI) de Google Cloud CLI
Exécutez la commande suivante pour authentifier Docker :
gcloud auth configure-docker gcr.io
Méthode 2 : Créez et téléchargez un nouveau compte de service JSON dans la machine virtuelle (VM).
Utilisez cette méthode si vous ne parvenez pas à installer la Google Cloud CLI (interface de ligne de commande).
Exécutez la commande suivante pour authentifier Docker :
cat key.json | docker login -u _json_key --password-stdin https://gcr.io
Pour en savoir plus sur les autres méthodes d'authentification Docker, consultez Configurer l'authentification sur Artifact Registry pour Docker.
Système Linux
Docker est une technologie Open Source, et toute la documentation nécessaire est disponible auprès de la communauté Docker Open Source. Pour obtenir des instructions sur l'installation de Docker, consultez Installer Docker Engine.
Pour vérifier si Docker est correctement installé sur votre système, exécutez la commande suivante (nécessite des droits élevés) :
docker ps
La réponse suivante indique que Docker a été correctement installé :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Système Windows
Démarrez Windows PowerShell avec des droits d'administrateur et vérifiez la connectivité réseau à Google Cloud en procédant comme suit :
Cliquez sur Démarrer.
Saisissez
PowerShell, puis effectuez un clic droit sur Windows PowerShell.Cliquez sur Exécuter en tant qu'administrateur.
Exécutez la commande suivante :
C:\> test-netconnection <host> -port <port>Le résultat de la commande indique que l'état de
TcpTestSucceededesttrue.Exemple :
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
Pour installer Docker, procédez comme suit sur votre serveur Windows.
Activez la fonctionnalité de conteneur Microsoft Windows :
Install-WindowsFeature containers -RestartExécutez la commande suivante en mode Administrateur PowerShell pour installer Docker CE :
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.ps1Testez l'interface de ligne de commande Docker en exécutant la commande
docker ps, qui renvoie la liste des conteneurs en cours d'exécution. Si Docker n'est pas installé correctement, une erreur s'affiche.Pour en savoir plus, consultez Premiers pas : préparer Windows pour les conteneurs.
Pour les déploiements d'entreprise, installez Mirantis Container Runtime, également appelé Docker EE.
Étape 3 : Installer le redirecteur
Cette section explique comment installer le redirecteur à l'aide d'un conteneur Docker.
Étape 3a : Déplacez les fichiers de configuration vers le répertoire du redirecteur
La première étape du processus d'installation du redirecteur consiste à placer les fichiers de configuration nécessaires dans le répertoire du redirecteur désigné.
Système Linux
Placez les fichiers de configuration dans le répertoire du redirecteur en procédant comme suit :
Connectez-vous à l'hôte du redirecteur Linux à l'aide du terminal.
Accédez au répertoire d'accueil qui exécute le conteneur Docker.
Créez un répertoire pour stocker les fichiers de configuration du redirecteur.
mkdir /opt/chronicle/'CONFIG'
Vous pouvez remplacer le nom du répertoire,
CONFIG, par le nom de votre choix. Veillez à utiliser le même nom de répertoire lors de l'exécution de la commandedocker run.Changez de répertoire.
cd /opt/chronicle/config
Une fois les fichiers transférés, assurez-vous que les fichiers de configuration se trouvent dans le répertoire
/opt/chronicle/config.ls -l
Système Windows
Créez un dossier C:\config et placez-y les fichiers de configuration. Vous pouvez remplacer le nom du dossier, config, par le nom de votre choix. Veillez à utiliser le même nom de dossier lors de l'exécution de la commande docker run.
Étape 3b : Exécuter le redirecteur
Une fois les fichiers de configuration placés dans le répertoire du redirecteur désigné, vous pouvez démarrer le redirecteur ou passer à la dernière version du conteneur Google SecOps.
Si vous mettez à niveau le conteneur, nettoyez les exécutions Docker précédentes en exécutant les commandes suivantes.
docker stop 'cfps'
docker rm 'cfps'
Dans l'exemple, le nom du conteneur Docker est cfps.
Pour démarrer le redirecteur pour la première fois ou pour passer à la dernière version du conteneur Google SecOps, procédez comme suit :
Obtenez la dernière image Docker à partir de Google Cloud :
Système Linux :
docker pull gcr.io/chronicle-container/cf_production_stableSystème Windows :
docker pull gcr.io/chronicle-container/cf_production_stable_windowsDémarrez le redirecteur à partir du conteneur Docker :
Système Linux :
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(Facultatif pour le système Linux) Lorsque vous démarrez le redirecteur à partir du conteneur Docker, vous pouvez installer un sous-répertoire spécifique à partir de
/var/log/.
Pour installer un sous-répertoire spécifique, ajoutez la ligne suivante à la commande et remplacez l'espace réservé<parser-name>par le nom du répertoire sur le système hôte à partir duquel les journaux doivent être collectés :-v /var/log/<parser-name>:/opt/chronicle/edr \Système Linux (y compris l'option permettant d'installer un sous-répertoire spécifique) :
`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 \ -v /var/log/<parser-name>:/opt/chronicle/edr \ gcr.io/chronicle-container/cf_production_stable`Système Windows :
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
Les options --log-opt sont disponibles depuis Docker 1.13. Ces options limitent la taille des fichiers journaux du conteneur et doivent être utilisées tant que la version de Docker que vous utilisez les accepte.
Gérer le redirecteur
Les sections suivantes fournissent des conseils sur la gestion de votre redirecteur.
Afficher les journaux du redirecteur
Pour afficher les journaux du redirecteur, exécutez la commande suivante :
docker logs cfpsPour afficher le chemin d'accès au fichier dans lequel les journaux sont stockés, exécutez la commande suivante :
docker inspect --format='{{.LogPath}}' CONTAINER_NAMEPour afficher les journaux d'exécution en direct, exécutez la commande suivante :
docker logs cfps -fPour stocker les journaux dans un fichier, exécutez la commande suivante :
docker logs cfps &> logs.txt
Désinstaller le redirecteur
Les commandes Docker suivantes vous aident à arrêter, désinstaller ou supprimer le redirecteur.
Pour arrêter ou désinstaller le conteneur de transfert, exécutez la commande suivante :
docker stop cfps
Pour supprimer le conteneur de transfert, exécutez la commande suivante :
docker rm cfps
Mettre à jour le redirecteur
Le redirecteur se compose de deux composants, chacun disposant d'un processus de mise à jour comme suit :
Bundle de redirecteur : ce composant est mis à jour automatiquement, ce qui évite d'avoir à redémarrer.
Image Docker du redirecteur : les mises à jour de ce composant sont effectuées manuellement. Vous devez arrêter l'instance de redirecteur actuelle et en démarrer une nouvelle, comme décrit à l'étape 3b.
Guides d'ingestion du redirecteur pour des ensembles de données spécifiques
Pour savoir comment un ensemble de données particulier est ingéré à l'aide de redirecteurs, consultez les ressources suivantes :
- Installer Carbon Black Event Forwarder
- Collecter les journaux de pare-feu Cisco ASA
- Collecter les journaux du capteur Corelight
- Collecter les journaux Fluentd
- Collecter les journaux système Linux auditd et Unix
- Collecter des données Microsoft Windows AD
- Collecter les données DHCP Microsoft Windows
- Collecter des données DNS Microsoft Windows
- Collecter les données d'événements Microsoft Windows
- Collecter des données Microsoft Windows Sysmon
- Collecter les journaux osquery
- Collecter les journaux OSSEC
- Collecter les journaux de pare-feu Palo Alto Networks
- Collecter les journaux Splunk CIM
- Collecter les journaux Zeek
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.