Vous êtes sur la page 1sur 42

Mise en place d’une plateforme de supervision réseau basée Rsyslog,

un serveur de bases de données et loganalyzer

Par Prof. Samuel OUYA

Partie I : Concepts therorique des logs

Definitig Logs
Les logs sont en réalité des fichiers texte qui recensent chronologiquement tous les événements
qui se sont déroulés sur un système informatique, que ce soit au niveau du système
d’exploitation ou des applications qu’il héberge.

On retrouvera dans des logs par exemples, les redémarrages des services, les connexions des
utilisateurs, les erreurs rencontrées par le système ou les logiciels…
Ce sont des fichiers très précieux pour comprendre la source d’un problème, le déboguer et
surveiller l’état de santé d’une machine.
C’est pourquoi, exporter les journaux événements de tous ses serveurs sur une seule et même
machine dédiée, est une bonne pratique. Et en y ajoutant une interface graphique, ils pourront
mieux être triés, classés et consultés, par source, par criticité etc…

fig1 : Architecture d’un plateforme de logs

Pour permettre cette centralisation des journaux, le protocole initialement utilisé est le protocole
syslog. Le protocole syslog permet justement le transfert des informations sur le port UDP 514.
De nos jours, on préférera utiliser un protocole TCP qui accusera réception des données
contrairement au protocole UDP qui lui ne se souciera pas de la bonne/mauvaise transmission des
informations.
Le logiciel de gestion des logs que nous allons utiliser, Rsyslog, utilise justement son propre
protocole réseau, le protocole RELP (Reliable Event Logging Protocol) qui, étant un protocole
TCP, offre une meilleure garantie de réception des événements par le serveur.
Afin d’avoir un accès plus « graphique » des journaux d’événements, nous allons utiliser
l’interface web LogAnalyzer qui va nous permettre de voir et analyser les logs en temps réel
mais également de les trier selon ce que l’on souhaite.
Trier ses logs justement, syslog le fait déjà un peu pour nous…
En effet, lorsque l’on s’attaque à la configuration de logs, on est forcément confronté aux notions
de “facilities” et de “severities“ (aussi appelées “priorities“). Ce sont des concepts importants
dans la gestion des logs.
Ce qu’on appelle une “facility” est en fait une catégorie de logs qui correspond à un type de
service. Les facilities permettent de filtrer les logs et les ranger selon leur type. Elles s’appliquent
par un système de “code“, au nombre de 24, chaque code correspondant à une catégorie. Voici un
tableau récapitulatif des facilities :
fig 2 : Tableau des codes des facilities
Quant aux “severities”, ce sont les niveaux de gravité des erreurs de logs. Ces niveaux sont au
nombre de 8 et fonctionnent comme les facilites, avec un système de code couplé à un keyword. Il
faut savoir que plus le niveau de gravité est proche de la valeur 0, plus l’erreur sera grave. On
parle d’urgence absolue pour la machine concernée. Voici le tableau recensant les severities :

fig 3 : tableaux des severities

Attention, plus le niveau de gravité défini sera proche de 7, la valeur la moins « importante »
donc, plus il y aura de logs générés, plus ou moins utiles selon ce que vous souhaitez. Si l’on
définit sur une machine la severity 6 par exemple, cela signifie que TOUS les niveaux précédents
seront aussi activés ! Si on définit une severity 3, on aura alors les logs de sévérité error + critical
+ alert + emergency.
Partie II : Mise en place d’un serveur et des clients logs

Prérequis
On suppose que vous avez déjà installé mysql-server que vous detenez le mot de place de
l’administrateur de votre Base de données car il vous sera demandé pour créer automatiquement la
base Syslog au moment de l’installation de rsyslog-mysql

apt-get install php-mysql php-gd

2.1- Installation du serveur

root@Kam-ims:~# apt install rsyslog rsyslog-mysql


Le dbconfig-common va alors créer une base de données appelée “Syslog“ et les deux tables
dont nous aurons besoin : “SystemEvents” et “SystemEventsProperties“. Attention à bien
respectez la casse de ces noms par la suite !
Définissez un mot de passe pour l’utilisateur nommé “rsyslog” qui aura le contrôle total de la
base de données Syslog :

