« Surveillance » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
mAucun résumé des modifications
 
(4 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 http://boisson.homeip.net/debian wheezy divers
#deb-src http://boisson.homeip.net/source/ ./
#deb-src http://boisson.homeip.net/source/ ./
</pre>


ou
ou
 
<pre>
deb http://boisson.homeip.net/debian jessie divers
deb http://boisson.homeip.net/debian jessie divers
#deb-src http://boisson.homeip.net/source/ ./
#deb-src http://boisson.homeip.net/source/ ./
</pre>


  # apt-get update
  # apt-get update
Ligne 52 : Ligne 55 :
Vous aurez l'erreur suivante de clé:
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>
<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****é...
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>


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


On rafraîchit et on installe:
On rafraîchit et on installe:
Ligne 68 : Ligne 76 :
  # apt-get update && apt-get install surveillance
  # apt-get update && apt-get install surveillance


<pre>Lecture des listes de paquets... Fait
<pre>
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Lecture des informations d'état... Fait
Ligne 83 : Ligne 92 :
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 91 : 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 101 : 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 111 : 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 123 : 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 130 : 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 144 : 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 176 : 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 189 : 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 surveillane un peu moins bavard==
==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
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
<pre>
/bin/grep: 0643adf77b207ac4284ebf6dcbcc42b3
Fabrication du fichier de surveillance dans /var/spool/.surveillance
/bin/ping: 35c32e747c8aaa7ce2680224a4576aac
/bin/grep: 0643adf77b207ac4284ebf6dcbcc42b3
/bin/nc.traditional: e0238601dd1320b9e0c29a0c33ef91aa
/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
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.bak
  # 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)