Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 04-11-2020 07:11:28

epiquantique
Membre
Inscription : 05-10-2020

lister les log et trouver ce qui a changer ?

Bonjours,

Je doit souvent regarder les log pour voire ce qui a changer (surtout quand sa par en vrille...), on peux utiliser tail -f , mai bon quand il faut surveiller 10 fichier sa commence a être compliquer.

j’ignore s'il y a un moyen de faire cela autrement

l'idée est donc d'utiliser sha256sum qui permet d'avoir une clef du fichier.
bref voici le code qui fonctionne


exclude=" /var/log/ulog/syslogemu.log /var/log/cloud-init-output.log /var/log/dbconfig-common/dbc.log /var/log/dpkg.log /var/log/letsencrypt/letsencrypt.log $
tmp_1="/home/repertoire_du_script/findlist_tmp_1.txt"

#recherche des fichier,
var=`find /var/log -iname *.log`
#variable global
Found="false"

execution(){
#on passe en revue chaque fichier
for i in $var
do
        #recherche si le fichier est exclu
        for L in $exclude
        do
                if [ $L == $i ] ;then
                        Found="true"
                fi
        done
        #il n'est pas exclu on utilise sha256sum
        if [ $Found == "false" ] ;then
            #  echo `ls -la $i |awk '{print $5,$9}'`
            echo $i " : "  `sha256sum $i |cut -d"/" -f1` >> $tmp_1
        fi
#mise a zero pour l'eventuel fichier suivant
Found="false"
done
}

#affiche les entrées précédente (pas de contrôle si le fichier existe)
cat $tmp_1
#si le scan doit remplacer le précédant, oui, sinon cela rajouter à la suite.
rm -i -v $tmp_1
execution
#affichage des nouvelle entrée
cat $tmp_1
 



Seulement ça manque de mise en forme.


/var/log/fontconfig.log  :  01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/auth.log  :  4c138e257d8ee686eed3fc77ab6c07ccae857f1cf63cb8267934d34b4f4ab683
/var/log/cloud-init.log  :  01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/apache2/access.log  :  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
/var/log/apache2/error.log  :  dd97e9304c30eca171d46fc0d796a52194fd63dad0029b01aa87ada0a614ba4c
/var/log/apache2/other_vhosts_access.log  :  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
/var/log/apache2/error_php.log  :  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
/var/log/apache2/access_php.log  :  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
/var/log/alternatives.log  :  01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/bootstrap.log  :  01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/user.log  :  01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/daemon.log  :  c35ad4d187c358163d260dda3d16d0a3fb60319ee1c4ef0b359a28d41cddd8c9
/var/log/kern.log  :  01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/mysql/error.log  :  7a8b490951deec0a00b50229634ad4c1e45246d356c525a8996dcb7439e6a759
/var/log/mail.log  :  cc5edad8555426cd2af01c2358b7931113220845c85dbb801ee099d1d2db6321
 



il y a peut être une commande qui gère cela ?  (les regex ne sont pas ma tasse de thé...)

Hors ligne

#2 04-11-2020 10:22:24

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : lister les log et trouver ce qui a changer ?

epiquantique a écrit :

Seulement ça manque de mise en forme.


Tu cherches à comparer les sommes de contrôle visuellement? Les premiers caractères de la somme doivent être suffisant pour les différencier.

cat log_sha | sed -e 's/\/var\/log\/\(.*\).log.*\b\([a-z0-9]\{10\}\).*/\1 = \2/g'
 


fontconfig = 01ba4719c8
auth = 4c138e257d
cloud-init = 01ba4719c8
...



Pourquoi ne pas comparer via script les anciennes sommes et les nouvelles? Soit un résultat du genre :

fontconfig = Y
auth = N
cloud-init = Y
...



Sinon, je suppose que comparer les dates de modification des fichiers peut être une piste:

stat -c%y’ fichier_log

Dernière modification par David5647 (04-11-2020 10:22:43)

Hors ligne

#3 04-11-2020 11:29:20

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian
Noyau : Dur
(G)UI : gui gui, je zuis un doiseau
Inscription : 07-07-2008
Site Web

Re : lister les log et trouver ce qui a changer ?

Sinon, il y a logcheck, qui peut t'envoyer les changements dans les logs par mail à intervalle régulier.

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Je suis parrain linux !

Hors ligne

#4 11-11-2020 08:18:59

epiquantique
Membre
Inscription : 05-10-2020

Re : lister les log et trouver ce qui a changer ?

captnfab a écrit :

Sinon, il y a logcheck, qui peut t'envoyer les changements dans les logs par mail à intervalle régulier.



