Surveillance

De Le Wiki de debian-fr.xyz
Aller à : navigation, rechercher

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
...
<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

Lol 5 août 2011 à 09:15 (CDT)