La base de données est prête. Voici les informations importantes à retenir :

Hôte Database : localhost


Port Database : 3306
Nom Database : Syslog
Table Événements : SystemEvents
User Database : rsyslog
Mdp User Database : mdp que vous avez défini

2.2 - Vérification de la création de la base Syslog

root@Kam-ims:~# mysql

mysql> show databases;


+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |

2.3- Visualisation des 2 tables créées automatiquement


mysql> use Syslog
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0,00 sec)

2. 4- Configuration du serveur
Poursuivons en activant la réception des logs sur le serveur dédié. Modifiez le fichier de
configuration de rsyslog :

Dans le fichier
root@Kam-ims:~# nano /etc/rsyslog.conf

On decommente les lignes comme suit :

On redémarre le serveur rsyslog

On constate que le serveur rsyslog tourne bien sur le port 514 en UDP et TCP

2.5- Installation et config du client

on installe rsyslog sur une autre machine nommée alain-Virtualbox

on édite le fichier /etc/rsyslog,conf et on on ajoute à la fin

*.* @192.168.0.5:514
*.* @@192.168.0.5:514
La première ligne concerne l’envoi des log par UDP alors que la deuxième concerne l’envoi des log
par TCP

Après redémarrage du client

On constate que le client alain-Virtualbox a bien envoyé des logs qui sont stockés dans la base
Syslog du serveur comme le montre la capture suivante :

Passons maintenant à la mise en place d’un outil graphique d’analyse des logs

Partie III : Installation et paramétrage de loganalyser

3.1 Installation de loganalyser

on télécharge la version tar de loganalyser

root@Kam-ims:~# cd /usr/local/
root@Kam-ims:/usr/local# wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.8.tar.gz

on désarchive

root@Kam-ims:/usr/local# tar -zxvf loganalyzer-4.1.8.tar.gz

on crée un dossier dans le DocumentRoot de notre serveur web apache2


root@Kam-ims:/usr/local# mkdir /var/www/html/loganalyzer/

on donne le dossier /var/www/html/loganalyzer à l’utilisateur systeme d’apache2 qui est www-


data

root@Kam-ims:/usr/local# chown -R www-data:www-data /var/www/html/loganalyzer

on copie le code de notre application loganalyser dans le dossier /var/www/html/loganalyzer

root@Kam-ims:/usr/local# cp -a loganalyzer-4.1.8/src/* /var/www/html/loganalyzer/

Comme loganalyser a été developpé en PHP, on installe libapache2-mod-php pour que


apache2 puisse l’executer
chown -R www-data:www-data /var/www/html/loganalyzer
root@Kam-ims:/var/www/html/loganalyzer# apt-get install libapache2-mod-php

La suite de la configuration sera effectuée via l’interface web via un nanigateur

fig 3.1 : Lancement d’installation de loganalyzer


fig 3.2 etape 2 d’installation

On clique sur next


fig 3.3 : etape 3 d’installation
Fig 3.4 : Parametres de connexion de loganalyser au serveur de Bases de données

Ces paramètres vont en réalité créer des tables supplémentaires dédiées à LogAnalyzer dans
notre base de données Syslog. La partie “Table prefix” peut être laissée par défaut. Cliquez sur
“Next“.
L’étape 4 indique que la connexion à la base de données définie à l’étape 3 a bien réussi et que
les tables pour LogAnalyzer seront créées à l’étape suivante. Cliquez sur “Next“.
Fig3.5 étape 5 d’installation
L’étape 5 valide la création des tables. Cliquez sur “Next“.
Fig 3.6 etape 6 d’installation

création de compte admin


fig 3.6 Création de compte d’administration

Il faut maintenant paramétrer la source des logs comme étant notre base de données. Renseignez le
champ “Name of the Source” en indiquant par exemple “base de données Sysslog” ou ce que vous
voulez.
Modifiez le champ “Source Type” en sélectionnant “MYSQL Native“ ce qui déroulera le menu
inférieur des options de base de données.
Fig 3,7 choix de table à utiliser par loganalyzer
Fig 3.8 : fin d’installation
fig 3.9 Première connexion à l’interface de loganalyzer
fig 3.10 : authentification en tant qu’administrateur de loganalyzer
Fig 3.11 : interface de loganalyzer

