5. Créer une visualisation Carte, pour surveiller de quel pays viennent les IP, et où ils vont (Géolocalisations).

Modérateur : admin

admin
Site Admin
Messages : 71
Inscription : 18 juil. 2017, 19:18

5. Créer une visualisation Carte, pour surveiller de quel pays viennent les IP, et où ils vont (Géolocalisations).

Message par admin »

Bonjour,

Un petit tuto, pour afficher une carte, dans vos Dashboards (Si vous avez pas trouvés, ou si vous avez pas cherchés :P )




1.png
1.png (24.48 Kio) Consulté 86 fois
1) Cliquez ici pour créer une visualisation (à partir de l'affichage d'une visualisation en cours).
2.png
2.png (61.98 Kio) Consulté 86 fois
1) Laissez tel quel (car "filebeat-* est présent).
2) Saisissez dans recherche "geo.location"



3.png
3.png (61.94 Kio) Consulté 86 fois
1) Cliquez sur "source.geo.location, sans relâcher,
2) Puis, déplacez-le dans cette zone
4.jpg
4.jpg (71.59 Kio) Consulté 86 fois
1) Vous avez les IP externes géolocalisés (sources),
2) Selon ce calque,
3) Nous allons ajouter un autre calque (celui des destinations, comme nous avons ajoutés celui des sources)
5.jpg
5.jpg (58.6 Kio) Consulté 86 fois
1) Ensuite, cliquez sur "Elasticsearch"
2) "Documents"
6.png
6.png (50.11 Kio) Consulté 86 fois
1) Défilez ici
2) Je choisis tous les champs (pour rester cohérant, avec l'autre calque), mais, vous pouvez tout aussi bien, ne choisir que "filebeat-*", ou ".ds-filebeat-9.4.*", ça doit fonctionner logiquement)
7.png
7.png (38 Kio) Consulté 86 fois
1) Supprimez celui-ci, comme on l'a déjà (sinon, il va ajouter 2x le même)
8.png
8.png (38.84 Kio) Consulté 86 fois
Choisissez celui-ci


9.png
9.png (37.62 Kio) Consulté 86 fois
Cliquez ici


10.jpg
10.jpg (39.58 Kio) Consulté 86 fois
Choisissez une autre couleur que "source.geo.location"

11.png
11.png (92.99 Kio) Consulté 86 fois
1) Choisissez ici un nom plus intélligible
2) Il se met à jour automatiquement
(vous pouvez, après, changer celui des sources)


12.png
12.png (23.88 Kio) Consulté 86 fois
Fini.




13.png
13.png (59.49 Kio) Consulté 86 fois
1) Vous obtenez alors une carte, avec les connexions selon les endroits du monde
2) Cliquez sur "Enregistrer et revenir"

14.jpg
14.jpg (45.84 Kio) Consulté 86 fois
Voilà, vous avez votre carte avec la géolocalisation.

Et encore mieux, j'ai trouvé des meilleurs tableaux à afficher, qui sont directement crées par filebeat (en fouillant, pour résoudre mes problèmes) :

15.png
15.png (16.41 Kio) Consulté 86 fois
1) Allez à l'accueil (en haut à gauche)


16.png
16.png (37.53 Kio) Consulté 86 fois
1) Cliquez sur "Analytique"


17.png
17.png (19.94 Kio) Consulté 86 fois
1) Dashboard

18.png
18.png (18.19 Kio) Consulté 86 fois
1) Il s'agit de celui-là.




19.png
19.png (27.13 Kio) Consulté 86 fois
1) Choisissez ici, "Events" ou "Alerts" (dans Alerts, tout en bas, vous avec 2 cartes avec la géolocalisation des IP problématiques)



Vous avez aussi une autre carte (très utile) ici :
20.jpg
20.jpg (135.06 Kio) Consulté 86 fois

Menu : Securité -> Tableaux de bord -> Explorer -> Réseau

D'ailleurs, je vous conseille de vous balader - découvrir, la section "Sécurité", c'est super bien fait, et pour la version gratuite, il y a beaucoup de choses intéressantes, côté cybersécurité (investigation sur une communication, requête whois, virustotal et talos, directement dans les menus, entre autres)…





Si la géolocalisation ne marche pas (comme chez moi), je vous propose ma solution :

