Tenshi : Analyse des logs système

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction et installation

L'analyse des fichiers de logs est un bon compromis à l'absence régulière de considération dans les entreprises pour ces fichiers qui contiennent de nombreuses informations vitales en vue de protéger les systèmes vis à vis des intrusions réalisées par les pirates à l'intérieur même des réseaux.

NDLR : ce document a été rédigé en 2006, certaines versions ainsi que certaines configurations des logiciels utilisés selon ces versions peuvent être différentes de celles qui sont mentionnées ; merci de vous reporter vers les sites officiels des projets en question en cas de problème.

Dédier une personne à cette analyse n'étant pas chose facilement réalisable économiquement dans bon nombre d'entreprises, la mise en place de logiciels qui automatisent au mieux ce traitement est un moindre mal à condition bien sûr que le nombre d'informations reportées reste dans les limites du raisonnable tout en gardant l'aspect qualitatif des alertes qui seront remontées ; ce qui nécessite une configuration fine et donc souvent complexe à mettre en oeuvre.

LogWatch, Logsentry, Logcheck et Swatch sont les plus connues de ces solutions dans le monde du libre ; nous vous proposons à travers ce document de découvrir Tenshi, un analyseur de ce type anciennement connu sous le nom de Wasabi.

Tenshi offre de multiples fonctionnalités : rapports par email, capacité de traitement importante, utilisation d'expressions régulières (regexp perl), mise en place d'exception et de filtrage.

Ces fonctionnalités sont alliées à une installation des plus simples et une souplesse de configuration qui ravira les plus rétissants à ce genre d'applicatifs : fichier unique basé sur un concept d'objets ou de groupe d'objets, syntaxe intuitive et « crontab » interne.

A noter également le peu de ressources nécessaires à cette analyse d'où la possibilité de traiter de multiples fichiers présentant un grand nombre d'enregistrements.

D'un point de vue technique, il est tout d'abord nécessaire de récupérer l'archive de la dernière version stable disponible sur le site de gentoo; lors de la rédaction de ce document cette version était la 0.4. Les autres versions sont également mises en téléchargement depuis le site officiel. Sinon, si vous êtes sous Debian, ne vous prenez pas la tête ;-).

1.1 Debian

Avec Debian, Tenshi s'installe de la manière suivante :

Command apt-get
apt-get install tenshi

1.2 Sources

Pour faire l'installation depuis les sources :

Command
root@ns30074:~ # wget http://www.gentoo.org/~lcars/tenshi/tenshi-latest.tar.gz
--01:03:14-- http://www.gentoo.org/~lcars/tenshi/tenshi-latest.tar.gz
=> `tenshi-latest.tar.gz'
Résolution de www.gentoo.org... 38.99.64.201, 66.219.59.46, 66.241.137.77
Connexion vers www.gentoo.org[38.99.64.201]:80...connect
requête HTTP transmise, en attente de la réponse...302 Found
Emplacement: http://www.gentoo.org/~lcars/tenshi/tenshi-latest.tar.gz
--01:03:16-- http://www.gentoo.org/~lcars/tenshi/tenshi-latest.tar.gz
=> `tenshi-latest.tar.gz'
Résolution de dev.gentoo.org... 140.211.166.183
Connexion vers dev.gentoo.org[140.211.166.183]:80...connect
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 19,220 [application/x-gzip]
 
100%[==========>] 19,220 71.91K/s
 
01:03:17 (71.66 KB/s) - tenshi-latest.tar.gz sauvegardé [19220/19220]

Tenshi est un programme reposant sur le langage PERL ; pour l'envoi des rapports par email, il nécessite l'installation préalable du module additionnel « Net::SMTP ».

Ce module fournit une API au protocole SMTP en ce sens ; son installation peut être réalisée via un autre module qui permet d'accéder à l'archive CPAN (Comprehensive PERL Archive Network) regroupant l'ensemble des modules homologués PERL ainsi que leurs différentes documentations.

Pour lancer la connexion à CPAN :

Command perl
root@ns30074:~/tenshi-0.4 # perl -e shell -MCPAN
 
cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support available (try 'install Bundle::CPAN')

Pour les néophytes à l'utilisation du module CPAN, vous pouvez récupérer et consulter, si vous le souhaitez, des informations relatives au module « Net::SMTP » grâce à la commande suivante :

