• 8 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 14/08/2024

Chargez vos logs dans ELK

Dans le chapitre précédent, nous avons étudié le fonctionnement des différents composants de la stack ELK. Dans ce chapitre, nous allons voir en détail comment charger les logs dans notre serveur ELK.

Envoyez les logs syslog dans ELK

Pour exporter les logs syslog dans ELK, naviguez dans votre interface du serveur d’ELK via l'adresse IP de votre serveur puis dans “Home”>”Add data” :

L’onglet Security d’Add data dans ELK
L’onglet Security d’Add data dans ELK

Dans l'onglet “Security”, il vous suffit ensuite de cliquer sur “System logs” pour avoir les informations d’installation pour votre serveur Linux. 

System Logs vous donne les informations d’installation pour votre serveur Linux
System Logs vous donne les informations d’installation pour votre serveur Linux

Pour installer Filebeat, il faut que votre serveur Linux puisse accéder à votre serveur ELK.

Il faut ensuite modifier le fichier de configuration  /etc/filebeat/filebeat.yml   avec votre URL ElasticSearch, vos nom d’utilisateur et mot de passe pour cet outil, et votre URL Kibana :

output.elasticsearch:
hosts: ["<es_url>"]
username: "elastic"
password: "<password>"
setup.kibana:
host: "<kibana_url>"

Puis, activez le module system avec la commande suivante :

sudo filebeat modules enable system

Il existe d'autres modules que vous pouvez activer par exemple. Ils peuvent également être utiles pour votre monitoring.

Pour Apache :

sudo filebeat modules enable apache

Pour auditd :

sudo filebeat modules enable auditd

Finalement, vous pouvez démarrer Filebeat :

sudo filebeat setup
sudo service filebeat start

Une fois le service démarré, vous pouvez vérifier votre installation dans ELK en cliquant sur “Check data” : 

Check data vérifiera votre installation
Check data vérifiera votre installation

Si tout est OK, les données seront chargées automatiquement dans ELK.

Par défaut, ELK propose des dashboards préconfigurés que vous pourrez utiliser pour explorer les données remontées.

Un dashboard préconfiguré par ELK
Un dashboard préconfiguré par ELK

Envoyez les logs Sysmon dans ELK

Nous allons à présent installer Winlogbeat sur votre système Windows. Pour exporter les logs Sysmon dans ELK, il vous suffit de naviguer dans votre interface du serveur d’ELK dans “Home”>”Add data”>”Windows Event Log”, et suivre les instructions.

Windows Event Log vous donne les informations d’installation de Winlogbeat
Windows Event Log vous donne les informations d’installation de Winlogbeat

Une fois Winlogbeat installé, vous pouvez configurer le fichier  C:\Program Files\Winlogbeat\winlogbeat.yml   avec votre URL ElasticSearch, vos nom d’utilisateur et mot de passe pour cet outil et votre URL Kibana :

output.elasticsearch:
hosts: ["<es_url>"]
username: "elastic"
password: "<password>"
setup.kibana:
host: "<kibana_url>"

Finalement, il est possible de configurer le service pour automatiquement envoyer les logs vers ELK en exécutant la commande :

.\winlogbeat.exe setup
Démarrage de Winlogbeat sur le système Windows
Démarrage de Winlogbeat sur le système Windows

Les données peuvent ensuite être explorées dans plusieurs dashboards créés par ELK. Vous pouvez vérifier que votre installation marche depuis un des dashboards, comme ci-dessous :

Un dashboard préconfiguré par ELK
Un dashboard préconfiguré par ELK

Utilisez Packetbeat pour le réseau

Packetbeat permet de monitorer les connexions réseaux des machines. Cela peut être intéressant pour obtenir plus d'informations concernant les adresses IP source et destination, ainsi que les données échangées.

Après avoir installé Packetbeat, la configuration s'effectue dans le fichier  /etc/packetbeat/packetbeat.yml   de la même manière que précédemment : avec votre URL ElasticSearch, vos nom d’utilisateur et mot de passe pour cet outil et votre URL Kibana.

Pour ajouter ou modifier des protocoles à monitorer, vous pourrez aussi modifier cette partie du fichier avec le type de protocole à surveiller et les ports concernés :

packetbeat.protocols:

- type: dhcpv4
ports: [67, 68]

- type: dns
ports: [53]

- type: http
ports: [80, 8080, 8081, 5000, 8002]

- type: memcache
ports: [11211]

- type: mysql
ports: [3306,3307]

- type: pgsql
ports: [5432]

- type: redis
ports: [6379]

- type: thrift
ports: [9090]

- type: mongodb
ports: [27017]

- type: cassandra
ports: [9042]

- type: tls
ports: [443, 993, 995, 5223, 8443, 8883, 9243]

Enfin, lorsque vous êtes satisfait de votre configuration, vous pourrez l'activer avec les commandes suivantes :

packetbeat setup -e
sudo service packetbeat start

Dans Kibana, vous pourrez à présent visualiser les logs réseaux remontés dans “Discover” en filtrant sur Packetbeat*.

Vous pourrez également retrouver les dashboards par défaut.

Le dashboard Packbeat d’ELK
Le dashboard Packbeat d’ELK

Utilisez Logstash

Logstash peut être utilisé pour l'ingestion de logs non supportés par la suite Beats. Il permet la collecte, le traitement et le transfert des données.

Logstash fonctionne au moyen de pipelines : des fichiers de configuration contenant les informations de connexions ainsi que les modifications à effectuer sur les logs à envoyer. Il est possible de spécifier un unique fichier de logs avec l'option -f.

logstash -f mylog.conf

La création d'un fichier de configuration Logstash est composé de 3 parties.

  • Input : pour spécifier l'emplacement des logs à envoyer. 

  • Filter : pour modifier le formatage des logs à envoyer, par exemple si vous souhaitez enlever une colonne non utile. 

  • Output : pour spécifier les informations de connexion à votre instance ELK. 

Voyons ensemble un exemple de configuration vide  :

input {
file {
    path => ["/place/of/logs/*"]
    start_position => "beginning"
    mode => "read"
   }
}
filter {
    csv {
        separator => ","
     }
}

output {
    elasticsearch {
        hosts => "localhost:9200"
        manage_template => false
        index => "myindex-%{+yyyy-MM-dd}"
        user => "your_user"
        password => "your_password"
    }

stdout {
    codec => rubydebug
    }
}

Dans l'exemple ci-dessus, nous chargeons un fichier CSV avec le séparateur "," depuis un emplacement défini.

Une fois votre fichier de configuration finalisé, je vous invite à tester votre fichier avec l'option  -f  pour vérifier que tout fonctionne bien. Pensez à ajouter la ligne  codec => rubydebug  comme indiqué dans l'exemple ci-dessus pour pouvoir troubleshooter.

En résumé

Nous venons de voir comment charger les logs suivants dans ELK :

  • L'ajout de logs Linux se fait sur la page "System logs" de l'onglet "Security" ;

  • Vos logs Windows sont remontés par Winlogbeat, que vous pouvez configurer depuis "Windows Event Log" de la page "Add data" ;

  • La configuration de Packetbeat permet le monitoring des connexions réseau des machines ajoutées dans son fichier ;

  • Les logs non supportés par la suite Beats sont intégrés avec Logstash, après la configuration du fichier.

Dans le prochain chapitre, nous verrons comment mettre en place et exploiter les fonctionnalités de SIEM, ainsi que la création de dashboard...

Exemple de certificat de réussite
Exemple de certificat de réussite