Installer et configurer le redirecteur

Compatible avec:

Ce document explique comment installer et configurer le transpondeur Google Security Operations sur des systèmes Linux et Windows à l'aide de Docker.

Le forwarder est un composant logiciel que vous pouvez installer sur une machine ou un appareil, comme un serveur, sur votre réseau. Il collecte les données de journal et les transmet à votre instance Google SecOps.

Vous pouvez utiliser le transfert pour envoyer des journaux directement depuis votre environnement vers Google SecOps, sans avoir besoin de buckets cloud ni d'API tierces pour les types de journaux non compatibles. Le forwarder sert de solution prête à l'emploi, ce qui élimine la nécessité d'une intégration manuelle avec l'API d'ingestion.

Google SecOps fournit un conteneur Docker pour le déploiement d'un forwarder sécurisé. 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 transfert est compatible avec diverses distributions Linux, telles que Debian, Ubuntu, Red Hat et Suse. Pour des performances optimales, nous vous recommandons d'utiliser Docker 20.10.21 (ou version ultérieure).

  • RAM: 1 Go de RAM est requis pour chaque type de données collectées accepté par Google SecOps 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 pour les quatre.

  • CPU: deux CPU suffisent à gérer jusqu'à 10 000 événements par seconde (EPS) pour tous les types de données. Si vous prévoyez que votre intermédiaire traitera plus de 10 000 EPS, allouez quatre à six CPU.

  • Disque: 20 Go d'espace disque sont recommandés, quelle que soit la quantité de données gérées par le transpondeur.

Système Windows

Le redirecteur est compatible avec Microsoft Windows Server 2022. Pour des performances optimales, nous vous recommandons d'utiliser Docker 20.10.21 (ou version ultérieure).

  • RAM: 1,5 Go de RAM est nécessaire pour chaque type de données collectées accepté par Google SecOps 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 pour les quatre.

  • CPU: deux CPU suffisent à gérer jusqu'à 10 000 événements par seconde (EPS) pour tous les types de données. Si vous prévoyez que votre forwarder gérera plus de 10 000 EPS, allouez quatre à six CPU.

  • Disque: 20 Go d'espace disque sont recommandés, quelle que soit la quantité de données gérées par le transpondeur.

Avant de commencer

Avant de commencer l'implémentation de votre forwarder, tenez compte des points suivants.

Plages d'adresses IP utilisées par Google

Lorsque vous configurez le transfert, vous devrez peut-être ajuster les paramètres du 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 fréquemment. Pour en savoir plus, consultez la section Obtenir des plages d'adresses IP Google.

Vérifier la configuration du pare-feu

Si votre conteneur de transfert se trouve derrière des pare-feu ou des proxys authentifiés, vous devrez ouvrir l'accès 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 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

Planifier votre implémentation

Avant de commencer à configurer le transfert, planifiez votre implémentation. Cela vous aidera à aligner vos sources de données et vos attributs de configuration sur vos objectifs de sécurité, vos fonctionnalités d'infrastructure et vos exigences d'évolutivité.

Déterminer les données à insérer

Identifiez les sources de données les plus pertinentes pour votre expéditeur 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 différents appareils.

  • Fichier: permet d'ingérer 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 à fort volume et en temps réel à 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 des lignes de journal des flux de données est de 4 Mo.

Déterminer la configuration

Avant d'installer le forwarder, 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 réseau.

Par exemple, les journaux basés sur du texte se compressent généralement bien et peuvent générer des économies de bande passante substantielles avec une utilisation faible 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 journal.

Mise en mémoire tampon de disque

Nous vous recommandons d'activer la mise en mémoire tampon du 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 forwarder 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 forwarder 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 de disque est de 4 Go.

Filtres d'expressions régulières

Les filtres d'expression régulière vous permettent de filtrer les journaux en faisant correspondre des formats aux données de journal brutes. Les filtres utilisent la syntaxe RE2. Les filtres doivent inclure une expression régulière et, éventuellement, définir un comportement en cas de correspondance.

