8.6.3. Export des données vers l'ETL Logstash via le protocole syslog

8.6.3.1. Introduction

Cette procédure décrit le configuration de la connexion à Logstash.
Un pipeline développé par Gatewatcher permet de récupérer le contenu JSON des logs exportés afin de pouvoir le manipuler ensuite comme on le souhaite avec les filtres Logstash.
La configuration de la connexion entre le GCenter et l'ETL Logstash nécessite les étapes suivantes :

Note

Voir la présentation des Serveurs Syslog.
Voir la présentation des données exportées décrites dans le paragraphe Utilisation des données.
L'interface graphique de la fonction export des données est décrite dans l'Ecran `Admin-GCenter- Data Exports` de la legacy web UI.

8.6.3.2. Prérequis

  • Utilisateur : membre du groupe Administrator


8.6.3.3. Opérations préliminaires


8.6.3.4. Procédure d’accès à la fenêtre `Data exports` pour un compte de type administrator

  • Dans la barre de navigation, cliquer successivement sur :

    • le bouton `Admin`

    • le sous menu `Gcenter`

    • la commande `Data exports`
      La fenêtre `Data exports` est affichée.

8.6.3.5. Procédure de configuration des paramètres généraux

../../_images/DATA_EXPORT-01.PNG
  • Cliquer sur le bouton `Configure` (5) sur l'un des deux connexions (6 ou 7) à configurer.
    La fenêtre `Syslog data export` s'ouvre.
../../_images/DATA_EXPORT-02.PNG
  • Cliquer sur l'onglet (1) `GENERAL`.

Note

Les valeurs dont le format est de type $VALEUR sont spécifiques au contexte et sont notées comme telles afin qu'il puisse y être fait référence dans la suite de la documentation.

  • Saisir les paramètres à l'aide du tableau suivant :

Item

Paramètre

Description

Valeur

15

Enable

Activer ce pipeline d'export

Activé

14

Name

Nom de l'export Syslog

$SYSLOG_NAME

13

Hostname

Nom DNS ou adresse IP du serveur Logstash

$LOGSTASH_IP

7

Port

Port de destination

$LOGSTASH_PORT

12

Codecs

Codec utilisé pour l'export

JSON

6

RFC

Norme utilisée par le codec

3164

11

Facility

Valeur de `facility` dans l'en-tête Syslog

kernel par défaut ; L'en-tête sera supprimé par le pipeline de réception

8

Severity

Valeur de `severity` dans l'en-tête Syslog

emergency par défaut ; l'en-tête sera supprimé par le pipeline de réception

5

Protocol

Le protocole de transport utilisé. TCP ou UDP peuvent être utilisés

$PROTOCOL

10

Output interface

Choisir l'interface du GCenter utilisée pour l'export Syslog

$GCENTER_IFACE

  • Valider en utilisant le bouton (9) `Save`.
    Le message suivant indique que la mise à jour a été effectuée : `Updated with success`.

8.6.3.6. Procédure de configuration des paramètres de filtration

../../_images/DATA_EXPORT-02.PNG
  • Cliquer sur l'onglet (2) `FILTERS`.

../../_images/DATA_EXPORT-03.PNG
  • Saisir les paramètres à l'aide du tableau suivant :

Item

Paramètre

Description

16

`Message type`

Définit le type d’événement à envoyer au serveur distant. Soit uniquement les alertes, soit les alertes et les métadonnées (Exemple : alerts, all)

17

`Ip addresses`

Filtre par IP ou réseaux. Par défaut, toutes les données sont envoyés au serveur distant si le champ est vide

18

`Gcaps`

Filtre par Gcap. Par défaut, toutes les données des GCap appairés au GCenter sont envoyés au serveur distant si rien n'est sélectionné (Exemple : GCap1, GCap2)

19

`Additional fields`

Ajoute des champs supplémentaires dans les événements exportés.
Un nom (`Name`) et une description (`Values`) peuvent être renseignés dans cette fenêtre.
Dans le cas de l'utilisation du codec idmef, ce champ n'est pas supporté.

20

`Protocols`

Sélectionne les protocoles à exporter
(Exemple : dcerpc, dhcp, dnp3, dns, enip, ftp, http, http2, ikev2, krb5, mqtt, modbus, netflow, nfs, ntp, rdp, rfb, sip, smb, smtp, ssh, tftp et tls)

21

`Save`

La prise en compte des modifications n'est effective qu'après avoir appuyé sur `Save`

Note

`Select All` sélectionne tous les protocoles listés : un protocole qui n'est pas sélectionné ne sera pas exporté.
Si la version du GCap est plus récente que celle du GCenter, certains protocoles peuvent manquer.
Pour tout exporter, désactivez ce filtre avec `Deselect all` .
  • Valider en utilisant le bouton (21) `Save`.
    Le message suivant indique que la mise à jour a été effectuée : `Updated with success`.

8.6.3.7. Procédure de configuration des paramètres du chiffrement

L'onglet "ENCRYPTION" permet d'activer le chiffrement du flux généré par le GCenter.
L'input "syslog" de Logstash n'est pas compatible avec le chiffrement des données.
Cette fonctionnalité ne peut donc pas être utilisée.

8.6.3.8. Procédure à effectuer sur le serveur

  • Configurer le pipeline de réception du flux provenant du GCenter.

8.6.3.8.1. Pipeline Logstash

L'input utilisé est de type Syslog.
Afin d'être compatible avec n'importe quel en-tête Syslog, un motif grok est spécifié.
Le contenu JSON du log se trouve dans le champ syslog_message.
yaml
input {
  syslog {
    port => $LOGSTASH_PORT
    type => syslog
    grok_pattern => '^<%{NUMBER:syslog_priority}>(?:1 |)(?:%{SYSLOGTIMESTAMP:syslog_timestamp}|%{TIMESTAMP_ISO8601:syslog_timestamp}) %{SYSLOGHOST:syslog_hostname} (?:gatewatcher\[-\]:|gatewatcher - - \[-\]) %{GREEDYDATA:syslog_message}\n$'
  }
}
Seul, le champ syslog_message est conservé et est converti en JSON.
Le champ d'origine (syslog_message) et le champ propre à elasticsearch (@version) sont ensuite retirés.
yaml
filter {
  prune {
    whitelist_names => [ "syslog_message" ]
  }

  json {
    source => "syslog_message"
  }

  mutate {
    remove_field => [ "@version","syslog_message" ]
  }

}
N'importe quel output peut être ensuite utilisé.
Dans cet exemple, les logs sont décrits directement sur le disque sous forme de fichiers :
yaml
output {
  file {
    path => '/usr/share/logstash/data/output/%{[type]}-%{+YYYY.MM.dd}.log'
    codec => json_lines
  }
}