Collecter les journaux Fortinet FortiManager

Compatible avec :

Ce guide explique comment ingérer des journaux Fortinet FortiManager dans Google Security Operations à l'aide de l'agent Bindplane.

Fortinet FortiManager est une plate-forme de gestion de réseau centralisée qui fournit une gestion unifiée, la conformité aux bonnes pratiques et l'automatisation des workflows pour les appareils de sécurité et de mise en réseau Fortinet. FortiManager permet aux administrateurs de gérer de manière centralisée les configurations, les règles, les mises à jour du micrologiciel et les services de sécurité sur des milliers de pare-feu FortiGate et d'autres appareils Fortinet dans Security Fabric.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps.
  • Windows Server 2016 ou version ultérieure, ou hôte Linux avec systemd.
  • Connectivité réseau entre l'agent Bindplane et Fortinet FortiManager.
  • 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 Fortinet FortiManager avec les autorisations nécessaires pour modifier les paramètres système.
  • FortiManager version 5.0.7 ou ultérieure.

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agent de collecte.
  3. Cliquez sur Télécharger pour télécharger le fichier d'authentification pour l'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 de la section Informations sur 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 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
    
  3. Attendez la fin de l'installation.

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

    sc query observiq-otel-collector
    

Le service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).

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
    
  3. Attendez la fin de l'installation.

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

    sudo systemctl status observiq-otel-collector
    