Pour obtenir des informations sur un événement, cliquez le message le concernant dans la
colonne de droite ce qui ouvrira une fenêtre avec le message complet.
Fig 3.12 obtention d’information sur un evenement choisi

Pour effectuer un tri ou des recherches particulières, par nom d’hôte, par criticité, ou encore par
service par exemples, vous pouvez utiliser la zone de recherche en saisissant un mot clé et
appuyant sur le bouton « Search ». L’affichage vous montrera par exemple uniquement les
événements se rapportant du service SSH.
Fig 3.13 Tri selon un critere

On voit que l’utilisateur bouki a essayé de se connecter

si on clique sur l’evenement ayant l’adresse 192.168.1.125, on voit les détails d’échec de connexion
de l’utilisateur bouki

Installons un serveur de messagerie et analysons les logs

Partie IV : Mise en place d’un service de messagerie et Analyse des logs

4.1 Installation des paquets

Sachant que les 3 principaux agents de messagerie sont :


MUA ; exemple roundcube
MTA ; exemple postfix
MDA ; exemple dovecot-pop3d et dovecot-imapd

On va installer 4 paquets + le paquet roundcube-mysql qui va permettre aux utilisateurs du serveur


de messagerie de gérer leurs contacts email
root@Kam-ims:/usr/local# apt install postfix dovecot-pop3d dovecot-imapd roundcube
roundcube-mysql

Fig 4.1 Acceptation de configuration de la base de roundcube par dbconfig-common


Fig 4. 2 : Saisie de mot de passe d’accès à la base roundcube
Fig 4.3 Avertissement de postfix pour l’interface d’ecoute
Fig 4.4 Choix d’écoute de postfix sur toutes interfaces de la machine
Fig 4.5 Choix du nom du serveur de messagerie

En se connectant au serveur de BD, on voit qu’une base roundcube a été crée


fig

mysql> show databases;


+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
| banque |
| hss_db |
| icscf |
| mysql |
| pcscf |
| performance_schema |
| roundcube |
| scscf |
| sys |
| uam |
+--------------------+
4.2 Configuration du serveur SMTP postfix

Le fichier de configuration de postfix est /etc/postfix/main.cf

3 parametres sont impactés :

myorigin qui permet de préciser le domaine d’origine de votre serveur ;


mydestination qui permet de préciser tous domaines pour lesquels le serveur SMTP gère des
mails
home_mailbox qui permet de préciser à postfix le format de boites à lettres à utiliser

root@Kam-ims:/usr/local# nano /etc/postfix/main.cf

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for


# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_u$


myhostname = Kam-ims
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localhost, rtn.sn
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
home_mailbox = Maildir/
myorigin = rtn.sn

On a ajouté les deux dernières lignes


et on a modifié aussi le paramètre mydestination

on redémarre le serveur SMTP postfix

root@Kam-ims:/usr/local# service postfix restart


root@Kam-ims:/usr/local# netstat -anp| grep -w 25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 16833/master
tcp6 0 0 :::25 :::* LISTEN 16833/master

4.3 Configuration de dovecot

La configuration du dovecot consiste à choisir le format de Boites à lettre dans le


/etc/dovecot/conf.d/10-mail.conf

root@Kam-ims:/usr/local# nano /etc/dovecot/conf.d/10-mail.conf


on active le format maildir en decommentant la premiere ligne et en commentant la seconde ligne

mail_location = maildir:~/Maildir

#mail_location = mbox:~/mail:INBOX=/var/mail/%u

root@Kam-ims:/usr/local# nano /etc/dovecot/conf.d/10-mail.conf


root@Kam-ims:/usr/local# service dovecot restart
root@Kam-ims:/usr/local# netstat -anp | grep -w 110
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 18098/dovecot
tcp6 0 0 :::110 :::* LISTEN 18098/dovecot
root@Kam-ims:/usr/local# netstat -anp | grep -w 143
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 18098/dovecot
tcp6 0 0 :::143 :::* LISTEN 18098/dovecot

