Collecter les journaux de l'équilibreur de charge réseau A10

Compatible avec :

Ce document explique comment exporter les journaux de l'équilibreur de charge réseau A10 vers Google Security Operations à l'aide d'un agent Bindplane. L'analyseur utilise d'abord des modèles grok pour extraire les champs pertinents. Il utilise ensuite des instructions conditionnelles (if) pour mapper les champs extraits au modèle de données unifié (UDM) en fonction de leur présence et de leur contenu, ce qui permet de catégoriser le type d'événement.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google SecOps.
  • Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec systemd.
  • Si vous exécutez le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
  • Assurez-vous de disposer d'un accès privilégié à l'équilibreur de charge A10.

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. Copiez et enregistrez le numéro client de la section Informations sur l'organisation.

Installer l'agent Bindplane

Installation de fenêtres

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installation de Linux

  1. Ouvrez un terminal avec les droits root ou sudo.
  2. Exécutez la commande suivante :

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Ressources d'installation supplémentaires

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps

  1. Accédez au fichier de configuration :

    1. Recherchez le fichier config.yaml. En règle générale, il se trouve dans le répertoire /etc/bindplane-agent/ sous Linux ou dans le répertoire d'installation sous Windows.
    2. Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple, nano, vi ou le Bloc-notes).
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: A10_LOAD_BALANCER
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.

  4. Remplacez <customer_id> par le numéro client réel.

  5. Mettez à jour /path/to/ingestion-authentication-file.json en indiquant le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'ingestion Google SecOps.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :

    sudo systemctl restart bindplane-agent
    
  • Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurer le serveur Syslog dans l'équilibreur de charge A10

  1. Établissez une connexion SSH à l'équilibreur de charge A10 à l'aide d'un client SSH.
  2. Passez en mode configuration en exécutant la commande suivante :

    config
    
  3. Configurez le serveur syslog distant à l'aide de la commande suivante :

    logging host <bindplane-server-ip> <port-number>
    
    • Remplacez <bindplane-server-ip> par l'adresse IP Bindplane et <port-number> par l'adresse configurée dans Bindplane (par exemple, 514).
  4. Définissez le niveau de gravité à l'aide de la commande suivante :

    logging level information
    
    • Cela enverra des messages d'information (tels que des avertissements et des erreurs) à l'agent Bindplane.
  5. Assurez-vous que la journalisation syslog est activée en exécutant la commande suivante :

    logging enable
    
  6. Enregistrez la configuration pour qu'elle persiste après un redémarrage :

    write memory
    
  • Exemple de configuration CLI complète :

    config
    logging host 192.168.1.100 514
    logging level info
    logging enable
    write memory
    

Table de mappage UDM

Champ du journal Mappage UDM Logique
dns additional.fields.dns.value.string_value La valeur est extraite du champ dns par le modèle Grok.
dns_server additional.fields.dns_server.value.string_value La valeur est extraite du champ dns_server par le modèle Grok.
gslb additional.fields.gslb.value.string_value La valeur est extraite du champ gslb par le modèle Grok.
host_name principal.hostname
principal.asset.hostname
La valeur est extraite du champ host_name par le modèle Grok.
httpmethod network.http.method La valeur est extraite du champ httpmethod par le modèle Grok.
partion_id additional.fields.partion_id.value.string_value La valeur est extraite du champ partion_id par le modèle Grok.
prin_ip principal.ip
principal.asset.ip
La valeur est extraite du champ prin_ip par le modèle Grok.
prin_mac principal.mac La valeur est extraite du champ prin_mac par le modèle grok, avec les points supprimés et les deux-points insérés tous les deux caractères.
prin_port principal.port La valeur est extraite du champ prin_port par le modèle Grok et convertie en entier.
proto network.ip_protocol La valeur est extraite du champ proto par le modèle Grok. Si le champ message contient UDP, la valeur est définie sur UDP.
sessionid network.session_id La valeur est extraite du champ sessionid par le modèle Grok.
status_code network.http.response_code La valeur est extraite du champ status_code par le modèle Grok et convertie en entier.
tar_ip target.ip
target.asset.ip
La valeur est extraite du champ tar_ip par le modèle Grok.
tar_mac target.mac La valeur est extraite du champ tar_mac par le modèle grok, avec les points supprimés et les deux-points insérés tous les deux caractères.
tar_port target.port La valeur est extraite du champ tar_port par le modèle Grok et convertie en entier.
temps metadata.event_timestamp.seconds La valeur est analysée à partir du champ time extrait par le modèle Grok, à l'aide de plusieurs formats de date possibles.
url target.url La valeur est extraite du champ url par le modèle Grok.
utilisateur principal.user.userid La valeur est extraite du champ user par le modèle Grok.
N/A metadata.event_type Déterminé par la logique de l'analyseur en fonction de la présence d'informations sur le principal et la cible :
 – NETWORK_CONNECTION : si les informations sur le principal et la cible sont présentes.
 – STATUS_UPDATE : si seules les informations principales sont présentes.
 – GENERIC_EVENT : sinon.
N/A metadata.log_type Codé en dur sur A10_LOAD_BALANCER.
N/A network.application_protocol Définie sur HTTP si le champ proto est HTTP.

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