ouai super sauf qu'il faut un serveur fonctionnel pour les lires smile
Mai merci pour ta réponse


David5647

non si j'utilise sha256sum c est pour éviter tout risque.

Pourquoi ne pas comparer via script les anciennes sommes et les nouvelles? :



j'ai pas compris ta question ?

Sinon, je suppose que de comparer les dates de modification des fichier peut être une piste:



le risque est très faible, mai je préfère me fier aux contenu plutôt qu'a l'apparence, la date pouvant être modifiée.

Hors ligne

#5 11-11-2020 13:02:08

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : lister les log et trouver ce qui a changer ?

epiquantique a écrit :

Pourquoi ne pas comparer via script les anciennes sommes et les nouvelles? :


j'ai pas compris ta question ?



Que cherches tu à faire avec tes sommes? Quand tu dis :

epiquantique a écrit :

Seulement ça manque de mise en forme.


tu sous-entends que tu souhaites les comparer visuellement? Est-ce ce genre de mise en forme que tu souhaites?

David5647 a écrit :

fontconfig = 01ba4719c8
auth = 4c138e257d
cloud-init = 01ba4719c8
...



Parce-que le mieux, pour comparer des chaines, c'est encore de demander à un ordinateur de le faire::

#!/bin/bash

old_sum=$(cat user_log_sum)
new_sum=$(sha256sum /var/log/user.log | sed -e 's/^\([a-z0-9]*\b\).*/\1/g')
echo $new_sum > user_log_sum

if [ "$old_sum" = "$new_sum" ]; then
    echo "user.log n'a pas changé"
else
    echo "user.log a changé"
fi
 

Hors ligne

#6 11-11-2020 13:39:21

raleur
Membre
Inscription : 03-10-2014

Re : lister les log et trouver ce qui a changer ?

Et pourquoi ne pas utiliser les outil du paquet inotify-tools pour surveiller les modifications des fichiers logs ?

Il vaut mieux montrer que raconter.

Hors ligne

#7 11-11-2020 14:29:40

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : lister les log et trouver ce qui a changer ?

epiquantique a écrit :

il y a peut être une commande qui gère cela ?  (les regex ne sont pas ma tasse de thé...)



Tu pourrais déjà modifier le fichier /etc/rsyslog.conf pour créer un fichier de log adéquat.

En ligne

#8 16-11-2020 15:45:55

epiquantique
Membre
Inscription : 05-10-2020

Re : lister les log et trouver ce qui a changer ?

Merci pour vos réponse,

inotify-tools je l'utilise mai cela ne fait pas tout. Et surtout cela n'a aucun rapport avec la question initial.

tu sous-entends que tu souhaites les comparer visuellement? Est-ce ce genre de mise en forme que tu souhaites?



oui visuellement si c' est aligner c'est plus facile à lire et donc de trouver une erreur wink
 

Tu pourrais déjà modifier le fichier /etc/rsyslog.conf pour créer un fichier de log adéquat



Encore faut il savoir le faire. wink
et sa va encore faire un log qui finalement est déjà fait par autre chose. j'y touche pas pour le moment

De demander a une machine de contrôler une machine c'est comme un voleur pour faire comme un voleur, pourquoi tu cour ? , ben parce que tu cour out.gif

j'ai vraiment l'impression que c est juste pas possible tongue

Dernière modification par epiquantique (16-11-2020 15:46:22)

Hors ligne

#9 16-11-2020 16:04:49

Croutons
Membre
Distrib. : Debian10 Buster
Noyau : Linux 4.19.0-12-amd64
(G)UI : Mate
Inscription : 16-12-2016

Re : lister les log et trouver ce qui a changer ?

Hello si c'est visuelle tu peux utiliser meld
https://debian-facile.org/doc:programmation:meld

-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

Hors ligne

#10 17-11-2020 17:10:08

zaphir
Membre
Inscription : 10-09-2010

Re : lister les log et trouver ce qui a changer ?

Hello,

C'est dommage de se passer de "ls" qui pourtant est plus simple et explicite je trouve.


