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 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.
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 la configuration de l'exportateur.
Option 2 : Télécharger le fichier d'authentification d'ingestion (ancien)
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> 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 sur lequel l'agent Bindplane sera installé.
Obtenir l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM > Profil.
- 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
- 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).
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.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 la valeur sur0.0.0.0:514pour écouter sur toutes les interfaces sur le port UDP 51. Vous pouvez utiliser un autre port, tel que1514, 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
- 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: 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
exporterspar le code suivant. Définissezcreds_file_pathsur le chemin d'accès au fichier d'authentification de l'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-collectorRecherchez 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-collectorConsole Services :
- Appuyez sur
Win+R, saisissezservices.msc, puis appuyez sur Entrée. - Localisez 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-collectorRecherchez les erreurs dans les journaux :
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 H3C Comware Platform pour qu'il envoie 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 du port de la console
- Telnet
- SSH
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 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 journaux est "date". Pour configurer le format du code temporel, utilisez la commande suivante :
[H3C] info-center timestamp loghost dateFormats 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é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 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 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: 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_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 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 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 la commande suivante :
[H3C] info-center source ?
Enregistrer la configuration
Enregistrez la configuration pour 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 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.