Libellés arbitraires

Les libellés permettent d'associer des métadonnées personnalisées aux journaux à l'aide de paires clé-valeur. Vous pouvez configurer des libellés pour l'ensemble d'un forwarder ou dans un collecteur spécifique du forwarder. Si les deux sont présents, les libellés au niveau du collecteur remplacent les libellés au niveau du forwarder si les clés se chevauchent.

Espaces de noms

Vous pouvez utiliser des libellés d'espace de noms pour identifier les journaux de segments réseau distincts et résoudre les conflits d'adresses IP qui se chevauchent. Vous pouvez configurer un libellé d'espace de noms pour un forwarder entier ou dans un collecteur spécifique du forwarder. Si les deux sont présents, l'espace de noms au niveau du collecteur remplace l'espace de noms au niveau du forwarder.

Type de journal

Google SecOps est compatible avec divers types de journaux. Pour obtenir la liste complète, consultez la section Ensembles de données compatibles.

Options d'équilibrage de charge et de haute disponibilité

L'équilibrage de charge n'est disponible que pour le type de collecte syslog.

Le forwarder 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 de forwarder. Vous pouvez ainsi distribuer la collecte des journaux sur plusieurs transferts, ce qui améliore la fiabilité en redirigeant les journaux vers un autre transfert en cas de défaillance.

Le forwarder dispose d'un serveur HTTP intégré qui répond aux vérifications de l'état des équilibreurs de charge et empêche la perte de journaux lors du démarrage et de l'arrêt. Vous pouvez configurer les options du serveur HTTP, de l'équilibrage de charge et de la haute disponibilité pour spécifier les durées de délai avant expiration et les codes d'état des vérifications d'état. Cette configuration est compatible à la fois avec les déploiements basés sur des conteneurs et les équilibreurs de charge.

Paramètre Description
Délai avant expiration Durée pendant laquelle les nouvelles connexions sont acceptées après que le transpondeur a renvoyé un état unready en réponse à une vérification de l'état#39;état. Il s'agit également du délai 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 laisse le temps à l'équilibreur de charge de supprimer le forwarder 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 forwarder 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 de l'é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.

Valeur par défaut:0.0.0.0 (système local)
Délai avant expiration de la lecture Permet d'ajuster 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 timeout de lecture et le champ timeout de l'en-tête de lecture.

Par défaut:3 secondes
Délai avant expiration de l'en-tête de lecture Permet d'ajuster 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. L'échéance de lecture de la connexion est réinitialisée après la lecture de l'en-tête.

Par défaut:3 secondes
Délai avant expiration de l'écriture Permet d'ajuster 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 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é Permet d'ajuster 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 d'attente de la prochaine requête lorsque les connexions inactives sont activées. Si le champ timeout d'inactivité est défini sur zéro, la valeur du champ timeout de lecture est utilisée. Si les deux valeurs sont nulles, le champ 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 transpondeur lorsqu'une vérification de l'état est reçue et que le transpondeur est disponible. Les planificateurs et les orchestrateurs de conteneurs envoient souvent des vérifications de l'activité.

Par défaut:204
Code d'état "Prêt" Code d'état renvoyé par le forwarder lorsqu'il est prêt à accepter le trafic dans l'une des situations suivantes:
  • Une vérification de l'aptitude est reçue d'un planificateur ou d'un orchestrateur de conteneur.
  • Une vérification de l'état est reçue d'un équilibreur de charge.
Valeur par défaut:204
Code d'état "non prêt" Code d'état renvoyé par le forwarder lorsqu'il n'est pas prêt à accepter le trafic.

Par défaut:503

Étape 1: Définissez la configuration du transfert

Chaque redirecteur déployé nécessite un fichier de configuration de redirecteur. Un fichier de configuration de transfert spécifie les paramètres pour transférer les données vers votre instance Google SecOps. Nous vous recommandons de générer un 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 transfert. Vous pouvez modifier ces fichiers en fonction de vos exigences spécifiques et intégrer des informations sur les types de journaux que vous souhaitez ingérer.