Le service doit être indiqué comme actif (en cours d'exécution).

Autres ressources d'installation

Pour obtenir d'autres options d'installation et de dépannage, 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 /etc/bindplane-agent/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/fortimanager:
    compression: gzip
    creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
    customer_id: 'your-customer-id-here'
    endpoint: malachiteingestion-pa.googleapis.com
    log_type: FORTINET_FORTIMANAGER
    raw_log_field: body
    ingestion_labels:
        env: production
        source: fortimanager

service:
    pipelines:
    logs/fortimanager_to_chronicle:
        receivers:
        - udplog
        exporters:
        - chronicle/fortimanager

Paramètres de configuration

Remplacez les espaces réservés suivants :

Configuration du récepteur :

  • listen_address : adresse IP et port à écouter. Utilisez 0.0.0.0:514 pour écouter sur toutes les interfaces sur le port 51. Si le port 514 nécessite des droits racine sous Linux, utilisez 0.0.0.0:1514 et configurez FortiManager pour qu'il envoie les journaux au port 1514.

Configuration de l'exportateur :

  • creds_file_path : chemin d'accès complet au fichier d'authentification de l'ingestion :
    • Linux : /etc/bindplane-agent/ingestion-auth.json
    • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
  • customer_id : numéro client de l'étape précédente (par exemple, a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6)
  • endpoint : URL du point de terminaison régional :
    • États-Unis : malachiteingestion-pa.googleapis.com
    • Europe : europe-malachiteingestion-pa.googleapis.com
    • Asie : asia-southeast1-malachiteingestion-pa.googleapis.com
    • Pour obtenir la liste complète, consultez Points de terminaison régionaux.
  • log_type : doit être exactement FORTINET_FORTIMANAGER
  • ingestion_labels : libellés facultatifs pour le filtrage et l'organisation

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.

  • Linux

    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
      
  • Windows

    Choisissez l'une des options suivantes :

    • À l'aide de l'invite de commandes ou de PowerShell en tant qu'administrateur :

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Utiliser la 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, puis 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 de Fortinet FortiManager

La configuration syslog de FortiManager se déroule en deux étapes : d'abord, définissez le serveur syslog dans l'interface utilisateur graphique, puis activez le transfert des journaux locaux via CLI;interface de ligne de commande.

Étape 1 : Ajoutez un serveur syslog dans l'interface utilisateur graphique de FortiManager

  1. Connectez-vous à l'interface Web Fortinet FortiManager.
  2. Accédez à Paramètres système > Avancé > Serveur Syslog.
  3. Cliquez sur Créer dans la barre d'outils.
  4. Le volet Créer des paramètres de serveur Syslog s'ouvre.
  5. Configurez les paramètres suivants :
    • Nom : saisissez un nom descriptif (par exemple, Chronicle-Bindplane).
    • Adresse IP (ou nom de domaine complet) : saisissez l'adresse IP de l'hôte de l'agent Bindplane (par exemple, 192.168.1.100).
    • Port du serveur Syslog : saisissez 514 (ou 1514 si vous avez configuré Bindplane pour qu'il écoute sur un port non privilégié).
    • Connexion fiable : laissez cette option désactivée pour UDP (valeur par défaut) ou activez-la pour TCP.
    • Connexion sécurisée : laissez cette option désactivée, sauf si vous avez configuré des certificats TLS.
  6. Cliquez sur OK pour enregistrer la configuration du serveur Syslog.

Étape 2 : Activez le transfert de journaux local via la CLI

Après avoir ajouté le serveur syslog dans l'interface utilisateur graphique, vous devez activer FortiManager pour qu'il envoie les journaux locaux au serveur syslog à l'aide de la CLI.

  1. Connectez-vous à l'interface de ligne de commande FortiManager via SSH ou la console.
  2. Exécutez les commandes suivantes :

    Pour FortiManager 5.0.7 et versions ultérieures :

    config system locallog syslogd setting
        set syslog-name Chronicle-Bindplane
        set severity information
        set status enable
    end
    

    Paramètres de configuration :

    • syslog-name : doit correspondre au nom que vous avez configuré dans l'interface graphique (par exemple, Chronicle-Bindplane).
    • severity : définissez sur information pour capturer tous les journaux locaux. La valeur par défaut est notification, qui capture moins d'événements. Les options sont les suivantes : emergency, alert, critical, error, warning, notification, information, debug.
    • status : définissez la valeur sur enable pour commencer à transférer les journaux.
  3. Vérifiez la configuration :

    config system locallog syslogd setting
        show
    end
    
  4. Vérifiez que les journaux sont envoyés en consultant les journaux de l'agent Bindplane ou en utilisant la capture de paquets sur l'hôte de l'agent Bindplane :

Linux :

sudo tcpdump -i any port 514 -A

Windows :

Utilisez Wireshark ou Microsoft Message Analyzer pour capturer le trafic sur le port 514.

Remarques sur le comportement du syslog FortiManager

  • FortiManager envoie ses propres journaux d'événements locaux (système, modifications de configuration, actions administratives) au serveur syslog configuré, et non les journaux des appareils FortiGate gérés.
  • Par défaut, l'option Connexion fiable est désactivée, ce qui signifie que les journaux sont envoyés via UDP sur le port 51. Si vous activez l'option de connexion fiable, les journaux sont envoyés via TCP sur le port 514.
  • Les messages syslog FortiManager utilisent un format spécifique à Fortinet qui n'est pas strictement conforme aux normes RFC 3164 ou RFC 5424. Le parseur Google SecOps FORTINET_FORTIMANAGER est conçu pour gérer ce format.
  • Assurez-vous que l'heure système de FortiManager est synchronisée avec NTP et configurée sur UTC pour que les codes temporels des journaux soient exacts. Pour configurer l'heure système, accédez à Tableau de bord, puis, dans le widget Informations système, cliquez sur le bouton de modification de l'heure système à côté du champ Heure système.

Table de mappage UDM

Champ du journal Mappage UDM Logique
type, subtype, pri, operation, performed_on, lograte, msgrate, logratelimit, logratepeak, action, cpuusage, memusage, diskusage, disk2usage, userfrom about.resource.attribute.labels Libellés associés à la ressource.
clearpass-spt, allow-routing, color, comment, fabric-object, name, node-ip-only, obj-type, sdn-addr-type, sub-type, adom, pkgname, _signal-lte-rsrq, _signal-lte-rssi, performed_on_dev, changetype event.idm.read_only_udm.additional.fields Champs supplémentaires non couverts par le schéma UDM standard.
event.idm.read_only_udm.about Informations sur l'événement.
event.idm.read_only_udm.extensions Extensions de l'événement.
event.idm.read_only_udm.metadata Métadonnées concernant l'événement.
cache_ttl_label event.idm.read_only_udm.network Informations liées au réseau
event.idm.read_only_udm.principal Informations sur l'entité principale.
event.idm.read_only_udm.security_result Résultats de l'analyse de sécurité.
event.idm.read_only_udm.target Informations sur l'entité cible.
extensions.auth.type Type d'authentification.
modifications metadata.description Description de l'événement.
event_type metadata.event_type Type d'événement.
log_id metadata.product_log_id Identifiant spécifique au produit pour l'entrée de journal.
cache_ttl_label network.dns.answers Réponses DNS.
session_id network.session_id ID de session de la connexion réseau.
adminprof principal.administrative_domain Domaine administratif du principal.
devname principal.asset.hostname Nom d'hôte de l'élément associé au compte principal.
src_ip principal.asset.ip Adresse IP de l'élément associé au principal.
devname principal.hostname Nom d'hôte du principal.
src_ip principal.ip Adresse IP du compte principal.
device_id principal.resource.product_object_id Identifiant spécifique au produit pour la ressource.
principal.resource.resource_type Type de ressource.
uuid principal.user.userid ID utilisateur de l'utilisateur principal.
action_details security_result.action Action entreprise à la suite de l'événement de sécurité.
wildcard, subnet, end-ip, start-ip security_result.detection_fields Champs utilisés pour la détection dans les résultats de sécurité.
Message security_result.summary Résumé du résultat de sécurité.
target_ip, tar_ip, remote_ip target.asset.ip Adresse IP de l'élément associé à la cible.
target_ip, tar_ip, remote_ip target.ip Adresse IP de la cible.
tar_port, remote_port target.port Numéro de port de la cible.
utilisateur target.user.userid ID utilisateur de l'utilisateur cible.
metadata.vendor_name Nom du fournisseur.
metadata.product_name Nom du produit.

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