Consulter les logs : quoi, où, que rechercher

Rechercher une indication dans les logs, voilà un parcours qui n’est ptet pas évident pour certains “Nuls”.
Ceux qui “savent”, pourraient donner des exemples de ce qui est fréquent de rechercher, vers quel fichier de logs se tourner et “quoi” rechercher exactement.
Une indication d’endroit dans le fichier serait un plus. Ex. :rechercher dans les dernières lignes, ou selon la date inscrite.
Enfin, le maximum d’info sear bon à prendre.
Merci de votre participation, pour les “Nuls” :006

Edit de gerard, pour les commentaires c’est ici :
viewtopic.php?f=1&t=27589&p=273944#p273944
EDIT de Ricardo : les commentaires sur l’idée mais le débat sur les logs peut avoir lieu ici.

Salut,

Grapillé il y a quelques instants sur mon forum préféré :

Qui s’est connecté récemment

sudo grep Accepted /var/log/auth.log

Qui a tenté de se connecter récemment

sudo grep Failed /var/log/auth.log

EDIT de Ricardo sur une précision de Num’s, auteur des deux indications du dessus :
répéter l’opération sur /var/log/auth.log.0 (chez moi : …/auth.log.1) puis avec zgrep sur chaque /var/log/auth.*.gz … tant que c’est “tty” c’est du local… c’est si tu “vois” des ip “externes” associées aux tentatives, c’est qu’il y a eu essais depuis l’extérieur.

Ha! fouiller dans les logs… :119
Une commande donnée par fran.b ici : viewtopic.php?p=235964#p235964
Ce fil est très riche…

Permet de savoir combien de tentatives de connexions infructueuses ont eu lieu :

# expr `zcat /var/log/auth.log*gz | grep -c "authentication failure"` + ` cat /var/log/auth.log* | grep -c "authentication failure"`

Avant j’utilisais un petit script perso codé avec mes propres pieds pour m’envoyer les logs par email en mettant un flag WARNING dans le sujet du mail et tout et tout… Puis j’ai découvert logcheck et me suis dit : "Bordel il fait trop pitié mon script à coté de ce machin !"
Souvent ça sert à rien de réinventer la roue :confused:

[quote=“SpaTule”]Avant j’utilisais un petit script perso codé avec mes propres pieds pour m’envoyer les logs par email en mettant un flag WARNING dans le sujet du mail et tout et tout… Puis j’ai découvert logcheck et me suis dit : "Bordel il fait trop pitié mon script à coté de ce machin !"
Souvent ça sert à rien de réinventer la roue :confused:[/quote]
Intéressant ton truc, ça demande un petit développement, non ? Vas-y !

Une remarque qu’a faite fran.b sur un autre fil et qui a sa place ici :

La plupart des logs sont en droits 640, ce qui oblige à se placer en tant que root (ou avec sudo) pour pouvoir les lire.
En mettant l’utilisateur principal (le même qui a les droits ‘root’, en général), dans le groupe ‘adm’, vous permet de lire les logs en tant qu’“user”.

Quelques éléments au sujet des analyseurs de log.