Vous pouvez générer un fichier de configuration de transfert via l'UI, l'API ou manuellement.

  • L'UI fournit une interface graphique pour configurer les transferts et constitue la méthode recommandée pour créer une configuration de transfert. Il s'agit du moyen le plus simple de commencer et 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 transfert via l'interface utilisateur Google SecOps.

  • L'API permet de configurer des redirecteurs de façon programmatique. Pour télécharger la configuration du transfert de manière programmatique, consultez la section API de gestion du transfert.

  • 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 la précision et de minimiser les erreurs potentielles. Pour générer le fichier manuellement, consultez Gérer manuellement le fichier de configuration du forwarder.

Étape 2: Installez Docker

Cette section explique comment installer Docker sur votre système.

Système Linux

Docker est 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 la page 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>
    

    La 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 correctement installé, une erreur s'affiche.

    Pour en savoir plus, consultez la section Premiers pas: préparer Windows pour les conteneurs.

    Pour les déploiements d'entreprise, installez Mirantis Container Runtime, également appelé Docker EE.

Étape 3: Installez le transfert

Cette section explique comment installer le forwarder à l'aide d'un conteneur Docker.

Étape 3a: Déplacez les fichiers de configuration vers le répertoire du forwarder

La première étape du processus d'installation du transfert consiste à placer les fichiers de configuration nécessaires dans le répertoire de transfert désigné.

Système Linux

Placez les fichiers de configuration dans le répertoire du forwarder en procédant comme suit:

  1. Connectez-vous à l'hôte du forwarder Linux à l'aide d'un terminal.

  2. Remplacez le répertoire par le répertoire d'accueil qui exécute le conteneur Docker.

  3. Créez un répertoire pour stocker les fichiers de configuration du forwarder.

      mkdir /opt/chronicle/'CONFIG'
    

    Vous pouvez remplacer le nom du répertoire, CONFIG, par le nom de votre choix. Assurez-vous d'utiliser le même nom de répertoire lorsque vous exécutez la commande docker run.

  4. Modifiez le 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 y placez les fichiers de configuration. Vous pouvez remplacer le nom du dossier, config, par n'importe quel nom de votre choix. Assurez-vous d'utiliser le même nom de dossier lorsque vous exécutez la commande docker run.

Étape 3b: Exécutez le transfert

Une fois les fichiers de configuration placés dans le répertoire de transfert désigné, vous pouvez démarrer le transfert ou passer à la dernière version du conteneur Google SecOps.

Si vous mettez à niveau le conteneur, nettoyez toutes les précédentes exécutions Docker 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 transfert 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 forwarder à 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
    

    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 Docker que vous utilisez les prend en charge.

Gérer le transmettant

Les sections suivantes fournissent des conseils pour gérer votre forwarder.

Afficher les journaux du transpondeur

  • Pour afficher les journaux du forwarder, 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 en cours d'exécution, 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 transpondeur.

  • Pour arrêter ou désinstaller le conteneur du forwarder, exécutez la commande suivante:

    docker stop cfps
    
  • Pour supprimer le conteneur du transfert, exécutez la commande suivante:

    docker rm cfps
    

Mettre à jour le transpondeur

Le forwarder se compose de deux composants, chacun avec un processus de mise à jour comme suit:

  • Forwarder Bundle: ce composant est mis à jour automatiquement, ce qui élimine le besoin de redémarrer.

  • Image Docker du forwarder: les mises à jour de ce composant sont effectuées manuellement. Vous devez arrêter l'instance de transfert actuelle et en démarrer une autre, comme décrit à l'étape 3b.

Guides d'ingestion des transferts pour des ensembles de données spécifiques

Pour savoir comment un ensemble de données spécifique est ingéré à l'aide de transferts, consultez les éléments suivants: