Collecter les journaux de commutateur de la plate-forme H3C Comware

Compatible avec :

Ce document explique comment ingérer les journaux de commutateur de la plate-forme H3C Comware dans Google Security Operations à l'aide de BindPlane.

Les commutateurs de plate-forme H3C Comware sont des commutateurs réseau de classe entreprise qui offrent des fonctionnalités de commutation de couche 2 et de couche 3, des fonctionnalités de sécurité avancées et une gestion réseau complète grâce au système d'exploitation Comware. Les commutateurs sont compatibles avec de nombreuses fonctionnalités de journalisation grâce à la fonctionnalité de centre d'informations permettant de surveiller les opérations réseau, les événements liés à la sécurité et les diagnostics système.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Windows Server 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Connectivité réseau entre l'agent BindPlane et le commutateur de plate-forme H3C Comware
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts conformément aux exigences de l'agent BindPlane.
  • Accès privilégié à la console de gestion du commutateur de la plate-forme H3C Comware via la console, Telnet ou SSH
  • Commutateur de plate-forme H3C Comware avec la fonctionnalité de centre d'informations activée (activée par défaut)

Obtenir des identifiants Google SecOps pour l'agent BindPlane

Pour authentifier l'agent Bindplane auprès de Google SecOps, choisissez l'une des méthodes suivantes :

  • Nouveaux déploiements : utilisez l'API Chronicle (option 1).
  • Anciens déploiements : continuez à utiliser le fichier d'authentification d'ingestion (option 2) jusqu'à l'arrêt de l'API Ingestion le 20 juillet 2027.
  1. Connectez-vous à la consoleGoogle Cloud et sélectionnez le projet Google Cloud associé à votre instance Google SecOps.
  2. Accédez à IAM et administration > Comptes de service.
  3. Cliquez sur Créer un compte de service.
  4. Fournissez les informations de configuration suivantes :
    • Nom du compte de service : saisissez un nom pour le compte (par exemple, bindplane-ingest).
    • Description du compte de service : saisissez une description (par exemple, Bindplane agent log ingestion).
  5. Cliquez sur Créer et continuer.
  6. Dans la section Autoriser ce compte de service à accéder au projet, cliquez sur Sélectionner un rôle, puis sélectionnez Éditeur Chronicle.
  7. Cliquez sur Continue (Continuer), puis sur Done (OK).
  8. Cliquez sur le compte de service que vous avez créé, puis accédez à l'onglet Clés.
  9. Cliquez sur Ajouter une clé > Créer une clé.
  10. Sélectionnez JSON, puis cliquez sur Créer. Le fichier de clé est téléchargé sur votre ordinateur.
  11. Enregistrez le fichier de clé sous le nom ingestion-auth.json dans le répertoire du collecteur Bindplane (/opt/observiq-otel-collector/ingestion-auth.json sous Linux ou C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json sous Windows), ou mettez à jour creds_file_path dans config.yaml pour qu'il corresponde au chemin d'accès où vous l'enregistrez.
  12. Accédez à IAM et administration > Paramètres, puis copiez le numéro du projet. Vous en aurez besoin pour la configuration de l'exportateur.

Option 2 : Télécharger le fichier d'authentification d'ingestion (ancien)

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion.
  4. Enregistrez le fichier de manière sécurisée sur le système sur lequel l'agent 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 dans la section Détails de l'organisation.

Installer l'agent Bindplane

Installez l'agent BindPlane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.

Installation de Windows

  1. Ouvrez l'invite de commande 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
    
  3. Attendez que l'installation se termine.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sc query observiq-otel-collector
    

Le service doit s'afficher comme étant EN COURS D'EXÉCUTION.

Installation sous Linux

  1. Ouvrez un terminal avec des droits d'accès racine 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
    
  3. Attendez que l'installation se termine.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

Le service doit s'afficher comme actif (en cours d'exécution).

Autres ressources d'installation

Pour obtenir des options d'installation et de dépannage supplémentaires, consultez le guide d'installation de l'agent Bindplane.

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

Localiser le fichier de configuration

  • Linux :

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifiez le fichier de configuration

  • Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/h3c_switch:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: H3C_SWITCH
        raw_log_field: body
        ingestion_labels:
          env: production
    
    service:
      pipelines:
        logs/h3c_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/h3c_switch
    