On constate que les ports 110 et 143 de pop et imap sont ouverts

4.4 Configuration du webmail roundcube

Etape 1 :

on parametre roundcube dans apache2

root@Kam-ims:/usr/local# nano /etc/apache2/conf-available/roundcube.conf

On enlève # qui est devant cette ligne

Alias /roundcube /var/lib/roundcube

pour dire que si on saisit l’url ipnotreserveur/roundcube


alors les codes se trouvant dans /var/lib/roundcube s’executent

On redemarre apache2

root@Kam-ims:/usr/local# service apache2 restart

Etape 2 : configuration du webmail roundcube pour lui indiquer l’adresse du serveur imap et
celle du serveur SMTP

root@Kam-ims:/usr/local# cd /var/lib/roundcube/config
root@Kam-ims:/var/lib/roundcube/config# nano config.inc.php

$config['default_host'] = 'rtn.sn';
$config['smtp_server'] = 'localhost';
$config['smtp_port'] = 25;
$config['smtp_user'] = '';
$config['smtp_pass'] = '';

NB : enlever %u et%p sur les 2 dernières lignes


Remplacer rtn.sn par le nom de votre domaine

root@Kam-ims:/var/lib/roundcube/config# nano /etc/hosts

192.168.0.5 rtn.sn

ce qui permet de faire la correspondance entre le nom rtn.sn et l’adresse ip 192.168.0.5 qui est
l’adresse de notre serveur IMAP

NB : cette correspondance local n’est pas nécessaire si on dispose d’un serveur DNS

On peut utiliser un navigateur pour accéder à l’interface de notre webmail

fig 4.6 interface d’authentification de roundcube


On crée un compte utilisateur bouki pour que son adresse email soit bouki@rtn.sn

root@Kam-ims:/var/lib/roundcube/config# adduser bouki


Ajout de l'utilisateur « bouki » ...
Ajout du nouveau groupe « bouki » (1001) ...
Ajout du nouvel utilisateur « bouki » (1001) avec le groupe « bouki » ...
Création du répertoire personnel « /home/bouki »...
Copie des fichiers depuis « /etc/skel »...
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès
Modification des informations relatives à l'utilisateur bouki
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []:
N° de bureau []:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:
Ces informations sont-elles correctes ? [O/n]

On crée un deuxième compte toto

root@Kam-ims:/var/lib/roundcube/config# adduser toto


Ajout de l'utilisateur « toto » ...
Ajout du nouveau groupe « toto » (1002) ...
Ajout du nouvel utilisateur « toto » (1002) avec le groupe « toto » ...
Création du répertoire personnel « /home/toto »...
Copie des fichiers depuis « /etc/skel »...
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès
Modification des informations relatives à l'utilisateur toto
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []:
N° de bureau []:
Téléphone professionnel []:
Téléphone personnel []:
Autre []:
Ces informations sont-elles correctes ? [O/n]
Fig 4.7: Authentification avec le compte bouki
Fig 4.8 : Inerface de mail de bouki
Bouki envoie un mail à toto
Fig 4.9 Ecriture d’un mail par bouki

Bouki se déconnecte et on se connecte comme toto


Fig 4.10 Authentication de l’utilisateur toto
Fig 4.11 Réception de mail par toto

Le mail envoyé par toto a été bien recu par toto

4.5 Gestion des contacts dans roundcube

toto clique sur contacts


Fig 4.12 Ajout d’un contacr dans roundcube

et clique sur le deuxieme + pour ajouter un contact mail


Fig 4,13 Ajout du conctact mamadou ndiaye
Fig 4.14 Resultat de l’ajout de contact mamadou ndiaye

si Toto veut envoyer un mail et s’il commence par saisir m on voit que le nom mamadou ndiaye
apparaît
Fig 4,15 : Proposition automatique des contact d’un utilisateur
Fig 4.16 : Envoi de mail à un contact

puis il clique sur envoyer

toto se déconnecte du webmail et bouki se reconnecte à nouveau


Fig 4.17 : Reception de mail par un contact

On voit bien que bouki a recu la reponse de toto

Vous aimerez peut-être aussi