Tout d'abord, ChatGPT, m'a conseillé, de recréer une vue de données (.ds-filebeat-9.4.*), contenant le flux de données, filebeat-9.4.0, crée automatiquement par filebeat, sur le serveur suricata (mais, cela reste facultatif.)


21.png
21.png (17.77 Kio) Consulté 86 fois
Allez tout en bas du menu d'ELK (dans Kibana), afin de cliquer sur "Gestion de la suite"

22.png
22.png (14.85 Kio) Consulté 86 fois
Cliquez sur "Vue de données"


23.png
23.png (7.39 Kio) Consulté 86 fois
-> "Créer une vue de données" (tout en haut à droite)



24.png
24.png (67.67 Kio) Consulté 86 fois
1) Saisissez ici, le nom (arbitraire)
2) Saisissez ici le nom "filebeat-", ainsi que le numéro de la version, (majeure et mineure) en remplaçant, le dernier chiffre, par * (pour moi 9.4.*)
3) Ici apparaissent les sources concernés
4) Saisissez @timestamp comme champ d'horodatage
5) Enregistrez.




25.png
25.png (74.29 Kio) Consulté 86 fois
1) Vous pouvez vérifier que pour la vue de données crée,
2) En saisissant ici le champ "source.geo.country_iso_code"
3) Le champ apparaît bien.



Problème sans doute de la base de données GeoLite2 (c'était le cas chez moi…)

Dans une console PowerShell :
curl -v https://geoip.elastic.co/v1/database

Doit se terminer par :
geoip.elastic.co:443 left intact
(j'avais un problème à ce niveau, mon antivirus me bloquait le (réécrivait sans doute) le certificat HTTPS)

Ensuite, dans la console de débogage, de Kibana, faire (pour vérifier si GeoIP est actif) :

Dans la console management ELK :
26.png
26.png (22.64 Kio) Consulté 86 fois
Pour rappel, la console de management ELK se trouve ici

Saisissez à l'intérieur :

Code : Tout sélectionner

GET _cluster/settings?include_defaults=true
Et chercher dans la réponse :
27.jpg
27.jpg (78.33 Kio) Consulté 86 fois
Tapez [ctrl]+[f] et recherchez "geo"
Observez les différents éléments, vous montrant que geoip n'a pas été téléchargé, et n'est pas activé.

Puis, pour activer le module GeoIP, saisissez (toujours dans la console de management Kibana) :

Code : Tout sélectionner

PUT _cluster/settings
{
  "persistent": {
    "ingest.geoip.downloader.enabled": true
  }
}
Réponse :

{
"acknowledged": true,
"persistent": {
"ingest": {
"geoip": {
"downloader": {
"enabled": "true"
}
}
}
},
"transient": {}
}

Puis, pour forcer le téléchargement :

Code : Tout sélectionner

GET _ingest/geoip/stats
Réponse :

{
"stats": {
"successful_downloads": 3,
"failed_downloads": 0,
"total_download_time": 26400,
"databases_count": 3,
"skipped_updates": 0,
"expired_databases": 0
},
"nodes": {
"azerty…": {
"databases": [
{
"name": "GeoLite2-ASN.mmdb"
},
{
"name": "GeoLite2-City.mmdb"
},
{
"name": "GeoLite2-Country.mmdb"
}
],
Vous voyez ici les 3 bases de données GeoIP (GeoLite2) qui sont en cours de téléchargement/sont téléchargés

Vérifier avec le DNS de google (8.8.8.8) :

Code : Tout sélectionner

POST _ingest/pipeline/_simulate
{
  "pipeline": {
    "processors": [
      {
        "geoip": {
          "field": "client.ip"
        }
      }
    ]
  },
  "docs": [
    {
      "_source": {
        "client": {
          "ip": "8.8.8.8"
        }
      }
    }
  ]
}
Réponse :

{
"docs": [
{
"doc": {
"_index": "_index",
"_version": "-3",
"_id": "_id",
"_source": {
"client": {
"ip": "8.8.8.8"
},
"geoip": {
"continent_name": "North America",
"country_name": "United States",
"location": {
"lon": -97.822,
"lat": 37.751
},
"country_iso_code": "US"
}
},
"_ingest": {
"timestamp": "2026-05-11T16:09:06.7635894Z"
}
}
}
]
}

Bonne fin de nuit.

Source : Merci ChatGPT.