Paramètres de configuration

  • Remplacez les espaces réservés suivants :

    • Configuration du récepteur :

      • listen_address : définissez la valeur sur 0.0.0.0:514 pour écouter sur toutes les interfaces sur le port UDP 51. Vous pouvez utiliser un autre port, tel que 1514, si vous exécutez le serveur en tant qu'utilisateur non racine sur Linux.
    • Configuration de l'exportateur :

      • creds_file_path : chemin d'accès complet au fichier de clé JSON du compte de service (option 1) :
        • Linux : /opt/observiq-otel-collector/ingestion-auth.json
        • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id : remplacez YOUR_CUSTOMER_ID par votre ID client de l'étape précédente.
      • location : remplacez <LOCATION> par la région de votre instance Google SecOps (par exemple, us, europe ou asia-southeast1). L'exportateur ajoute cette valeur en préfixe à chronicle.googleapis.com. Pour obtenir la liste complète, consultez Points de terminaison régionaux.
      • project : remplacez <PROJECT_NUMBER> par le numéro de projet indiqué dans IAM et administration > Paramètres.
      • endpoint : laissez la valeur définie sur chronicle.googleapis.com.
      • log_type : définissez cette valeur sur H3C_SWITCH exactement comme indiqué.
      • ingestion_labels : libellés facultatifs au format YAML (par exemple, env: production).

