« Surveillance » : différence entre les versions
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 | * 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 | 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 | 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> | |||
ou | ou | ||
<pre> | |||
deb http://boisson.homeip.net/debian jessie divers | |||
#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> | |||
<pre> | |||
# gpg -a --export 416D3F7C | apt-key add - | |||
OK | |||
</pre> | |||
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) | ||
< | <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:~#</ | 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. | ||
< | <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</ | 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: | ||
< | <pre> | ||
13 * * * * root /usr/bin/surveille | 13 * * * * root /usr/bin/surveille | ||
23 * * * * root /usr/local/bin/complet | 23 * * * * root /usr/local/bin/complet | ||
</ | </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: | ||
< | <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 | ||
</ | </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) | ||
<pre> | |||
root@vanille:~# surveille | |||
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: | ||
< | <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</ | 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: | ||
<pre> | |||
DPkg::Post-Invoke { | |||
"dpkg-reconfigure surveillance;" | |||
}; | |||
</pre> | |||
==Rendre | ==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 | ||
<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 | 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 | # 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.postinstLiens externes
* Sujet en partie sur "surveillance" Lol 5 août 2011 à 09:15 (CDT)