SIEM : centraliser les logs Linux et Windows dans une base MySQL / MariaDB

Le démon Rsyslog possède de très nombreux modules nous permettant d’envoyer les logs des systèmes et des applications vers les bases de données MySQL / MariaDB, PostgreSQL, ElasticSearch, Redis, MongoDB à des fins d’analyse post-mortem et de Forensics par exemple. Autrement dit, à l’aide de evtsys installé sur les stations et les serveurs Windows (exécutable evtsys.exe à copier dans c:\windows\system32), vous pouvez construire un SIEM très simplement (en moins d’une heure) avec Rsyslog et MariaDB, en redirigeant les journaux d’événements vers un ou plusieurs serveurs Rsyslog eux-mêmes renvoyant vers une base de données ou un cluster Galera.

evtsys -i -h ip_ou_fqdn_machine_linux_rsyslog -l 0 -t win
net start evtsys

Installation du module rsyslog-mysql

Après avoir installé au préalable une instance MySQL/MariaDB, nous allons ajouter sur Fedora le paquet rsyslog-mysql :

dnf install rsyslog-mysql

Création de la base Syslog

En installant le module vous disposez d’un script pour créer la base de données Syslog :

mysql -u root -p < /usr/share/doc/rsyslog/mysql-createDB.sql

Le script crée une base Syslog (avec un S majuscule) et lui rattache les tables SystemEvents et SystemEventsProperties. Pensez à créer un utilisateur disposant des droits sur cette base à partir de l’interpréteur mysql :

CREATE USER utilisateur@localhost;
SET PASSWORD FOR utilisateur@localhost=PASSWORD('mot_de_passe');
GRANT ALL PRIVILEGES ON Syslog.* TO utilisateur@localhost IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;

Configuration du fichier /etc/rsyslog.conf

Pensez à décommenter les lignes du fichier de configuration suivantes Rsyslog nécessaire à la mise en écoute et à la collecte des données :

module(load="imklog") # reads kernel messages (the same are read from journald)
module(load="immark") # provides --MARK-- message capability

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

Dans Fedora, après installation du paquet rsyslog-mysql, vous devez ajouter le module ommysql au fichier de configuration /etc/rsyslog.conf  :

module(load="ommysql")

Redirigez ensuite tous les messages en ajoutant tout à la fin de ce fichier, vers localhost dans l’exemple ci-dessous :

*.* :ommysql:localhost,Syslog,utilisateur,mot_de_passe

Vous pouvez redémarrer le service rsyslog , en faisant attention à configurer/désactiver SELinux/Firewalld :

systemctl restart rsyslog

Requête sur la table SystemEvents

Après vous être connecté à la base Syslog nouvellement créé, tapez, par exemple, la requête pour visualiser les logs :

SELECT 
    ReceivedAt,
    FromHost,
    Facility,
    Priority,
    Message,
    SysLogTag
FROM
    SystemEvents

Centraliser les logs rsyslog dans une base MySQL / MariaDB

Tables facility et severity

Afin d’établir les correspondances entre les codes des catégories et des niveaux d’erreur des messages, je vous conseille de créer les tables facility et severity :

CREATE TABLE facility
(
code INT,
keyword VARCHAR(50),
description VARCHAR(50)
);
INSERT INTO facility(code,keyword,description)
VALUES
(0,'kern','kernel messages'),
(1,'user','user-level messages'),
(2,'mail','mail system'),
(3,'daemon','system daemons'),
(4,'auth','security/authorization messages'),
(5,'syslog','messages generated internally by syslogd'),
(6,'lpr','line printer subsystem'),
(7,'news','network news subsystem'),
(8,'uucp','UUCP subsystem'),
(9,'cron','clock daemon'),
(10,'authpriv','security/authorization messages'),
(11,'ftp','FTP daemon'),
(12,'ntp','NTP subsystem'),
(13,'security','log audit'),
(14,'console','log alert'),
(15,'solaris-cron','scheduling daemon'),
(16,'local0','locally used facilities'),
(17,'local1','locally used facilities'),
(18,'local2','locally used facilities'),
(19,'local3','locally used facilities'),
(20,'local4','locally used facilities'),
(21,'local5','locally used facilities'),
(22,'local6','locally used facilities'),
(23,'local7','locally used facilities');

CREATE TABLE severity (
code INT,
title VARCHAR(20),
keyword VARCHAR(10)
);
INSERT INTO severity(code,title,keyword)
VALUES
(0,'Emergency','emerg'),
(1,'Alert','alert'),
(2,'Critical','crit'),
(3,'Error','err'),
(4,'Warning','warn'),
(5,'Notice','notice'),
(6,'Informational','info'),
(7,'Debug','debug'); 

Comprendre rsyslog

Vous disposez, sur Wikipédia, d’une excellente page consacrée à syslog dans laquelle vous aurez toutes les explications requises sur les valeurs figurant dans les colonnes Facility (la catégorie des messages) et Priority (le niveau de sévérité des messages).

Linux /

deneme bonusu veren siteler casino siteleri betdenemebonusu.com bahis siteleri Ev eşyası depolama Depolama Şehirlerarası evden eve nakliyat Evden eve nakliyat Eşya depolama yurtdışına ev taşıma Türkiye'den Almanya'ya ev taşıma zati eşya tasimaciligi uluslararasi zati eşya tasimaciligi eşya depolama şehirler arası nakliyat asansörlü nakliyat greatplay.net güvenilir online bahis siteler 2022 jetbahis Rexbet hovarda mobilbahis güncel adres sartsız Deneme Bonus sekabet maltcasino güncel adres> pinbahis100.com betduman.com olabahis.top سایت شرط بندی shartkade.com 1xbet-mobil.com beykoz evden eve nakliyat ataşehir evden eve nakliyat şişli evden eve nakliyat istanbul evden eve nakliyat
teens porn videos free sex xxx sexy videos