Installer et configurer le service de transfert

Compatible avec :

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 :
  • Une vérification d'aptitude est reçue d'un planificateur ou d'un orchestrateur de conteneurs.
  • Une vérification de l'état est reçue d'un équilibreur de charge.
Par défaut : 204
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 :

  1. Cliquez sur Démarrer.

  2. Saisissez PowerShell, puis effectuez un clic droit sur Windows PowerShell.

  3. Cliquez sur Exécuter en tant qu'administrateur.

  4. Exécutez la commande suivante :

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

    Le résultat de la commande indique que l'état de TcpTestSucceeded est true.

    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.

  1. Activez la fonctionnalité de conteneur Microsoft Windows :

    Install-WindowsFeature containers -Restart

  2. Exé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.ps1
    
  3. Testez 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 :

  1. Connectez-vous à l'hôte du redirecteur Linux à l'aide du terminal.

  2. Accédez au répertoire d'accueil qui exécute le conteneur Docker.

  3. 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 commande docker run.

  4. Changez de répertoire.

      cd /opt/chronicle/config
    

  5. 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 :

  1. Obtenez la dernière image Docker à partir de Google Cloud :

    Système Linux :

    docker pull gcr.io/chronicle-container/cf_production_stable

    Système Windows :

    docker pull gcr.io/chronicle-container/cf_production_stable_windows

  2. Dé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 cfps
    
  • Pour 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_NAME
    
  • Pour afficher les journaux d'exécution en direct, exécutez la commande suivante :

    docker logs cfps -f
    
  • Pour 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 :

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.