:~> ls -lh --sort=time --time=ctime /var/log/ | head -n 20
total 4,5M
-rw-r----- 1 root          adm            32K nov.  17 06:17 auth.log
-rw-r----- 1 root          adm           108K nov.  17 06:17 syslog
-rw-r----- 1 root          adm           220K nov.  17 06:09 daemon.log
-rw-r----- 1 root          adm            71K nov.  17 06:08 debug
-rw-rw-r-- 1 root          utmp           16M nov.  17 04:52 lastlog
-rw-rw-r-- 1 root          utmp          283K nov.  17 04:52 wtmp
-rw-r----- 1 root          adm           101K nov.  17 04:52 fail2ban.log
-rw-r----- 1 root          adm           4,6K nov.  17 02:11 mail.info
-rw-r----- 1 root          adm           4,6K nov.  17 02:11 mail.log
-rw-r----- 1 root          adm            565 nov.  17 02:11 mail.warn
-rw-r----- 1 root          adm           226K nov.  17 02:11 messages
-rw-r----- 1 root          adm            425 nov.  17 02:11 user.log
-rw------- 1 root          root          1,5K nov.  17 02:11 php7.3-fpm.log
-rw-r----- 1 root          adm           290K nov.  17 02:11 kern.log
-rw-r----- 1 root          adm           302K nov.  17 00:21 syslog.1
-rw-r----- 1 root          adm            25K nov.  17 00:21 syslog.2.gz
-rw-r----- 1 root          adm            23K nov.  17 00:21 syslog.3.gz
-rw-r----- 1 root          adm            23K nov.  17 00:21 syslog.4.gz
-rw-r----- 1 root          adm            23K nov.  17 00:21 syslog.5.gz
 



une idée pour un script autour de ça:
_ tu supprimes les colonnes que tu ne souhaites pas (avec un awk)
_ mets le reste dans un fichier1_tmp
_ relance le ls (apres un sleep de x min) passé dans un fichier2_tmp
_ fait un diff fichier1_tmp fichier2_tmp
_ lances-toi une 'alerte' si le diff est positif


Maintenant si tu pense que ton OS est corrompu et que tu crains que quelqu'un change manuellement la date des logs (les commandes "touch" et "date" semble être le moyen le plus accessible de le faire), tu peux restreindre l'utilisation de ces commandes à root seulement (le temps de résoudre ton problème du moins) avec ACL ou bien CHMOD.

soit avec ACL:


:~> sudo setfacl -m u:utilisateur_compromis:--- /usr/bin/touch
:~> sudo setfacl -m u:utilisateur_compromis:--- /usr/bin/date
 


soit avec CHMOD:


:~> sudo chmod 700 $(which touch) &&  sudo chmod 700 $(which date)
 



La méthode via chmod est assez radicale et n'est peut-être pas sans conséquence sur le fonctionnement du reste de l'OS (il n'est pas impossible que la commande "date" soit utilisé par le système ?), un 744 serait peut-être plus approprié, à voir...

C'était mon raisonnement à deux centimes smile

https://unix.stackexchange.com/question … te-of-file
https://stackoverflow.com/questions/161 … on-a-file/
https://www.shellhacks.com/fake-file-ac … mps-linux/
https://www.thegeekdiary.com/how-to-dis … -in-linux/

Dernière modification par zaphir (17-11-2020 17:11:04)

Hors ligne

#11 18-11-2020 01:15:14

zaphir
Membre
Inscription : 10-09-2010

Re : lister les log et trouver ce qui a changer ?

Re,

Désolé pour le double post ...
Pour répondre à la question initiale  il est possible de passer par la commande "column" qui permet de formater du texte de manière propre tant que le texte n'est pas trop funky .

Si je reprends ton ficher du message_1 en exemple voilà ce que ça donne:


 :~> cat fichier_log | column -s: -t
/var/log/fontconfig.log                       01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/auth.log                             4c138e257d8ee686eed3fc77ab6c07ccae857f1cf63cb8267934d34b4f4ab683
/var/log/cloud-init.log                       01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/apache2/access.log                   e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
/var/log/apache2/error.log                    dd97e9304c30eca171d46fc0d796a52194fd63dad0029b01aa87ada0a614ba4c
/var/log/apache2/other_vhosts_access.log      e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
/var/log/apache2/error_php.log                e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
/var/log/apache2/access_php.log               e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
/var/log/alternatives.log                     01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/bootstrap.log                        01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/user.log                             01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/daemon.log                           c35ad4d187c358163d260dda3d16d0a3fb60319ee1c4ef0b359a28d41cddd8c9
/var/log/kern.log                             01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
/var/log/mysql/error.log                      7a8b490951deec0a00b50229634ad4c1e45246d356c525a8996dcb7439e6a759
/var/log/mail.log                             cc5edad8555426cd2af01c2358b7931113220845c85dbb801ee099d1d2db6321
 




C'est plus lisible comme ça wink

Hors ligne

#12 Hier 13:09:31

epiquantique
Membre
Inscription : 05-10-2020

Re : lister les log et trouver ce qui a changer ?

Super, Merci smile

Désoler pour le retard je suis pas souvent a la maison hmm

Hors ligne

Pied de page des forums