Le syslog (log système) étant rapidement illisible sur un serveur un outil comme logwatch peut s’avérer très utile.
Par défaut il va se lancer tous les jours et envoyer le résultat de l’analyse des logs de la veille par mail à l’administrateur de la machine.
On peut également le lancer à la main et lui demander de changer la période d’analyse : le jour même, la semaine…
Le résultat est clair et concis.
Exemple pour un serveur : http, messagerie, ftp, ssh

 ################### Logwatch 7.3.6+cvs20080702-debian (07/02/08) #################### 
        Processing Initiated: Sun May  9 06:25:02 2010
        Date Range Processed: yesterday
                              ( 2010-May-08 )
                              Period is day.
        Detail Level of Output: 10
        Type of Output/Format: mail / text
        Logfiles for Host: host
  ################################################################## 
 
 --------------------- Cron Begin ------------------------ 

 Commands Run:
    User root:
          cd / && run-parts --report /etc/cron.hourly: 17 Time(s)
         [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm: 35 Time(s)
       /usr/local/bin/unoutilamoi: 1 Time(s)
       /usr/local/bin/unautreoutilamoi >> /dev/null: 17 Time(s)
 
 ---------------------- Cron End ------------------------- 

 
 --------------------- Dovecot Begin ------------------------ 

 
 Dovecot restarted 2 time(s).
 [Dovecot IMAP and POP3] Connections:
 ====================================
                                   Host |    POP3   |   IMAP   |   Total 
 -------------------------------------- | --------- |--------- | ---------
                              127.0.0.1 |         0 |       44 |        44
                           ipentrantes  |         0 |       38 |        38
 -------------------------------------------------------------------------
                                                  0 |       82 |        82
 
 
 Dovecot IMAP and POP3 Successful Logins:
 
   User user1@domain:   (5 IMAP)
     From 127.0.0.1: 5 Time(s)
 
   User user2@domain:   (7 IMAP)
     From add_ip: 7 Time(s)
 
   User user3@domain:   (10 IMAP)
     From add_ip: 10 Time(s)
 
   User user4@domain:   (45 IMAP)
     From add_ipp: 6 Time(s)
     From 127.0.0.1: 39 Time(s)
   Total: 45 Time(s)
 
   User user5@domain:   (12 IMAP)
     From add_ip: 12 Time(s)
 
   User user6@domain:   (3 IMAP)
     From add_ip: 3 Time(s)
 
 Total: 82 successful logins
 
 Dovecot disconnects:
    Logged out: 44 Time(s)
    in IDLE: 34 Time(s)
    no reason: 1 Time(s)
 
 **Unmatched Entries**
    dovecot: IMAP(user6@domain): Connection closed: 2 Time(s)
 
 ---------------------- Dovecot End ------------------------- 

 
 --------------------- dpkg status changes Begin ------------------------ 

 
 Installed:
    fetchmail 6.3.9~rc2-4+lenny2
 
 ---------------------- dpkg status changes End ------------------------- 

 
 --------------------- httpd Begin ------------------------ 

 0.25 MB transferred in 94 responses  (1xx 0, 2xx 70, 3xx 16, 4xx 8, 5xx 0) 
    15 Images (0.17 MB),
    74 Content pages (0.08 MB),
     5 Redirects (0.00 MB),
 
 Requests with error response codes
    404 Not Found
       /favicon.ico: 8 Time(s)
 
 ---------------------- httpd End ------------------------- 

 
 --------------------- Kernel Begin ------------------------ 

 
 1 Time(s): imklog 3.18.6, log source = /proc/kmsg started.
 
 ---------------------- Kernel End ------------------------- 

 
 --------------------- pam_unix Begin ------------------------ 

 cron:
    Sessions Opened:
       root: 98 Time(s)
 
 sshd:
    Sessions Opened:
       user: 3 Time(s)
 
 su:
    Sessions Opened:
       root -> root: 4 Time(s)
       root -> nobody: 3 Time(s)
 
 
 ---------------------- pam_unix End ------------------------- 

 
 --------------------- Postfix Begin ------------------------ 

 ****** Summary *************************************************************************************
 
       50   Reject warnings (warn_if_reject) 
 
  259.015K  Bytes accepted                           265,231
    7.356K  Bytes sent via SMTP                        7,533
  255.928K  Bytes delivered                          262,070
  193.757K  Bytes forwarded                          198,407
 ========   ================================================
 
       45   Accepted                                  97.83%
        1   Rejected                                   2.17%
 --------   ------------------------------------------------
       46   Total                                    100.00%
 ========   ================================================
 
        1   5xx Reject unknown user                  100.00%
 --------   ------------------------------------------------
        1   Total 5xx Rejects                        100.00%
 ========   ================================================
 
       50   Warn Reject HELO/EHLO                    100.00%
 --------   ------------------------------------------------
       50   Total Warn Rejects                       100.00%
 ========   ================================================
 
       38   Connections made      
       38   Disconnections        
       51   Removed from queue    
       40   Delivered             
       11   Sent via SMTP         
        2   Forwarded             
        3   Resent                
 
        4   Deliverable (address verification) 
        7   SASL authenticated messages 
 
 
 ****** Detail **************************************************************************************
 
        1   5xx Reject unknown user -----------------------------------------------------------------
        1      Virtual mailbox table
        1         domain
        1            user
        1               add_ip     host
 
       50   Warn Reject HELO/EHLO -------------------------------------------------------------------
       25      Host not found
       25         127.0.0.1        localhost
       25            host
       25      Need fully-qualified hostname
       25         127.0.0.1        localhost
       25            host
 
       40   Delivered -------------------------------------------------------------------------------
       40      domain
 
       11   Sent via SMTP ---------------------------------------------------------------------------
       11      free.fr
 
        2   Forwarded -------------------------------------------------------------------------------
        2      host
 
        4   Deliverable (address verification) ------------------------------------------------------
        3      delivers to maildir
        1         user1@domain
        1         user2@domain
        1         user3r@domain
        1      250 2.1.5 Ok
        1         bounce-debian-user-french=user2=domain@lists.debian.org
 
        7   SASL authenticated messages -------------------------------------------------------------
        7      user1@domain
        7         CRAM-MD5
        7            ip     host
 
 
 ======================================================================================================================
 Delays Percentiles              0%         25%         50%         75%         90%         95%         98%        100%
 ----------------------------------------------------------------------------------------------------------------------
 1: Pre qmgr                  0.000       0.030       0.040       0.050       0.298       3.000       3.088       6.100
 2: In qmgr                   0.000       0.000       0.000       0.000       0.000       0.000       0.000       0.010
 3: Connection setup          0.000       0.000       0.000       0.000       0.270       0.290       0.290       3.000
 4: Xmit time                 0.000       0.000       0.000       0.010       0.260       0.310       0.310       2.400
 ======================================================================================================================
 
 ---------------------- Postfix End ------------------------- 

 
 --------------------- Connections (secure-log) Begin ------------------------ 

 New Users:
    fetchmail (115)
 
 
 Changed users password:
    fetchmail changed password: 1 Time(s)
 
 Changed password expiry for users:
    fetchmail : 1 Time(s)
 
 ---------------------- Connections (secure-log) End ------------------------- 

 
 --------------------- SSHD Begin ------------------------ 

 
 Users logging in through sshd:
    user:
       add_ip: 3 times
 
 ---------------------- SSHD End ------------------------- 

 
 --------------------- vsftpd-messages Begin ------------------------ 

 
 Failed FTP Logins:
  (61.75.175.137): backup - 3 Time(s)
  (69.80.227.51): www-data - 2 Time(s)
 
 ---------------------- vsftpd-messages End ------------------------- 

 
 --------------------- Disk Space Begin ------------------------ 

 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda1             327M  122M  189M  40% /
 /dev/sda9             216G   80G  126G  39% /home
 /dev/sda8             373M   11M  343M   3% /tmp
 /dev/sda5             4.6G  833M  3.6G  19% /usr
 /dev/sda6             2.8G  803M  1.9G  30% /var
 
 
 ---------------------- Disk Space End ------------------------- 

 
 ###################### Logwatch End ######################### 

Voilà, c’est quand même lisible non ?
A noter que lorsque vous avez des tentatives de connexions sur ssh ça vous liste tout ça. Bon sur les attaques en force brute ça fait quelques lignes.

Les logs de mail : très touffu et illisibles (avec postfix/dovecot c’est mail.log).
L’outil pflogsumm débrouille tout ça relativement bien. Moi je le lance avec cron.
Petit exemple d’analyse sur la semaine précédente (/var/log/mail.log.1->cf. le fonctionnement de logrotate):


Grand Totals 
------------ 
messages 

    166   received 
    171   delivered 
     14   forwarded 
      0   deferred 
      0   bounced 
      7   rejected (3%) 
     60   reject warnings 
      0   held 
      0   discarded (0%) 

  21169k  bytes received 
  21177k  bytes delivered 
     18   senders 
     12   sending hosts/domains 
     14   recipients 
      4   recipient hosts/domains 


Per-Day Traffic Summary 
    date          received  delivered   deferred    bounced     rejected 
    -------------------------------------------------------------------- 
    May  2 2010        17         17          0          0          2  
    May  3 2010        19         18          0          0          3  
    May  4 2010        20         20  
    May  5 2010        33         34          0          0          7  
    May  6 2010        20         19  
    May  7 2010         9          9          0          0          2  
    May  8 2010        45         51          0          0         51  
    May  9 2010         3          3          0          0          2  

Per-Hour Traffic Daily Average 
    time          received  delivered   deferred    bounced     rejected 
    -------------------------------------------------------------------- 
    0000-0100           1          1          0          0          0  
    0100-0200           0          0          0          0          0  
    0200-0300           0          0          0          0          0  
    0300-0400           0          0          0          0          0  
    0400-0500           0          0          0          0          0  
    0500-0600           0          0          0          0          0  
    0600-0700           4          4          0          0          0  
    0700-0800           0          0          0          0          0  
    0800-0900           0          0          0          0          1  
    0900-1000           1          1          0          0          0  
    1000-1100           1          1          0          0          0  
    1100-1200           0          0          0          0          0  
    1200-1300           1          1          0          0          0  
    1300-1400           0          0          0          0          0  
    1400-1500           2          2          0          0          0  
    1500-1600           0          0          0          0          0  
    1600-1700           1          1          0          0          0  
    1700-1800           2          3          0          0          2  
    1800-1900           3          4          0          0          5  
    1900-2000           1          1          0          0          0  
    2000-2100           0          0          0          0          1  
    2100-2200           2          2          0          0          0  
    2200-2300           1          1          0          0          0  
    2300-2400           0          0          0          0          0  

Host/Domain Summary: Message Delivery  
 sent cnt  bytes   defers   avg dly max dly host/domain 
 -------- -------  -------  ------- ------- ----------- 
ici la liste des domaines à qui on a envoyé des mails

Host/Domain Summary: Messages Received  
 msg cnt   bytes   host/domain 
 -------- -------  ----------- 
ici la liste des domaines qui nous ont envoyé des mails

Senders by message count 
------------------------ 
Liste des "envoyeurs" classés par nombre de message

Recipients by message count 
--------------------------- 
Liste des destinaitaies par nombre de message

Senders by message size 
----------------------- 
classement par taille

Recipients by message size 
-------------------------- 
idem

message deferral detail: none 

message bounce detail (by relay): none 

message reject detail 
--------------------- 
détails des messages rejetés - dépend de la config de postfix

message reject warning detail 
----------------------------- 
détails des alertes - dépend aussi de la config de postfix

message hold detail: none 

message discard detail: none 

smtp delivery failures: none 

Warnings 
-------- 
toutes les alertes

Fatal Errors: none 

Panics: none 

Master daemon messages 
---------------------- 
      1   reload configuration /etc/postfix 

Voilà, après on peut générer des graphes de l’activité en utilisant mailgraph, script cgi couplé à une base de donnée round-robin.

Pour continuer sur les graphes : les outils webaliser et awstats sont très pratiques pour suivre le trafic sur une serveur http.

Une dernière petite chose : pour ceux qui veulent regarder leurs logs depuis une interface http, il est possible de générer une page web avec coloration syntaxique à partir d’un fichier de log. Je vous laisse réfléchir à comment faire pour récupérer le log et sortir un fichier html mis au bon endroit pour le serveur apache (ou autre) sans faire de trou de sécu.
Le résultat ressemble à ça :

Re,

[quote=“ricardo”]Une remarque qu’a faite fran.b sur un autre fil et qui a sa place ici :

La plupart des logs sont en droits 640, ce qui oblige à se placer en tant que root (ou avec sudo) pour pouvoir les lire.
En mettant l’utilisateur principal (le même qui a les droits ‘root’, en général), dans le groupe ‘adm’, vous permet de lire les logs en tant qu’“user”.[/quote]

Sommes nous sûr que cela n’ouvre pas d’autres droits ! Il serait dommage qu’après que Francois se soit donné le mal de faire tout ces tests pour sécuriser sudo nous ouvrions une brèche que les développeurs n’ont pas voulu :slightly_smiling:
Pourquoi ont-ils mis les logs en 640 ?

Bonjour,

Groupe adm :

Source : debian.org/doc/manuals/secur … 11.fr.html

Et lorsqu’on fait une recherche des fichiers appartenant au groupe adm, on ne trouve que les fichiers de log.

Pourquoi 640, pour permettre l’accès en lecture à un groupe sans permette la modification… qui ne doit être faite que par root

[quote=“micky979”]Bonjour,

Groupe adm :

Source : debian.org/doc/manuals/secur … 11.fr.html

Et lorsqu’on fait une recherche des fichiers appartenant au groupe adm, on ne trouve que les fichiers de log.

Pourquoi 640, pour permettre l’accès en lecture à un groupe sans permette la modification… qui ne doit être faite que par root[/quote]

644 aurait fait le même effet, le 0 est bien là pour interdire, non ? Ah, ces développeurs :slightly_smiling:

La mémoire vive :

Il me semble qu’il y a un outil a ne pas oublier quand on parle de log c’est tail qui permet de n’afficher que les dernières lignes, et quand on l’utilise comme ça :

# tail -qF /var/log/mail.log

On voit “en live” les échanges du serveur de mail

Salut,

[quote=“Ouranos999”]La mémoire vive :

Drole de réaction de ma bécane après avoir lancé cette commande (copié-collé)

Tu es sûr de l’avoir bien donnée ?

[quote=“ggoodluck47”]Re,

[quote=“ricardo”]Une remarque qu’a faite fran.b sur un autre fil et qui a sa place ici :

La plupart des logs sont en droits 640, ce qui oblige à se placer en tant que root (ou avec sudo) pour pouvoir les lire.
En mettant l’utilisateur principal (le même qui a les droits ‘root’, en général), dans le groupe ‘adm’, vous permet de lire les logs en tant qu’“user”.[/quote]

Sommes nous sûr que cela n’ouvre pas d’autres droits ! Il serait dommage qu’après que Francois se soit donné le mal de faire tout ces tests pour sécuriser sudo nous ouvrions une brèche que les développeurs n’ont pas voulu :slightly_smiling:
Pourquoi ont-ils mis les logs en 640 ?[/quote]Ben, quand on ajoute un “user” à un groupe, ça ne donne pas plus de droits aux autres qui font partie de ce groupe. De toutes façons, seul “root” peut ajouter cet “user”, donc si tu peux être ‘root’, tu peux faire toutes les conneries que tu veux sur la machine.
Non, perso, je pense aussi que c’est mieux que de se placer en root ou avec sudo pour lire quelque chose en graphique.
Maintenant, tu peux toujours lire les logs en tty avec nano, ok, toutefois, je préfère quand même kwrite ou autre.

Si quelqu’un veut bien prendre la suite de ce fil, au niveau de la mise à jour, il est à lui.
J’ai décidé de ne plus passer autant de temps sur le forum et de ce fait, je ne pourrai pas tenir mes engagements.