Command
cpan> i Net::SMTP
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
Database was generated on Tue, 20 Sep 2005 01:59:21 GMT
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
ftp://ftp.pasteur.fr/pub/computing/CPAN/authors/01mailrc.txt.gz
Going to read /root/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
 
Fetching with LWP:
ftp://ftp.pasteur.fr/pub/computing/CPAN/modules/03modlist.data.gz
Going to read /root/.cpan/sources/modules/03modlist.data.gz
Going to write /root/.cpan/Metadata
Strange distribution name [Net::SMTP]
Module id = Net::SMTP
DESCRIPTION Interface to Simple Mail Transfer Protocol
CPAN_USERID GBARR (Graham Barr )
CPAN_VERSION 2.29
CPAN_FILE G/GB/GBARR/libnet-1.19.tar.gz
DSLI_STATUS adpf (alpha,developer,perl,functions)
MANPAGE Net::SMTP - Simple Mail Transfer Protocol Client
INST_FILE /usr/share/perl/5.8/Net/SMTP.pm
INST_VERSION 2.26

L'installation du module est à réaliser de la manière suivante :

Command
cpan> install Net::SMTP
Running install for module Net::SMTP
.........
/usr/bin/make install -- OK

On peut constater que l'installation a été correctement effectuée ; on peut maintenant se déconnecter de CPAN :

Command

cpan> exit


Intéressons-nous à l'archive de Tenshi que nous avons précédemment récupérée ; en premier lieu décompressez la tout en réalisant son désarchivage :

Command tar
root@ns30074:~ # tar -zxvf tenshi-latest.tar.gz
tenshi-0.4/
tenshi-0.4/tenshi.debian-init
tenshi-0.4/Makefile
tenshi-0.4/LICENSE
tenshi-0.4/README
tenshi-0.4/tenshi.conf
tenshi-0.4/tenshi.8
tenshi-0.4/tenshi
tenshi-0.4/tenshi.gentoo-init
tenshi-0.4/INSTALL
tenshi-0.4/tenshi.ebuild
tenshi-0.4/Changelog
tenshi-0.4/COPYING
tenshi-0.4/tenshi.solaris-init
tenshi-0.4/CREDITS

Accédez ensuite au répertoire ainsi récemment créé et contenant les fichiers nécessaires à l'installation de l'application :

Command

root@ns30074:~ # cd tenshi-0.4/


Listez le répertoire pour prendre connaissance de son arborescence :

Command
root@ns30074:~/tenshi-0.4 # ls
 
Changelog CREDITS LICENSE README tenshi.8 tenshi.debian-init tenshi.gentoo-init
COPYING INSTALL Makefile tenshi tenshi.conf tenshi.ebuild tenshi.solaris-init

Les deux opérations suivantes consistent à créer un utilisateur « tenshi » et un groupe du même nom qui régiront l'exécution de Tenshi sur votre système :

Command

root@ns30074:~/tenshi-0.4 # useradd tenshi
root@ns30074:~/tenshi-0.4 # groupadd tenshi


Avant de procéder à l'installation proprement dite, il est nécessaire, suivant le système d'exploitation et la distribution qui y sont présents, d'ajuster la configuration du fichier « Makefile » ; il a été pour ma part nécessaire de changer le chemin d'installation des pages de manuel en modifiant la ligne numéro 9 du fichier sur une « debian-like » :

Command
root@ns30074:~ # updatedb | locate "man8/" | more
/usr/share/man/man8/update-passwd.8.gz
 
root@ns30074:~/tenshi-0.4 # vi Makefile

Remplacer « mandir = /usr/man » par « mandir = /usr/share/man/ ».

Vous pouvez maintenant installer Tenshi sur le système :

Command
root@ns30074:~/tenshi-0.4 # make install
install -D tenshi /usr/sbin/tenshi
[ -f /etc/tenshi/tenshi.conf ] || \
install -g root -m 0644 -D tenshi.conf /etc/tenshi/tenshi.conf
install -d /usr/share/doc/tenshi-0.4
install -m 0644 README INSTALL CREDITS LICENSE COPYING Changelog /usr/share/doc/tenshi-0.4/
install -g root -m 0644 tenshi.8 /usr/share/man//man8/
install -g root -m 755 -d /var/lib/tenshi

2 Configuration

Dissection du fichier de configuration partie par partie afin de comprendre les tenants et les aboutissants du fonctionnement de Tenshi, ce qui nous permettra également de faire la connaissance des mécanismes qui régissent l'analyse des logs.

