Collecter les journaux de commutateur de la plate-forme H3C Comware
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 la plate-forme H3C Comware sont des commutateurs réseau de niveau entreprise qui fournissent des fonctionnalités de commutation de couche 2 et de couche 3, des fonctionnalités de sécurité avancées et une gestion complète du réseau via le système d'exploitation Comware. Les commutateurs prennent en charge des fonctionnalités de journalisation étendues via la fonctionnalité de centre d'informations pour 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 de 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.
Option 1 : Créer un compte de service pour l'API Chronicle (recommandé)
- Connectez-vous à la consoleGoogle Cloud et sélectionnez le projet Google Cloud associé à votre instance Google SecOps.
- Accédez à IAM et administration > Comptes de service.
- Cliquez sur Créer un compte de service.
- 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).
- Nom du compte de service : saisissez un nom pour le compte (par exemple,
- Cliquez sur Créer et continuer.
- Dans la section Autoriser ce compte de service à accéder au projet, cliquez sur Sélectionner un rôle, puis sélectionnez Éditeur Chronicle.
- Cliquez sur Continue (Continuer), puis sur Done (OK).
- Cliquez sur le compte de service que vous avez créé, puis accédez à l'onglet Clés.
- Cliquez sur Ajouter une clé > Créer une clé.
- Sélectionnez JSON, puis cliquez sur Créer. Le fichier de clé est téléchargé sur votre ordinateur.
- Enregistrez le fichier de clé sous le nom
ingestion-auth.jsondans le répertoire du collecteur Bindplane (/opt/observiq-otel-collector/ingestion-auth.jsonsous Linux ouC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonsous Windows), ou mettez à jourcreds_file_pathdansconfig.yamlpour qu'il corresponde au chemin d'accès où vous l'enregistrez. - Accédez à IAM et administration > Paramètres, puis copiez le numéro du projet. Vous en aurez besoin pour configurer l'exportateur.
Option 2 : Télécharger le fichier d'authentification d'ingestion (ancien)
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres > Gestion des données > Agents de collecte. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Agents de collecte.
- Téléchargez le fichier d'authentification d'ingestion.
- Enregistrez le fichier de manière sécurisée sur le système où l'agent BindPlane sera installé.
Obtenir le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres > Administration > Profil. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Profil.
- Copiez et enregistrez le numéro client de 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
- Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendez que l'installation se termine.
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
- Ouvrez un terminal avec des droits d'accès racine ou sudo.
Exécutez la commande suivante :
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendez que l'installation se termine.
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).
Ressources d'installation supplémentaires
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.yamlWindows :
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifiez le fichier de configuration
Remplacez l'intégralité du contenu de
config.yamlpar 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 cette option sur0.0.0.0:514pour écouter toutes les interfaces sur le port UDP 51. Vous pouvez utiliser un autre port, tel que1514, si vous exécutez l'application en tant qu'utilisateur non racine sous 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
- Linux :
customer_id: remplacezYOUR_CUSTOMER_IDpar votre ID client de l'étape précédente.location: remplacez<LOCATION>par la région de votre instance Google SecOps (par exemple,us,europeouasia-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 surchronicle.googleapis.com.log_type: définissez cette valeur surH3C_SWITCHexactement comme indiqué.ingestion_labels: étiquettes facultatives 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
exporterspar le code suivant. Définissezcreds_file_pathsur le chemin d'accès au fichier d'authentification d'ingestion. Si votre instance se trouve en dehors des États-Unis, remplacezmalachiteingestion-pa.googleapis.compar 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 surEnter, puis surCtrl+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-collectorVérifiez que le service est en cours d'exécution :
sudo systemctl status observiq-otel-collectorVérifiez les journaux pour détecter d'éventuelles erreurs :
sudo journalctl -u observiq-otel-collector -f
Pour redémarrer l'agent BindPlane sous 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-collectorConsole Services :
- Appuyez sur
Win+R, saisissezservices.msc, puis appuyez sur Entrée. - Recherchez observIQ OpenTelemetry Collector.
Effectuez un clic droit et sélectionnez Redémarrer.
Vérifiez que le service est en cours d'exécution :
sc query observiq-otel-collectorVérifiez les journaux pour détecter d'éventuelles erreurs :
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Appuyez sur
Configurer le transfert syslog du commutateur de plate-forme H3C Comware
Configurez votre commutateur de plate-forme H3C Comware pour envoyer des messages syslog à l'agent BindPlane.
Accéder à la CLI du commutateur
- Connectez-vous au commutateur de la plate-forme H3C Comware à l'aide de l'une des méthodes suivantes :
- Connexion au port de la console
- Telnet
- SSH
Saisissez la commande suivante pour accéder à la vue système :
<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 enableSi 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 journalisation est la date. Pour configurer le format du code temporel, utilisez la commande suivante :
[H3C] info-center timestamp loghost dateFormats de code temporel disponibles :
date: format "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éenone: 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 de local0 à local7, la valeur par défaut étant local7.
[H3C] info-center loghost BINDPLANE_AGENT_IP port 514 facility local7Remplacez
BINDPLANE_AGENT_IPpar 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 local7Paramètres :
BINDPLANE_AGENT_IP: adresse IP de l'hôte de l'agent BindPlaneport 514: numéro de port UDP (doit correspondre au port configuré dans l'agent Bindplane)facility local7: installation Syslog (les valeurs local0 à local7 sont valides ; la valeur par défaut est local7)
Configurer l'interface source (facultatif)
La commande "info-center loghost source" ne prend effet qu'une fois le centre d'informations activé à l'aide de la commande "info-center enable". Pour spécifier une interface source pour les messages de journal :
[H3C] info-center loghost source INTERFACE_TYPE INTERFACE_NUMBERPar 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 de journalisation. Pour contrôler quels modules envoient des journaux, commencez par désactiver 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 génère les informations système avec un niveau de gravité supérieur ou égal au niveau spécifié. Par exemple, si vous configurez une règle de sortie avec une valeur de gravité de 6 (informationnel), les informations dont la valeur de gravité est comprise entre 0 et 6 seront générées.
Niveaux de gravité (0-7) :
- 0 : urgences
- 1: alerts
- 2: critique
- 3 : erreurs
- 4 : avertissements
- 5: notifications
- 6 : informations
- 7 : Débogage
Pour configurer la sortie de journal pour tous les modules au niveau informatif ou supérieur :
[H3C] info-center source default loghost level informationalPour 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 informationalPour afficher les modules sources disponibles, utilisez :
[H3C] info-center source ?
Enregistrer la configuration
Enregistrez la configuration pour vous assurer qu'elle persiste après un redémarrage :
[H3C] saveLorsque 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 envoyer les journaux de tous les modules au niveau informatif 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 du 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.