Collecter les journaux de l'équilibreur de charge réseau A10
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du 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 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 de la section Informations sur l'organisation.
Installer l'agent Bindplane
Installation de fenêtres
- Ouvrez l'invite de commandes 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" /quiet
Installation de Linux
- Ouvrez un terminal avec les droits root 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.sh
Ressources d'installation supplémentaires
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps
Accédez au fichier de configuration :
- 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. - Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple,
nano
,vi
ou le Bloc-notes).
- Recherchez le fichier
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
Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
Remplacez
<customer_id>
par le numéro client réel.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
- Établissez une connexion SSH à l'équilibreur de charge A10 à l'aide d'un client SSH.
Passez en mode configuration en exécutant la commande suivante :
config
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
).
- Remplacez
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.
Assurez-vous que la journalisation syslog est activée en exécutant la commande suivante :
logging enable
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.