Ancien exportateur d'API d'ingestion

  • Si vous utilisez le fichier d'authentification d'ingestion de l'option 2, remplacez le bloc exporters par le code suivant. Définissez creds_file_path sur le chemin d'accès au fichier d'authentification de l'ingestion. Si votre instance se trouve en dehors des États-Unis, remplacez malachiteingestion-pa.googleapis.com par votre point de terminaison régional (par exemple, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/h3c_switch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: H3C_SWITCH
        raw_log_field: body
        ingestion_labels:
          env: production
    

Enregistrez le fichier de configuration.

Après avoir modifié le fichier, enregistrez-le :

  • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.
  • Windows : cliquez sur Fichier > Enregistrer.

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 observiq-otel-collector
    
    1. Vérifiez que le service est en cours d'exécution :

        sudo systemctl status observiq-otel-collector
      
    2. Recherchez les erreurs dans les journaux :

        sudo journalctl -u observiq-otel-collector -f
      
  • Pour redémarrer l'agent Bindplane dans Windows, choisissez l'une des options suivantes :

    • Invite de commande ou PowerShell en tant qu'administrateur :

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console Services :

      1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
      2. Localisez observIQ OpenTelemetry Collector.
      3. Effectuez un clic droit et sélectionnez Redémarrer.

      4. Vérifiez que le service est en cours d'exécution :

        sc query observiq-otel-collector
        
      5. Recherchez les erreurs dans les journaux :

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurer le transfert syslog du commutateur de plate-forme H3C Comware

Configurez votre commutateur H3C Comware Platform pour qu'il envoie des messages syslog à l'agent Bindplane.

Accéder à la CLI du commutateur

  1. Connectez-vous au commutateur de la plate-forme H3C Comware à l'aide de l'une des méthodes suivantes :
    • Connexion du port de la console
    • Telnet
    • SSH
  2. Accédez à la vue système en saisissant la commande suivante :

    <H3C> system-view
    

L'invite devient [H3C], ce qui indique que vous êtes dans la vue système.

Vérifier que le centre d'informations est activé

  • Le centre d'informations est activé par défaut sur les commutateurs de la plate-forme H3C Comware. Pour vérifier ou activer le centre d'informations, saisissez la commande suivante :

    [H3C] info-center enable
    
  • Si le centre d'informations est déjà activé, le système affiche :

    Info: Information center is enabled.
    

Configurer le format du code temporel (facultatif)

  • Le format de code temporel par défaut pour les informations système envoyées à l'hôte de journaux est "date". Pour configurer le format du code temporel, utilisez la commande suivante :

    [H3C] info-center timestamp loghost date
    
  • Formats de code temporel disponibles :

    • date : le format est "Mmm jj hh:mm:ss:ms aaaa" (par exemple, Dec 8 10:12:21:708 2012).
    • iso : format ISO 8601 (par exemple, 2012-09-21T15:32:55)
    • no-year-date : date et heure actuelles du système sans l'année
    • none : aucune information sur le code temporel

Configurer l'hôte de journalisation

  • Spécifiez l'hôte de l'agent Bindplane comme hôte de journal. Le paramètre "facility" peut être défini sur une valeur comprise entre local0 et local7, la valeur par défaut étant local7.

    [H3C] info-center loghost BINDPLANE_AGENT_IP port 514 facility local7
    
    • Remplacez BINDPLANE_AGENT_IP par l'adresse IP de l'hôte exécutant l'agent Bindplane.

      • Par exemple, si l'agent Bindplane est exécuté sur l'hôte 192.168.1.100 :

        [H3C] info-center loghost 192.168.1.100 port 514 facility local7
        
      • Paramètres :

        • BINDPLANE_AGENT_IP : adresse IP de l'hôte de l'agent Bindplane
        • port 514 : numéro de port UDP (doit correspondre au port configuré dans l'agent Bindplane)
        • facility local7 : fonctionnalité Syslog (les valeurs local0 à local7 sont valides ; la valeur par défaut est local7)

Configurer l'interface source (facultatif)

  • La commande source loghost du centre d'informations ne prend effet qu'une fois le centre d'informations activé avec la commande info-center enable. Pour spécifier une interface source pour les messages de journal :

    [H3C] info-center loghost source INTERFACE_TYPE INTERFACE_NUMBER
    
    • Par exemple, pour utiliser l'interface VLAN 1 comme source :

      [H3C] info-center loghost source vlan-interface 1
      

Désactiver la sortie de journal par défaut vers l'hôte de journalisation

  • Par défaut, le système envoie les informations de tous les modules à l'hôte du journal. Pour contrôler les modules qui envoient des journaux, désactivez d'abord la sortie par défaut :

    [H3C] undo info-center source default loghost
    

Configurer des règles de sortie de journal

Configurez les modules et les niveaux de gravité qui doivent envoyer des journaux à l'hôte de journaux. Les informations système sont classées en huit niveaux de gravité, de 0 à 7, par ordre décroissant. Le commutateur affiche les informations système avec un niveau de gravité supérieur ou égal à celui spécifié. Par exemple, si vous configurez une règle de sortie avec une valeur de gravité de 6 (informationnelle), les informations dont la valeur de gravité est comprise entre 0 et 6 seront générées.

  • Niveaux de gravité (de 0 à 7) :

    • 0 : urgences
    • 1: alerts
    • 2: critique
    • 3 : erreurs
    • 4 : avertissements
    • 5: notifications
    • 6 : informations
    • 7 : Débogage
  • Pour configurer la sortie des journaux pour tous les modules au niveau d'information ou supérieur :

    [H3C] info-center source default loghost level informational
    
  • Pour configurer la sortie des journaux pour des modules spécifiques (par exemple, ARP et IP) :

    [H3C] info-center source arp loghost level informational
    [H3C] info-center source ip loghost level informational
    
  • Pour afficher les modules sources disponibles, utilisez la commande suivante :

    [H3C] info-center source ?
    

Enregistrer la configuration

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

    [H3C] save
    
  2. Lorsque vous y êtes invité, confirmez en saisissant Y.

Vérifier la configuration

  • Pour vérifier la configuration du centre d'informations, utilisez la commande suivante :

    [H3C] display info-center
    

Cette commande affiche la configuration actuelle du centre d'informations, y compris les paramètres de l'hôte de journal, les règles de sortie et les configurations de canal.

Exemple de configuration complète

  • L'exemple suivant montre une configuration complète pour l'envoi de journaux de tous les modules au niveau informationnel ou supérieur à un hôte de journaux à l'adresse 192.168.1.100 :

    <H3C> system-view
    [H3C] info-center enable
    [H3C] info-center timestamp loghost date
    [H3C] info-center loghost 192.168.1.100 port 514 facility local7
    [H3C] undo info-center source default loghost
    [H3C] info-center source default loghost level informational
    [H3C] save
    

Exemple de configuration pour des modules spécifiques

  • L'exemple suivant montre comment configurer l'envoi des journaux des modules ARP et IP au niveau d'information à un hôte de journalisation :

    <H3C> system-view
    [H3C] info-center enable
    [H3C] info-center loghost 192.168.1.100 port 514 facility local7
    [H3C] undo info-center source default loghost
    [H3C] info-center source arp loghost level informational
    [H3C] info-center source ip loghost level informational
    [H3C] save
    

Table de mappage UDM

Champ de journal Mappage UDM Logique
extensions.auth.type Type d'authentification utilisé dans l'événement
nom d'hôte intermediary.asset.hostname Nom d'hôte de l'élément associé à l'intermédiaire
nom d'hôte intermediary.hostname Nom d'hôte de l'entité intermédiaire
inter_ip intermediary.asset.ip Adresse IP de l'élément associé à l'intermédiaire
inter_ip intermediary.ip Adresse IP de l'entité intermédiaire
IPAddr, prin_ip principal.asset.ip Adresse IP de l'élément associé au compte principal
IPAddr, prin_ip principal.ip Adresse IP de l'entité principale
prin_port principal.port Numéro de port associé au compte principal
Utilisateur, utilisateur principal.user.userid ID utilisateur du compte principal
tar_host target.asset.hostname Nom d'hôte de l'asset associé à la cible
tar_host target.hostname Nom d'hôte de l'entité cible
tar_ip target.asset.ip Adresse IP de l'élément associé à la cible
tar_ip target.ip Adresse IP de l'entité cible
tar_port target.port Numéro de port associé à la cible
tar_user target.user.userid ID utilisateur de la cible
Line, OperateType, OperateTime, OperateState, OperateEndTime, EventIndex, CommandSource, ConfigSource, ConfigDestination additional.fields Champs de métadonnées supplémentaires non couverts par les champs UDM standards
décroiss. metadata.description Description de l'événement
code temporel metadata.event_timestamp Code temporel de l'événement
metadata.event_type Type d'événement (par exemple, USER_LOGIN, NETWORK_CONNECTION)
event_type metadata.product_event_type Identifiant du type d'événement spécifique au produit
metadata.product_name Nom du produit générant l'événement
metadata.vendor_name Nom du fournisseur du produit
observer_asset_id event.idm.read_only_udm.observer.asset_id Mappé à partir du journal des modifications
observer_hostname event.idm.read_only_udm.observer.hostname et event.idm.read_only_udm.observer.asset.hostname Mappé à partir du journal des modifications
severity event.idm.read_only_udm.security_result.severity_details Mappé à partir du journal des modifications
severityName event.idm.read_only_udm.security_result.severity Mappé à partir du journal des modifications
duplicate_ip event.idm.read_only_udm.principal.ip et event.idm.read_only_udm.principal.asset.ip Mappé à partir du journal des modifications
facility event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
facilityName event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
interface event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
host event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
device_type event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
dev_ip event.idm.read_only_udm.target.ip et event.idm.read_only_udm.target.asset.ip Mappé à partir du journal des modifications
program event.idm.read_only_udm.metadata.product_event_type Mappé à partir du journal des modifications
security_result event.idm.read_only_udm.security_result Mappé à partir du journal des modifications
product_event_type event.idm.read_only_udm.metadata.product_event_type Mappé à partir du journal des modifications
src_ip event.idm.read_only_udm.principal.ip Mappé à partir du journal des modifications
src_ip event.idm.read_only_udm.principal.asset.ip Mappé à partir du journal des modifications
dest_ip event.idm.read_only_udm.target.ip Mappé à partir du journal des modifications
dest_ip event.idm.read_only_udm.target.asset.ip Mappé à partir du journal des modifications
hostname event.idm.read_only_udm.intermediary.hostname Mappé à partir du journal des modifications
hostname event.idm.read_only_udm.intermediary.asset.hostname Mappé à partir du journal des modifications
timestamp event.idm.read_only_udm.metadata.event_timestamp Mappé à partir du journal des modifications
inter_ip event.idm.read_only_udm.metadata.intermediary.ip Mappé à partir du journal des modifications
inter_ip event.idm.read_only_udm.metadata.intermediary.asset.ip Mappé à partir du journal des modifications
Line event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
OperateType event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
OperateTime event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
OperateState event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
OperateEndTime event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
EventIndex event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
CommandSource event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
ConfigSource event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
ConfigDestination event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
IPAddr event.idm.read_only_udm.principal.ip Mappé à partir du journal des modifications
IPAddr event.idm.read_only_udm.principal.asset.ip Mappé à partir du journal des modifications
User event.idm.read_only_udm.principal.user.userid Mappé à partir du journal des modifications
prin_ip event.idm.read_only_udm.principal.ip Mappé à partir du journal des modifications
prin_ip event.idm.read_only_udm.principal.asset.ip Mappé à partir du journal des modifications
prin_port event.idm.read_only_udm.principal.port Mappé à partir du journal des modifications
tar_ip event.idm.read_only_udm.target.ip Mappé à partir du journal des modifications
tar_ip event.idm.read_only_udm.target.asset.ip Mappé à partir du journal des modifications
tar_host event.idm.read_only_udm.target.hostname Mappé à partir du journal des modifications
tar_port event.idm.read_only_udm.target.port Mappé à partir du journal des modifications
tar_user event.idm.read_only_udm.target.user.userid Mappé à partir du journal des modifications
user event.idm.read_only_udm.principal.user.userid Mappé à partir du journal des modifications

Journal des modifications

Afficher le journal des modifications de cet analyseur

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