L’analyse des logs Squid avec Calamaris

I. Présentation

Calamaris est un analyseur de logs, sa fonction est de lire les fichiers de logs de Squid et de les interpréter pour une lecture plus rapide et plus claire. Calamaris renseigne d’avantage sur la nature des échanges entre le réseau local et le net que sur l’identification des utilisateurs et leurs navigations individuelles à l'inverse de SARG dans ce tutoriel : Mise en place de SARG.

L’utilité d’avoir de telles analyses est de se renseigner sur ce qui passe sur le réseau vers le net. Le type d’échange effectué comme le type de requête, le type de contenu, les extensions visitées ou leur nombre peut servir à mieux gérer et comprendre le réseau.

II. Fonctionnement

Calamaris affiche les informations des logs sur l'ensemble des requêtes, à l'inverse de SARG qui expose les logs IP par IP.

Son fonctionnement est assez simple. Il lit les données contenues dans les logs squid (/var/log/squid3/access.log), coupe et recoupe les lignes une par une afin d'en tirer des informations et de les trier, et ainsi en présenter un contenu condensé et clair pour une consultation simple.

III. Installation

Il faut commencer par installer calamaris et un serveur web apache2 qui permettra d’accéder à son interface graphique :

apt-get update # Pensez à toujours mettre votre liste de paquets à jour
apt-get install calamaris

Calamaris comporte deux modes de consultation, soit en ligne de commande (où les informations sont difficilement exploitables en grand nombre) et par interface graphique (mail, page web ..). Son exécution et ces options dépendes soit du fichier de configuration, soit des paramètres lancés avec la ligne de commande qui exécute calamaris.

Le fichier de configuration de calamaris se trouve dans /etc/calamaris et son fichier d'exécution se trouve dans /usr/bin/.

IV. Utilisation

A. Lancer une analyse basique

Vous devez donc exécuter calamaris en lui précisant l'emplacement du fichier de log de que voulez analyser :

cat /var/log/squid3/access.log | calamaris

Voici une petit partie du résultat que vous obtiendrez :

calamaris1

Cette image ne contient qu'une toute petit partie de ce qui est faisable avec Calamaris. C'est un extrait du sommaire qui présente le nombre de lignes/requêtes traitées, la quantité de bande passante utilisée par ces lignes, l'efficacité du proxy pour ces lignes ... Une quantité d'autres informations sont exploitables avec Calamaris.

B. Le format de visionnage des informations

L'exploitation des informations est plus rapide et plus efficace sous une interface graphique. En ligne de commande, il est possible de sauvegarder les informations de l'analyse de logs dans une page web avec cette commande :

cat /var/log/squid3/access.log | calamaris --output-format html > /var/www/calamaris.html

Les informations seront alors rangées dans des tableaux et seront ainsi plus lisibles. Vous pouvez aussi afficher les informations sous formes de tableaux et de graphiques grâce à ces lignes (nécessite un serveur web apache2 opérationnel) :

mkdir /var/www/calamaris
touch /var/www/calamaris/index.html
cat /var/log/squid3/access.log | calamaris --output-format html --output-path /var/www/calamaris

Pour avoir le résultat avec des graphiques :

cat /var/log/squid3/access.log | calamaris --output-format html,graph --output-path /var/www/calamaris

Pour avoir le résultat par mail :

cat /var/log/squid3/access.log | calamaris --output-format mail --output-path /var/www/calamaris

 

C. Filtrer les IP de l'analyse

Il est parfois possible que les administrateurs veuillent exclure certaines IP de l'analyse (par exemple si ils veulent évaluer la quantité de bande passante utilisée par les utilisateurs et que leurs serveurs en sont de gros consommateurs).

Cette option nécessite le module perl NetAddr::IP. Pour l'installer :

apt-get install perl-CPAN
cpan install NetAddr::IP

Il est alors possible de filtrer les IP pour les exclure ou les inclure grâce à cette commande :

cat /var/log/squid3/access.log | calamaris --output-format html --output-path /var/www/calamaris --ipfilter-include 192.168.0.0/24:192.168.1.0/24

Ici, l'analyse se porte sur les réseaux 192.168.0.0 et 192.168.1.0 (c'est pour l'exemple), nous devons donc les séparer par des ":".

Dans l'analyse, vous verrez alors que l'analyse s'est portée sur une partie de réseau (ici dans le cadre d'un include) :

calamaris2

D. Les différents type de rapports

Voici la liste exhaustive des rapports que propose calamaris. Par défaut, tous sont affichés.

calamaris3

Sur une grande analyse, cela peut faire beaucoup (trop) d'informations et il est possible de ne pas afficher tel ou tel chapitre de l'analyse pour la rendre plus claire :

cat /var/log/squid3/access.log | calamaris --output-format html --output-path /var/www/calamaris -S 1,2,10,11,12,13,16,17,18,20

L'argument -S suivi des numéros de chapitres séparés par une virgule suffit à n'afficher que les chapitres voulus dans l'analyse.

V. Aller plus loin

Avec crontab et des scripts bash, il est possible d'automatiser l'exécution des scripts qui s’excuseront alors tous les jours, semaines ou mois avec des analyses personnalisées (qui n'auront que les informations voulus, à la forme voulue, etc ...).

La commande "dpkg-reconfigure calamaris" permet d'automatiser cette tâche (les scripts se feront automatiquement).

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Fondateur d'IT-Connect.fr et d'Information-security.fr. Auditeur sécurité chez Amossys.

    mickael has 478 posts and counting.See all posts by mickael

    Une pensée sur “L’analyse des logs Squid avec Calamaris

    • Petite coquille dans la partie « V. Aller plus loin » : Il fallait écrire « s’exécuteront » à la place de « s’excuseront »

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

     

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.