Une fois l'installation réalisée, nous pouvons passer à l'étape suivante, à savoir la configuration : celle-ci s'opère par l'intermédiaire d'un fichier unique dénommé « tenshi.conf » et présent sous le chemin « /etc/ tenshi/tenshi.conf »

Command vi

root@ns30074:~/tenshi-0.4 # vi /etc/tenshi/tenshi.conf


On retrouve en début de fichier les configurations dites « génériques » avec notamment le positionnement de l'utilisateur « tenshi » et du groupe « tenshi » précédemment évoqués, créés sur le système et qui seront les propriétaires des processus liés au lancement ultérieur de Tenshi :

Configuration File /etc/tenshi/tenshi.conf
##
## tenshi 0.4 sample conf
##
 
# general settings
 
set uid tenshi
set gid tenshi
<syntaxhighlight lang=text>}}
 
La ligne de configuration suivante nécessite quelques ajustements, par défaut on trouve « set pidfile /var/run/tenshi.pid », or les fichiers régissant les PID sont localisés dans le répertoire « /var/run/ » qui appartient par défaut à l'utilisateur « root » :
{{command|ls|<syntaxhighlight lang=text>
ls -l /var/ | grep run
drwxr-xr-x 17 root root 4096 2006-06-16 07:57 run

Les opérations suivantes sont alors à réaliser pour résoudre ce problème :

  • création d'un répertoire spécifique au PID de Tenshi,
Command mkdir

root@ns30074:~/tenshi-0.4 # mkdir /var/run/tenshi


  • positionnement des droits nécessaires à la création future des fichiers PID dans ce répertoire lors du lancement de Tenshi,
Command chown

root@ns30074:~/tenshi-0.4 # chown tenshi:root /var/run/tenshi/


  • vérification de la bonne tenue de l'opération précédente :
Command ls
root@ns30074:~/tenshi-0.4 # ls -l /var/run/ | grep tenshi
drwxr-xr-x 2 tenshi root 4096 2006-06-16 01:49 tenshi

Il ne reste plus ensuite qu'à remplacer, dans le fichier de configuration, la ligne « set pidfile /var/run/tenshi.pid » par « set pidfile /var/run/tenshi/tenshi.pid » afin d'éviter les avertissements relatifs au problème évoqué lors des prochains lancements de Tenshi.

La suite de la configuration permet de définir les fichiers de logs qui vont être surveillés et dont les alertes vont vous être reportées ; par défaut on retrouve les deux lignes suivantes :

Configuration File /etc/tenshi/tenshi.conf
set logfile /var/log/messages
set logfile /var/log/mail.log

Idéalement, et à ajuster selon le contexte de votre distribution en ce qui concerne la gestion du « logging » des différents événements par « syslogd » ou autres, vous pouvez ajouter les lignes suivantes pour rendre cette liste la plus exhaustive possible et l'analyse plus efficace :

Configuration File /etc/tenshi/tenshi.conf
set logfile /var/log/syslog
set logfile /var/log/sulog
set logfile /var/log/user.log
set logfile /var/log/auth.log

Viennent maintenant quelques optimisations que vous pouvez laisser par défaut au contraire de la définition du serveur SMTP qui sera utilisé pour l'envoi des rapports si vous ne souhaitez pas utiliser celui par défaut tournant sur « localhost » donc localement :

Configuration File /etc/tenshi/tenshi.conf
set sleep 5
set limit 800
set pager_limit 2
set mask ___
set mailserver mail.deimos.fr
set subject Tenshi report
set hidepid on

Tenshi a la particularité singulière de ne pas utiliser la « crontab » du système pour son fonctionnement ; il est donc possible de configurer différents éléments d'automatisation directement dans le fichier « tenshi.conf » et cela selon plusieurs critères.

Les éléments de type « queue » sont à mettre en place via la syntaxe suivante : « set queue [] » ; le sujet par défaut est « tenshi report » si vous n'en précisez pas de spécifiques.

On peut voir ci-dessous 6 éléments configurant l'envoi depuis « webmaster@deimos.fr » vers « deimos@deimos.fr » selon des fréquences et des périodes différentes dans la journée en fonction de leur criticité.

Pour l'élément « mail », envoi programmé à 18h30 d'un rapport et cela tous les jours :

Configuration File /etc/tenshi/tenshi.conf

set queue mail webmaster@deimos.fr deimos@deimos.fr [30 18 * * *]


Pour l'élément « nf », envoi programmé toutes les trente minutes d'un rapport et cela tous les jours :

Configuration File /etc/tenshi/tenshi.conf

set queue nf webmaster@deimos.frt deimos@deimos.fr [*/30 * * * *]


Pour l'élément « report », envois programmés toutes les 2 heures dans l'intervalle compris entre 9 heures et 17 heures d'un rapport et cela tous les jours :

Configuration File /etc/tenshi/tenshi.conf

set queue report webmaster@deimos.frt deimos@deimos.fr [0 9-17/2 * * *]


Pour l'élément « misc », envois programmés dans les mêmes conditions que l'élément précédent :

Configuration File /etc/tenshi/tenshi.conf

set queue misc webmaster@deimos.fr deimos@deimos.fr [0 9-17/2 * * *]


Pour l'élément « critical », envoi programmé immédiatement à chaque occurrence identifiée :

Configuration File /etc/tenshi/tenshi.conf

set queue critical webmaster@deimos.fr deimos@deimos.fr [now]


Pour l'élément « root », envoi programmé immédiatement à chaque occurrence identifiée :

Configuration File /etc/tenshi/tenshi.conf

set queue root webmaster@deimos.fr deimos@deimos.fr [now]


L'envoi des rapports vers des utilisateurs multiples est également possible à configurer ; il suffit pour cela de remplacer « deimos@deimos.fr » par « deimos@deimos.fr , root@deimos.fr » par exemple.

On trouve à la suite du fichier les exceptions qui permettront de ne pas reporter des informations ne présentant pas d'intérêt ; elles sont envoyées vers un élément « trash » qui ne fait pas parti de la « contrab » d'envoi des rapports :

Configuration File /etc/tenshi/tenshi.conf
trash ^hub.c
trash ^usb.c
trash ^uhci.c
trash ^sda
trash ^Initializing USB
trash ^scsi0 : SCSI emulation
trash ^Vendor:
trash ^Type:
trash ^Attached scsi removable
trash ^SCSI device sda
trash ^sda: Write
trash ^/dev/scsi
trash ^WARNING: USB
trash ^USB Mass Storage
trash ^/dev
trash ^ISO
trash ^floppy0
trash ^end_request
trash ^Directory
trash ^I/O error: dev 08:(.+), sector

Dans le même registre, on supprime les indications pour les répétitions des enregistrements :

Configuration File /etc/tenshi/tenshi.conf
repeat ^(?:last message repeated|above message repeats) (\\d+) time

Un groupe d'exemple pour le service SSHD ; définition du groupe :

Configuration File /etc/tenshi/tenshi.conf
group ^sshd(?:\(pam_unix\))?:

Toutes les occurrences de la chaîne de caractère « sshd: fatal: Timeout before authentication for » quels que soient les caractères suivants indiquant qu'une session SSH a été close pour une durée d'inactivité trop longue , ; cela sera enregistré dans les rapports appartenant à l'élément « report » :

Configuration File /etc/tenshi/tenshi.conf
report ^sshd: fatal: Timeout before authentication for (.+)

Toutes les occurrences de la chaîne de caractère « critical ^sshd: Illegal user » indiquant qu'un nom d'utilisateur non conforme au système a été utilisé pour l'authentification SSH ; cela sera enregistré dans les rapports appartenant à l'élément « critical » :

Configuration File /etc/tenshi/tenshi.conf
critical ^sshd: Illegal user

Toutes les occurrences de la chaîne de caractère « sshd: Connection from » quels que soient les caractères suivants indiquant une connexion SSH établie ; cela sera enregistré dans les rapports appartenant à l'élément « report » :

Configuration File /etc/tenshi/tenshi.conf
report ^sshd: Connection from (.+)

Toutes les occurrences de la chaîne de caractère « sshd: Connection closed » quels que soient les caractères suivants indiquant une session SSH fermée ; cela sera enregistré dans les rapports appartenant à l'élément « report » :

Configuration File /etc/tenshi/tenshi.conf
report ^sshd: Connection closed (.+)

Toutes les occurrences de la chaîne de caractère « sshd: Closing connection » quels que soient les caractères suivants indiquant la fermeture en cours d'une connexion SSH ; cela sera reporté dans les rapports appartenant à l'élément « report » :

Configuration File /etc/tenshi/tenshi.conf
report ^sshd: Closing connection (.+)

Toutes les occurrences de la chaîne de caractère « sshd: Found matching (.+) key: (.+) » quels que soient les caractères suivants et intemédiaires indiquant que la clé proposée pour l'authentification SSH a été trouvée dans la liste des clés du système ; cela sera enregistré dans les rapports appartenant à l'élément « report » :

Configuration File /etc/tenshi/tenshi.conf
report ^sshd: Found matching (.+) key: (.+)

Toutes les occurrences de la chaîne de caractère « sshd: Accepted publickey » quels que soient les caractères suivants indiquant que la clé publique utilisée pour l'ouverture de session SSH a été acceptée ; cela sera enregistré dans les rapports appartenant à l'élément « report » :

Configuration File /etc/tenshi/tenshi.conf
report ^sshd: Accepted publickey (.+)

Toutes les occurrences de la chaîne de caractère « sshd: Accepted rsa for (.+) from (.+) port (.+) » quels que soient les caractères suivants et intermédiaires indiquant que la clé RSA proposée a été acceptée ; cela sera enregistré dans les rapports appartenant à l'élément « report » :

Configuration File /etc/tenshi/tenshi.conf
report ^sshd: Accepted rsa for (.+) from (.+) port (.+)

Toutes les occurrences de la chaîne de caractère « sshd\(pam_unix\): session opened for user root by root\(uid=0\) » indiquant l'ouverture d'une session SSH avec le compte root depuis le compte root ; cela sera enregistré dans les rapports appartenant à l'élément « root » :

Configuration File /etc/tenshi/tenshi.conf
root ^sshd\(pam_unix\): session opened for user root by root\(uid=0\)

Toutes les occurrences de la chaîne de caractère « sshd\(pam_unix\): session opened for user root by \(uid=0\) » indiquant l'ouverture d'une session SSH avec le compte root ; cela sera enregistré dans les rapports appartenant à l'élément « root » :

Configuration File /etc/tenshi/tenshi.conf
root ^sshd\(pam_unix\): session opened for user root by \(uid=0\)

Et finalement la fermeture du groupe sshd :

Configuration File /etc/tenshi/tenshi.conf
group_end

Sur les mêmes principes, plusieurs autres groupes sont à définir en fonction de votre système et de ses applicatifs/services.

Le service « Sendmail » avec :

Configuration File /etc/tenshi/tenshi.conf
group ^sendmail:
mail ^sendmail: (.+): to=(.+),(.+)relay=(.+),(.+)stat=Sent(.+)
mail ^sendmail: (.+): to=(.+),(.+)relay=(.+),(.+)stat=Sent
mail ^sendmail: (.+): from=(.+),(.+)relay=(.+)
mail ^sendmail: STARTTLS=client(.+)
mail ^sendmail
group_end

Le service « Sm-mta » :

Configuration File /etc/tenshi/tenshi.conf
group ^sm-mta:
mail ^sm-mta: (.+): to=(.+),(.+)delay=(.+)
mail ^sm-mta: (.+): to=(.+),(.+)relay=(.+),(.+)stat=Sent(.+)
mail ^sm-mta: (.+): to=(.+),(.+)relay=(.+),(.+)stat=Sent
mail ^sm-mta: (.+): to=(.+),(.+)relay=local(.+)stat=Sent(.+)
mail ^sm-mta: (.+): to=(.+),(.+)relay=local(.+)stat=Sent
mail ^sm-mta: (.+): to=(.+),(.+)stat=Sent(.+)
mail ^sm-mta: (.+): to=(.+),(.+)stat=Sent
mail ^sm-mta: (.+): from=(.+),(.+)relay=local(.+)
mail ^sm-mta: (.+): from=(.+),(.+)relay=(.+)
mail ^sm-mta: STARTTLS=server(.+)
mail ^sm-mta: STARTTLS=client(.+)
trash ^sm-mta:.+User unknown
mail ^sm-mta: ETRN
mail ^sm-mta
group_end

Le service « Ipop3d » avec :

Configuration File /etc/tenshi/tenshi.conf
group ^ipop3d:
mail ^ipop3d: Login user=(.+)
mail ^ipop3d: Logout user=(.+)
mail ^ipop3d: pop3s SSL service init from (.+)
mail ^ipop3d: pop3 service init from (.+)
mail ^ipop3d: Auth user=(.+)
mail ^ipop3d: Command stream end of file, while reading
mail ^ipop3d: Command stream end of file while reading
mail ^ipop3d: AUTHENTICATE LOGIN failure host=(.+)
mail ^ipop3d: AUTHENTICATE PLAIN failure host=(.+)
mail ^ipop3d: Login failed
mail,critical ^ipop3d:
group_end

Le service « Imapd » avec :

Configuration File /etc/tenshi/tenshi.conf
group ^imapd:
mail ^imapd: Login user=(.+)
mail ^imapd: Logout user=(.+)
mail ^imapd: port (.+) service init from (.+)
mail ^imapd: imaps SSL service init from (.+)
mail ^imapd: Command stream end of file, while reading
mail ^imapd: Command stream end of file while reading
mail ^imapd: Authenticated user=(.+)
mail ^imapd: AUTHENTICATE LOGIN failure host=(.+)
mail ^imapd: AUTHENTICATE PLAIN failure host=(.+)
mail ^imapd: Autologout(.+)
mail ^imapd: Login failed
mail,critical ^imapd:
group_end

Le service « login\(pam_unix\) » avec :

Configuration File /etc/tenshi/tenshi.conf
group ^login\(pam_unix\):
critical ^login\(pam_unix\): session opened for user root by root\(uid=0\)
critical ^login\(pam_unix\): session opened for user root by \(uid=0\)
report ^login\(pam_unix\): session closed for user (.+)
report ^login\(pam_unix\): session opened for user (.+)
group_end

Le service « su(pam_unix) » avec :

Configuration File /etc/tenshi/tenshi.conf
group ^su\(pam_unix\):
root,report ^su\(pam_unix\): session opened for user root
root,report ^su\(pam_unix\): session closed for user root(.+)
report ^su\(pam_unix\): session opened for user (.+)
report ^su\(pam_unix\): session closed for user (.+)
group_end

Ensuite tous les enregistrements de la chaîne de caractère « netfilter » pour le filtrage seront envoyés vers l'élément « nf » :

Configuration File /etc/tenshi/tenshi.conf
nf ^netfilter

Tous les enregistrements de la chaîne de caractère « sudo » pour les commandes exécutées sous un autre compte que le compte actif du SHELL seront envoyés vers l'élément « critical » :

Configuration File /etc/tenshi/tenshi.conf
critical ^(?:/usr/bin)?sudo:

Tous les enregistrements de la chaîne de caractère « init » pour les lancements de service seront envoyés vers l'élément « critical » :

Configuration File /etc/tenshi/tenshi.conf
critical ^init

Tous les enregistrements de la chaîne de caractère « passwd\(pam_unix\): » pour les changements de mots de passe seront envoyés vers l'élément « report » :

Configuration File /etc/tenshi/tenshi.conf
report ^passwd\(pam_unix\):

Tous les autres enregistrements ne correspondant pas aux expressions régulières d'identification précédentes seront envoyés vers l'élément « misc » :

Configuration File /etc/tenshi/tenshi.conf
misc .*

3 Utilisation

Configurations faites, on passe à l'utilisation de Tenshi en se mettant dans des cas concrets d'alertes afin de recevoir les alarmes correspondantes sur un email prédéfini à condition que les configurations de base aient bien été effectuées prélablement.

Tenshi fonctionne en tant que service, ce qui implique notamment que vous pouvez fermer le terminal où vous l'avez lancé sans pour autant que cela ne l'arrête (équivalent à l'ajout du caractère « & » en fin de commande SHELL).

Lors d'un « ls » précédent, vous aurez peut être remarqué la présence de 3 scripts d'initialisation pour les systèmes d'exploitation Linux (distribution Debian et Gentoo) et Solaris :

Command
root@ns30074:~/tenshi-0.4 # ls | grep init
 
tenshi.debian-init
tenshi.gentoo-init
tenshi.solaris-init

Nous utilisons actuellement une distribution de type « Debian-like » (Ubuntu), il faut alors copier le script d'initialisation correspondant dans le répertoire « /etc/init.d/ » qui contient l'ensemble des scripts d'initialisation des services du système :

Command
root@ns30074:~/tenshi-0.4 # cp tenshi.debian-init /etc/init.d/tenshi

Testez ce script :

Command
root@ns30074:~/tenshi-0.4 # sh /etc/init.d/tenshi
Usage: /etc/init.d/tenshi {start|stop|restart}

Ajoutez des droits d'exécution au script :

Command

root@ns30074:~/tenshi-0.4 # chmod +x /etc/init.d/tenshi


Effectuez le démarrage du « daemon » Tenshi :

Command
root@ns30074:~/tenshi-0.4 # /etc/init.d/tenshi start
Starting log monitor: tenshi.

Testez le lancement effectif de Tenshi :

Command ps
root@ns30074:~ # ps auwx | grep tenshi
tenshi 19424 0.0 1.0 8260 5312 ? Ss 01:51 0:00 /usr/bin/perl /usr/sbin/tenshi
tenshi 19425 0.0 0.1 3176 676 ? S 01:51 0:00 /usr/bin/tail -q --follow=name --retry -n 0 /var/log/messages /var/log/mail.log

Arrêtez Tenshi :

Command
root@ns30074:~/tenshi-0.4 # /etc/init.d/tenshi stop
Stopping log monitor: tenshi.

Arrêt forcé de Tenshi en cas de problème avec les scripts :

Command killall
root@ns30074:~/tenshi-0.4 # killall -9 tail tenshi

Redémarrage de Tenshi :

Command
root@ns30074:~/tenshi-0.4 # /etc/init.d/tenshi restart
Stopping log monitor: tenshi.
Starting log monitor: tenshi.

Tenshi peut également être lancé hors des scripts d'initialisation afin par exemple de tester un fichier de configuration ou de lancer le service avec un fichier alternatif. Le mode « Debug » est également possible entre autres, et sera d'une grande utilité si vous rencontrez un problème notamment avec l'envoi des mails,

Command
root@ns30074:~/tenshi-0.4 # tenshi -h
tenshi 0.4
Copyright 2004-2006 Andrea Barisani
and Rob Holland
 
Usage: /usr/sbin/tenshi [-c conf_file] [-C|-d|-f|-p] [-P pid_file]
-c configuration file
-C test configuration syntax
-d debug mode
-f foreground mode
-p profile mode
-P pid file
-h this help

Dernier point à aborder et non des moindres puisque ce sont les rapports avec les alertes qui vous seront envoyées par email. Le premier est un rapport issu de l'élément « report » pour une fermeture due à une inactivité trop longue sur une session active du service SSH :

Command
From: webmaster@deimos.fr
To: deimos@deimos.fr
Date: Sun, 18 Jun 2006 03:08:33 +0200
X-tenshi-version: 0.4
X-tenshi-hostname: ns30074
Subject: tenshi report [report]
 
 
ns30074:
1: sshd: fatal: Timeout before authentication for ___

Le second exemple est un rapport pour l'élément « misc » avec une erreur d'authentification SSH, ainsi que l'exécution d'une commande par la « crontab » système et l'ouverture d'une session « pam_unix » pour le compte root associé à cette précédente entrée « */1 * * * * root /usr/local/rtm/bin/rtm 41 >/dev/null 2>/dev/null » de la « crontab » :

Command
From: webmaster@deimos.fr
To: deimos@deimos.fr
Date: Sun, 18 Jun 2006 02:59:07 +0200
X-tenshi-version: 0.4
X-tenshi-hostname: ns30074
Subject: tenshi report [misc]
 
 
ns30074:
1: sshd: error: PAM: Authentication failure for root from kiko.adsl.nerim.net
1: /USR/SBIN/CRON: (root) CMD (/usr/local/rtm/bin/rtm 41 >/dev/null 2>/dev/null)
1: CRON: (pam_unix) session opened for user root by (uid=0)

Le système d'analyse des logs est fonctionnel, il ne vous reste maintenant plus qu'à adapter la configuration en fonction de vos besoins et du temps que vous souhaitez allouer à la lecture des rapports qui en sont issus.

Si vous souhaitez des informations complémentaires, deux listes de diffusion sont à votre disposition :

la première concerne les discussions générales, pour vous y inscrire il suffit d'envoyer un message à tenshi-user+subscribe@lists.inversepath.com les messages pour la liste sont à envoyer à tenshi-user@lists.inversepath.com

la seconde est dédiée aux évolutions de Tenshi, inscription sur tenshi-announce+subscribe@lists.inversepath.com et messages « liste » sur tenshi-announce@lists.inversepath.com

4 References

http://www.secuobs.com/news/07042008-tenshi.shtml