Collecter les journaux du pare-feu Juniper SRX Series

Compatible avec :

Ce document explique comment ingérer les journaux du pare-feu Juniper SRX Series dans Google Security Operations à l'aide de Bindplane.

Les pare-feu de la gamme SRX de Juniper sont des dispositifs de sécurité réseau hautes performances qui offrent des fonctionnalités de pare-feu nouvelle génération (NGFW), y compris l'inspection avec état, la détection et la prévention des intrusions (IDP), la sécurité des applications et le VPN. Les pare-feu SRX génèrent des messages syslog pour les événements liés au trafic, à la sécurité, au système et aux sessions. Ces messages peuvent être transférés vers des plates-formes SIEM externes pour une surveillance centralisée de la sécurité.

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 pare-feu Juniper SRX.
  • 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é au pare-feu Juniper SRX (accès root ou super-utilisateur via J-Web ou CLI).

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. 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

  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](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](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).

Ressources d'installation supplémentaires

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 /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/juniper_firewall:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'your-customer-id-here'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: JUNIPER_FIREWALL
        raw_log_field: body
        ingestion_labels:
        env: production
    
    service:
    pipelines:
        logs/juniper_to_chronicle:
        receivers:
            - udplog
        exporters:
            - chronicle/juniper_firewall
    

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 pour écouter sur toutes les interfaces. Le port 514 est le port syslog standard (nécessite des droits racine sur Linux). Utilisez 1514 pour les déploiements non root.
  • 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 : ID client Google SecOps.
    • 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.
    • ingestion_labels : libellés facultatifs au format YAML (par exemple, 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 :

  1. Exécutez la commande suivante :

    sudo systemctl restart observiq-otel-collector
    
  2. Vérifiez que le service est en cours d'exécution :

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

    sudo journalctl -u observiq-otel-collector -f
    

Pour redémarrer l'agent Bindplane sous Windows :

  1. Choisissez l'une des options suivantes :

    • Invite de commandes 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, puis sélectionnez Redémarrer.
  2. Vérifiez que le service est en cours d'exécution :

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

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

Configurer le transfert syslog Juniper SRX

Configurez le pare-feu Juniper SRX pour transférer les messages syslog à l'agent Bindplane.

Utiliser l'interface J-Web

  1. Connectez-vous à l'interface J-Web de Juniper SRX.
  2. Accédez à Configurer > Propriétés système > Syslog.
  3. Cliquez sur Add (Ajouter) dans la section Host (Hôte) pour ajouter un serveur syslog.
  4. Fournissez les informations de configuration suivantes :
    • Nom d'hôte : saisissez l'adresse IP de l'hôte de l'agent Bindplane (par exemple, 192.168.1.100).
    • Port : saisissez 514 (ou le port configuré dans l'agent Bindplane).
    • Préfixe du journal : préfixe facultatif pour les messages du journal.
    • Établissement : sélectionnez l'établissement et les niveaux de gravité à transférer :
      • any : sélectionnez le niveau de gravité info ou supérieur.
  5. Dans le champ Adresse source, saisissez l'adresse IP de l'interface de gestion SRX (facultatif, mais recommandé pour une identification cohérente de la source).
  6. Cliquez sur OK pour enregistrer.
  7. Cliquez sur Valider pour appliquer la configuration.

Utiliser la CLI Junos

  1. Connectez-vous au Juniper SRX via SSH ou la console.
  2. Passez en mode configuration :

    configure
    
  3. Configurez l'hôte syslog :

    set system syslog host BINDPLANE_IP any info
    set system syslog host BINDPLANE_IP port 514
    set system syslog host BINDPLANE_IP source-address SRX_MGMT_IP
    set system syslog host BINDPLANE_IP structured-data
    

    Remplacez :

    • BINDPLANE_IP : adresse IP de l'hôte de l'agent Bindplane.
    • SRX_MGMT_IP : adresse IP de gestion du pare-feu SRX.
  4. Configurez le streaming des journaux de sécurité (pour les journaux de trafic et de session) :

    set security log mode stream
    set security log source-address SRX_MGMT_IP
    set security log stream chronicle-stream host BINDPLANE_IP
    set security log stream chronicle-stream port 514
    set security log stream chronicle-stream transport protocol udp
    set security log stream chronicle-stream format sd-syslog
    set security log stream chronicle-stream severity info
    set security log stream chronicle-stream category all
    

    Remplacez :

    • BINDPLANE_IP : adresse IP de l'hôte de l'agent Bindplane.
    • SRX_MGMT_IP : adresse IP de gestion du pare-feu SRX.
  5. Validez la configuration :

    commit
    
  6. Vérifiez la configuration syslog :

    show system syslog
    show security log
    

Configurer des catégories de journaux spécifiques

  • Pour transférer des types de journaux spécifiques, configurez des installations individuelles :

    set system syslog host BINDPLANE_IP firewall any
    set system syslog host BINDPLANE_IP authorization info
    set system syslog host BINDPLANE_IP daemon info
    set system syslog host BINDPLANE_IP kernel info
    set system syslog host BINDPLANE_IP interactive-commands info
    

Remplacez BINDPLANE_IP par l'adresse IP de l'hôte de l'agent Bindplane.

Vérifier le transfert Syslog

  1. Sur le SRX, exécutez la commande suivante pour afficher les destinations syslog actives :

    show system syslog
    
  2. Générez du trafic de test via le pare-feu et vérifiez que les journaux s'affichent dans les journaux de l'agent Bindplane.

Pour en savoir plus, consultez la documentation sur la gamme Juniper SRX.

Table de mappage UDM

Champ de journal Mappage UDM Logique
source-address event.idm.read_only_udm.principal.ip Valeur extraite de source-address.
source-port event.idm.read_only_udm.principal.port Valeur extraite de source-port et convertie en nombre entier.
destination-address event.idm.read_only_udm.target.ip Valeur extraite de destination-address.
destination-port event.idm.read_only_udm.target.port Valeur extraite de destination-port et convertie en nombre entier.
protocol-id event.idm.read_only_udm.network.ip_protocol Mappé du numéro de protocole au nom (6=TCP, 17=UDP, 1=ICMP).
policy-name event.idm.read_only_udm.security_result.rule_name Valeur extraite de policy-name.
source-zone-name event.idm.read_only_udm.additional.fields Valeur extraite de source-zone-name et ajoutée avec la clé source-zone-name.
destination-zone-name event.idm.read_only_udm.additional.fields Valeur extraite de destination-zone-name et ajoutée avec la clé destination-zone-name.
service-name event.idm.read_only_udm.target.application Valeur extraite de service-name.
application event.idm.read_only_udm.target.application Valeur extraite de application (si service-name n'est pas présent).
nat-source-address event.idm.read_only_udm.principal.nat_ip Valeur extraite de nat-source-address.
nat-source-port event.idm.read_only_udm.principal.nat_port Valeur extraite de nat-source-port et convertie en nombre entier.
nat-destination-address event.idm.read_only_udm.target.nat_ip Valeur extraite de nat-destination-address.
nat-destination-port event.idm.read_only_udm.target.nat_port Valeur extraite de nat-destination-port et convertie en nombre entier.
bytes-from-client event.idm.read_only_udm.network.sent_bytes Valeur extraite de bytes-from-client et convertie en entier non signé.
bytes-from-server event.idm.read_only_udm.network.received_bytes Valeur extraite de bytes-from-server et convertie en entier non signé.
packets-from-client event.idm.read_only_udm.additional.fields Valeur extraite de packets-from-client et ajoutée avec la clé packets-from-client.
packets-from-server event.idm.read_only_udm.additional.fields Valeur extraite de packets-from-server et ajoutée avec la clé packets-from-server.
elapsed-time event.idm.read_only_udm.additional.fields Valeur extraite de elapsed-time et ajoutée avec la clé elapsed-time.
username event.idm.read_only_udm.principal.user.userid Valeur extraite de username.
reason event.idm.read_only_udm.security_result.description Valeur extraite de reason.
action event.idm.read_only_udm.security_result.action Si action est accept ou permit, définissez la valeur sur ALLOW. Si action est deny, drop, reject ou close, définissez la valeur sur BLOCK.
hostname event.idm.read_only_udm.principal.hostname Valeur extraite du champ "hostname" de syslog.
attack-name event.idm.read_only_udm.security_result.threat_name Valeur extraite de attack-name (événements IDP).
severity event.idm.read_only_udm.security_result.severity Mappé à partir de la chaîne de gravité : info à INFORMATIONAL, warning à MEDIUM, error ou major à ERROR, critical à CRITICAL.
event.idm.read_only_udm.metadata.vendor_name Variable définie sur Juniper Networks.
event.idm.read_only_udm.metadata.product_name Variable définie sur SRX Series Firewall.

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