Cybersécurité : Graylog
http://docs.graylog.org/en/latest/pages/getting_started.html
Présentation
Graylog va permet d’avoir une gestion des logs centralisée. Ces logs seront stockés dans une base de données Elasticsearch. Les paramètres de Graylog seront quand à eux stockés dans Mongodb. Et pour finir nous pourront gérer ces logs via une interface graphique qui se nomme graylog-web-interface.
Graylog étant un protocole très complet, je me contenterais ici de n'en faire qu'une présentation basique; mais il accepte tous types de messages grâce au protocole syslog.
Installation
Le site officiel de GrayLog propose diverses méthodes d'installation : Docker, Ansible, des packages... Néanmoins, j'utiliserais la machine virtuelle proposée au téléchargement. On se contente donc de télécharger la VM : https://packages.graylog2.org/appliances/ova et de l'importer dans Virtualbox.
Attention aux ressources : cette VM demande deux coeurs et 4 Go de RAM ! Je l'utiliserais ici en mode "accès par pont".
Une fois installée, je n'ai plus qu'à la lancer. La VM nous dit alors quoi faire :
Les màj
Pour mettre notre OVA à jour, cela passe tout simplement par les dépôts graylog:
$ wget https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.deb $ sudo dpkg -i graylog-3.0-repository_latest.deb $ sudo apt-get update $ sudo apt-get install graylog-server
Utilisation
Je peux désormais me connecter à l'interface web via l'adresse et le login fournis. J'arrive alors sur la page d'acceuil qui propose déjà un peu d'aide :
Je vais commencer à envoyer des logs vers Graylog, depuis ma machine locale, en utilisant Rsyslog. C'est assez simple :
root@Justine-pc:~# echo "*.*@192.168.1.37:514;" > /etc/rsyslog.d/30_graylog.conf root@Justine-pc:~# systemctl restart rsyslog
Cette commande permettra d'envoyer tout le contenu de notre syslog vers notre serveur Graylog. Ensuite, cela demande un peu de configuration sur Graylog.
Il faut se rendre dans System/inputs > Inputs. Dans le menu déroulant, choisir "Raw/Plaintext UDP" et configurer de la façon suivante :
Ici, 192.168.1.37 est l'adresse IP de mon serveur Graylog. Il peut s'avérer nécessaire de stopper les autres inputs mis en place au lancement de Graylog si vous utilisez le port 514 ! Chaque client doit avoir son port qui lui est dédié. Vous pouvez en utiliser un autre si vous le souhaitez (5555, 5556, etc).
Faire une recherche sur les données
En cliquant sur "Search" dans la barre supérieure du menu Graylog, on atteri sur le menu de recherche. Graylog utilise un langage construit pour les recherches :
http://docs.graylog.org/en/latest/pages/queries.html#search-query-language
Pour l'exemple, je me contenterais de la recherche "*", qui permet de tout afficher :
Ici encadré en rouge, on voit bel et bien affluer les messages issus du syslog de mon ordinateur.
Créer un Dashboard
En me rendant dans le menu Dashboards, je peux créer un dashboard. Il me faut lui donner un nom et une description. Ensuite, pour lui ajouter des widgets, tout passe par la recherche. Dans l'exemple suivant, je vais ajouter un compteur, comptabilisant tous les messages reçus dans les 5 dernières minutes depuis toutes les sources de messages (ici, mon ordinateur) :
Le compteur apparaît alors dans le dashboard.
Je peux rajouter deux trois widgets et avoir un dashboard intéressant :
On peut cliquer sur "Fullscreen" pour mettre le dashboard en plein écran (intéressant à afficher sur un écran situé dans le couloir, à côté de la machine à café !).
En conclusion
Graylog est un outil très puissant, et je n'ai montré ici qu'une toute petite partie de ce qu'il peut faire en matière de supervision. Son utilisation du protocole syslog le rend particulièrement portable, et il peut monitorer aussi bien des machines Linux que WIndows, ainsi que des machines Apple ou même du matériel réseau.
La documentation est particulièrement bien fournie, aussi j'en redonne le lien :
https://docs.graylog.org/en/3.0/