« Surveillance » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
(99-surveillance)
mAucun résumé des modifications
 
(5 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
__toc__
Paquet surveillance
Paquet surveillance


Ligne 10 : Ligne 11 :


* À l'installation de '''surveillance''', des md5sums de tous les fichiers à surveiller (liste dans /var/lib/dpkg/info/surveillance.postinst) sont calculés et conservés.
* À l'installation de '''surveillance''', des md5sums de tous les fichiers à surveiller (liste dans /var/lib/dpkg/info/surveillance.postinst) sont calculés et conservés.
* L'éxécution de «surveille» donne la liste des fichiers modifiés; Donc si /etc/rsyslog.conf est modifié, «surveille» le signaleras.
* L'éxécution de «surveille» donne la liste des fichiers modifiés; Donc si /etc/rsyslog.conf est modifié, «surveille» le signalera.
* '''complet''' est un script additionnel indiquant si un fichier supplémentaire a été crée.
* '''complet''' est un script additionnel indiquant si un fichier supplémentaire a été crée.
* Pour recalculer les md5sums, faire «dpkg-reconfigure surveillance»
* Pour recalculer les md5sums, faire «dpkg-reconfigure surveillance»
Ligne 32 : Ligne 33 :




C'est un soft idéal pour un serveur. Si la machine est compromise, l'un des fichiers de démarrage est modifé et ça se verra.
C'est un soft idéal pour un serveur. Si la machine est compromise, l'un des fichiers de démarrage est modifié et ça se verra.


cron envoit un mail à root en cas de souci.
cron envoie un mail à root en cas de souci.


== Installation ==
== Installation ==


Créez le fichier /etc/apt/sources.list.d/fran.b.list
Créez le fichier /etc/apt/sources.list.d/fran.b.list
<pre>
deb http://boisson.homeip.net/debian wheezy divers
#deb-src http://boisson.homeip.net/source/ ./
</pre>


deb http://boisson.homeip.net/debian lenny divers
ou
#deb-src http://boisson.homeip.net/source/ ./
<pre>
deb http://boisson.homeip.net/debian jessie divers
#deb-src http://boisson.homeip.net/source/ ./
</pre>
 
# apt-get update
 
Vous aurez l'erreur suivante de clé:
<pre>W: GPG error: http://boisson.homeip.net jessie Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY D78A5C23CEA8D8FF</pre>
 
(depuis peu, c'est une autre clef, la précédente CEA8D8FF présentant un chiffrage trop faible)
 
On ajoute donc la clé pour plus être em****é...
<pre>
# gpg --keyserver pgpkeys.mit.edu --recv-key  416D3F7C
gpg: requesting key 416D3F7C from hkp server pgpkeys.mit.edu
gpg: key 416D3F7C: public key "François Boisson (Depot debian, signature) <francois@boisson.homeip.net>" imported
gpg: Total number processed: 1
gpg:              imported: 1
</pre>


ou
<pre>
# gpg -a --export 416D3F7C | apt-key add -
OK
</pre>


deb http://boisson.homeip.net/debian squeeze divers
On rafraîchit et on installe:
#deb-src http://boisson.homeip.net/source/ ./


  # apt-get update
  # apt-get update && apt-get install surveillance
# apt-get install surveillance


<code>
<pre>
Lecture des listes de paquets... Fait
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Construction de l'arbre des dépendances       
Ligne 63 : Ligne 88 :
   surveillance
   surveillance
Faut-il installer ces paquets sans vérification (o/N) ?
Faut-il installer ces paquets sans vérification (o/N) ?
</code>
</pre>


L'installation prendra plus ou moins de temps en fonction de votre système (le temps de créer un md5 pour chaque fichier)
L'installation prendra plus ou moins de temps en fonction de votre système (le temps de créer un md5 pour chaque fichier)


<code>Dépaquetage de surveillance (à partir de .../surveillance_1.0-4_amd64.deb) ...
<pre>
Dépaquetage de surveillance (à partir de .../surveillance_1.0-4_amd64.deb) ...
Paramétrage de surveillance (1.0-4) ...
Paramétrage de surveillance (1.0-4) ...
Fabrication du fichier de surveillance dans /var/spool/.surveillance
Fabrication du fichier de surveillance dans /var/spool/.surveillance
Ligne 75 : Ligne 101 :
/etc/rc6.d/README: 77bf501d287d0ed2527ec54743741369
/etc/rc6.d/README: 77bf501d287d0ed2527ec54743741369
/etc/rcS.d/README: a3c07be36eacceaef3a282f2d0c708bd
/etc/rcS.d/README: a3c07be36eacceaef3a282f2d0c708bd
root@vanille:~#</code>
root@vanille:~#
</pre>


== Mise en place de surveillance ==
== Mise en place de surveillance ==
Ligne 85 : Ligne 112 :
C'est lui qui est chargé de vérifier si des fichiers sont modifiés.
C'est lui qui est chargé de vérifier si des fichiers sont modifiés.


<code bash>
<pre>
/usr/local/bin/complet:
/usr/local/bin/complet:
#!/bin/sh
#!/bin/sh
grep find /var/lib/dpkg/info/surveillance.postinst | awk '{l=l" "$2} END {print "find "l" -type f"}' | sh > /tmp/.liste_surveillance
grep find /var/lib/dpkg/info/surveillance.postinst | awk '{l=l" "$2} END {print "find "l" -type f"}' | sh > /tmp/.liste_surveillance
diff -urN /etc/liste_surveillance /tmp/.liste_surveillance</code>
diff -urN /etc/liste_surveillance /tmp/.liste_surveillance
</pre>


Il faut le rendre éxécutable:
Il faut le rendre éxécutable:
Ligne 95 : Ligne 123 :


Puis le placer dans la crontab:
Puis le placer dans la crontab:
<code>
<pre>
13 *  * * *  root  /usr/bin/surveille
13 *  * * *  root  /usr/bin/surveille
23 *  * * *  root      /usr/local/bin/complet
23 *  * * *  root      /usr/local/bin/complet
</code>
</pre>


(il n'est pas forcément nécessaire de faire cela en root)
(il n'est pas forcément nécessaire de faire cela en root)
Ligne 107 : Ligne 135 :
Par défaut, les répertoires suivants sont surveillés:
Par défaut, les répertoires suivants sont surveillés:


<code>
<pre>
find /bin -type f > /etc/liste_surveillance
find /bin -type f > /etc/liste_surveillance
find /sbin -type f >> /etc/liste_surveillance
find /sbin -type f >> /etc/liste_surveillance
Ligne 114 : Ligne 142 :
find /etc/init.d -type f >> /etc/liste_surveillance
find /etc/init.d -type f >> /etc/liste_surveillance
find /etc/rc*.d -type f >> /etc/liste_surveillance
find /etc/rc*.d -type f >> /etc/liste_surveillance
</code>
</pre>


Si vous souhaitez ajouter un répertoire complet (inclut les fichiers et sous répertoire) il suffit de l'ajouter au fichier /var/lib/dpkg/info/surveillance.postinst
Si vous souhaitez ajouter un répertoire complet (inclut les fichiers et sous répertoire) il suffit de l'ajouter au fichier /var/lib/dpkg/info/surveillance.postinst
Ligne 128 : Ligne 156 :
(Cela exécute le script «complet» et vérifie si des fichiers ont été rajoutés ou modifiés)
(Cela exécute le script «complet» et vérifie si des fichiers ont été rajoutés ou modifiés)


root@vanille:~# surveille
<pre>
Erreur:: /etc/rc0.d/README modified
root@vanille:~# surveille
1 modified files
Erreur:: /etc/rc0.d/README modified
1 modified files
</pre>


Et bien sûr ça fonctionne !
Et bien sûr ça fonctionne !
Vous devriez recevoir une confirmation par mail:
Vous devriez recevoir une confirmation par mail:


<code>
<pre>
Return-Path: <root@vanille.zehome.org>
Return-Path: <root@vanille.zehome.org>
Delivered-To: admin@zehome.org
Delivered-To: admin@zehome.org
Ligne 160 : Ligne 190 :


Erreur:: /etc/rc0.d/README modified
Erreur:: /etc/rc0.d/README modified
1 modified files</code>
1 modified files
</pre>


Si le fichier modifié est "légitimement" modifié (par vous par exemple) et pour ne plus avoir l'alerte:
Si le fichier modifié est "légitimement" modifié (par vous par exemple) et pour ne plus avoir l'alerte:
Ligne 173 : Ligne 204 :
Créez le fichier /etc/apt/apt.conf.d/99-surveillance et mettez ce qui suit dedans:
Créez le fichier /etc/apt/apt.conf.d/99-surveillance et mettez ce qui suit dedans:


DPkg::Post-Invoke {
<pre>
    "dpkg-reconfigure surveillance;"
DPkg::Post-Invoke {
};
    "dpkg-reconfigure surveillance;"
};
</pre>
 
==Rendre surveillance un peu moins bavard==
 
Par défaut, à chaque installation d'un paquet, surveillance balance dans la console la liste interminable des fichiers et md5 correspondants
 
<pre>
Fabrication du fichier de surveillance dans /var/spool/.surveillance
/bin/grep: 0643adf77b207ac4284ebf6dcbcc42b3
/bin/ping: 35c32e747c8aaa7ce2680224a4576aac
/bin/nc.traditional: e0238601dd1320b9e0c29a0c33ef91aa
...
<pre>
 
Pour éviter cela, éditez le fichier /var/lib/dpkg/info/surveillance.postinst et à la ligne 38 enlevez le "-v" de verbeux
 
# sed -i -e 's/surveille -v -i/surveille -i/g' /var/lib/dpkg/info/surveillance.postinst


== Liens externes ==
== Liens externes ==

Dernière version du 31 décembre 2017 à 11:04

Paquet surveillance

Explications

Excellent soft développé par François Boisson (Merci...)

Principe:

Il s'agit de surveiller si des fichiers importants sont modifiés, et ainsi de contrôler l'intégrité de votre système.

  • À l'installation de surveillance, des md5sums de tous les fichiers à surveiller (liste dans /var/lib/dpkg/info/surveillance.postinst) sont calculés et conservés.
  • L'éxécution de «surveille» donne la liste des fichiers modifiés; Donc si /etc/rsyslog.conf est modifié, «surveille» le signalera.
  • complet est un script additionnel indiquant si un fichier supplémentaire a été crée.
  • Pour recalculer les md5sums, faire «dpkg-reconfigure surveillance»
  • Ce n'est que si le script «surveille» est exécuté régulièrement dans crontab (par défaut toutes les heures) que vous recevrez les mails en cas de modifications.


Pour encore plus de sécurité, vous pouvez faire un md5sum du fichier de md5sums que vous mettrez dans un coin pour vérifier que tout est cohérent.

Le fait que ça soit un programme perso, non distribué par les dépôts classiques) en fait qu'il y a peu de chances qu'un pirate quelconque soit au courant de son existence

Sur un serveur classique, le fichier de md5sums fait 25984 octets, c'est très raisonnable.

Pour ce qui est de la consommation de ressources: # time surveille

real 0m2.610s user 0m2.332s sys 0m0.260s

soit 2-3 secondes de temps de calcul au total, ça peut aller comme consommation de ressources, c'est surtout du temps d'accès disque en fait, le md5sum est très rapide à calculer.


C'est un soft idéal pour un serveur. Si la machine est compromise, l'un des fichiers de démarrage est modifié et ça se verra.

cron envoie un mail à root en cas de souci.

Installation

Créez le fichier /etc/apt/sources.list.d/fran.b.list

deb http://boisson.homeip.net/debian wheezy divers
#deb-src http://boisson.homeip.net/source/ ./

ou

deb http://boisson.homeip.net/debian jessie divers
#deb-src http://boisson.homeip.net/source/ ./
# apt-get update

Vous aurez l'erreur suivante de clé:

W: GPG error: http://boisson.homeip.net jessie Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY D78A5C23CEA8D8FF

(depuis peu, c'est une autre clef, la précédente CEA8D8FF présentant un chiffrage trop faible)

On ajoute donc la clé pour plus être em****é...

# gpg --keyserver pgpkeys.mit.edu --recv-key  416D3F7C 
gpg: requesting key 416D3F7C from hkp server pgpkeys.mit.edu
gpg: key 416D3F7C: public key "François Boisson (Depot debian, signature) <francois@boisson.homeip.net>" imported
gpg: Total number processed: 1
gpg:               imported: 1
# gpg -a --export 416D3F7C | apt-key add -
OK

On rafraîchit et on installe:

# apt-get update && apt-get install surveillance
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les NOUVEAUX paquets suivants seront installés :
  surveillance
0 mis à jour, 1 nouvellement installés, 0 à enlever et 7 non mis à jour.
Il est nécessaire de prendre 15,3 ko dans les archives.
Après cette opération, 94,2 ko d'espace disque supplémentaires seront utilisés.
ATTENTION : les paquets suivants n'ont pas été authentifiés.
  surveillance
Faut-il installer ces paquets sans vérification (o/N) ?

L'installation prendra plus ou moins de temps en fonction de votre système (le temps de créer un md5 pour chaque fichier)

Dépaquetage de surveillance (à partir de .../surveillance_1.0-4_amd64.deb) ...
Paramétrage de surveillance (1.0-4) ...
Fabrication du fichier de surveillance dans /var/spool/.surveillance
/bin/chvt: 9758c05b360a24cfbf640e6146388b60
/bin/false: a24aaa03be8920b3cdfa426138eccfeb
...
/etc/rc6.d/README: 77bf501d287d0ed2527ec54743741369
/etc/rcS.d/README: a3c07be36eacceaef3a282f2d0c708bd
root@vanille:~#

Mise en place de surveillance

Script complémentaire

Il faut créer le script suivant:

C'est lui qui est chargé de vérifier si des fichiers sont modifiés.

/usr/local/bin/complet:
#!/bin/sh
grep find /var/lib/dpkg/info/surveillance.postinst | awk '{l=l" "$2} END {print "find "l" -type f"}' | sh > /tmp/.liste_surveillance
diff -urN /etc/liste_surveillance /tmp/.liste_surveillance

Il faut le rendre éxécutable:

chmod +x /usr/local/bin/complet

Puis le placer dans la crontab:

13 *   * * *   root   /usr/bin/surveille
23 *   * * *   root      /usr/local/bin/complet

(il n'est pas forcément nécessaire de faire cela en root) Ici cela fait une vérification toutes les heures de l'intégrité du système.

Modification

Par défaut, les répertoires suivants sont surveillés:

find /bin -type f > /etc/liste_surveillance
find /sbin -type f >> /etc/liste_surveillance
find /usr/bin -type f >> /etc/liste_surveillance
find /usr/sbin -type f >> /etc/liste_surveillance
find /etc/init.d -type f >> /etc/liste_surveillance
find /etc/rc*.d -type f >> /etc/liste_surveillance

Si vous souhaitez ajouter un répertoire complet (inclut les fichiers et sous répertoire) il suffit de l'ajouter au fichier /var/lib/dpkg/info/surveillance.postinst

Puis de reconfigurer le programme:

# dpkg-reconfigure surveillance

Test

Pour faire un test à la main, modifiez un fichier (ici j'ai modifié volontairement /etc/rc0.d/README) puis tapez:

(Cela exécute le script «complet» et vérifie si des fichiers ont été rajoutés ou modifiés)

root@vanille:~# surveille
Erreur:: /etc/rc0.d/README modified
1 modified files

Et bien sûr ça fonctionne ! Vous devriez recevoir une confirmation par mail:

Return-Path: <root@vanille.zehome.org>
Delivered-To: admin@zehome.org
Received: from localhost (localhost [127.0.0.1])
    by vanille.zehome.org (Postfix) with ESMTP id 3C99B6454
    for <root@vanille.zehome.org>; Fri, 5 Aug 2011 10:13:15 +0300 (EAT)
X-Virus-Scanned: Debian amavisd-new at vanille.zehome.org
Received: from vanille.zehome.org ([127.0.0.1])
    by localhost (vanille.zehome.org [127.0.0.1]) (amavisd-new, port 10024)
    with ESMTP id kkI+iP0hfMIx for <root@vanille.zehome.org>;
    Fri, 5 Aug 2011 10:13:12 +0300 (EAT)
Received: by vanille.zehome.org (Postfix, from userid 0)
    id DC8B86470; Fri, 5 Aug 2011 10:13:11 +0300 (EAT)
From: root@vanille.zehome.org (Cron Daemon)
To: admin@zehome.org
Subject: Cron <root@vanille> /usr/bin/surveille (failed)
Content-Type: text/plain; charset=UTF-8
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <20110805071311.DC8B86470@vanille.zehome.org>
Date: Fri, 5 Aug 2011 10:13:11 +0300 (EAT)

Erreur:: /etc/rc0.d/README modified
1 modified files

Si le fichier modifié est "légitimement" modifié (par vous par exemple) et pour ne plus avoir l'alerte:

# dpkg-reconfigure surveillance

Automatisation post installation

Lorsque vous installez un paquet, vous ne penserez pas toujours à lancer la commande 'dpkg-reconfigure surveillance' Voici une astuce pour que ce soit automatique:

Créez le fichier /etc/apt/apt.conf.d/99-surveillance et mettez ce qui suit dedans:

DPkg::Post-Invoke {
    "dpkg-reconfigure surveillance;"
};

Rendre surveillance un peu moins bavard

Par défaut, à chaque installation d'un paquet, surveillance balance dans la console la liste interminable des fichiers et md5 correspondants

Fabrication du fichier de surveillance dans /var/spool/.surveillance
/bin/grep: 0643adf77b207ac4284ebf6dcbcc42b3
/bin/ping: 35c32e747c8aaa7ce2680224a4576aac
/bin/nc.traditional: e0238601dd1320b9e0c29a0c33ef91aa
...

Pour éviter cela, éditez le fichier /var/lib/dpkg/info/surveillance.postinst et à la ligne 38 enlevez le "-v" de verbeux

 # sed -i -e 's/surveille -v -i/surveille -i/g' /var/lib/dpkg/info/surveillance.postinst

Liens externes

* Sujet en partie sur "surveillance" Lol 5 août 2011 à 09:15 (CDT)