Gestion des logs

 


Syslog distant

Vous ne connaissez rien à syslog : jetez un coup d'oeil ici. maintenant que vous êtes bon, voila ce qu'il faut modifier dans une machine OpenBSD pour envoyer ses logs à distance, afin de les centraliser sur un seul serveur pour les traiter en bloc.

Sur l'émetteur :    Modifiez /etc/syslog.conf et ajoutez une ligne :
*.*                    @machine_de_destination
puis relancez syslogd (kill -HUP pid_de_syslog)

Sur le récepteur :
Modifiez dans /etc/rc.conf      syslogd_flags=  en syslogd_flags= -u
puis relancez syslogd (kill -HUP pid_de_syslog)
N'oubliez pas d'ajouter un passage dans le FireWall (Port UDP/514):
pass in quick on xl0 proto udp from 10.1.1.1/32 to any port = 514 flags S keep state
puis relancez pf (pfctl -R /etc/pf.conf)

Attention ! Vous devenez sujet à une attaque de type Syslog bombing. Vous acceptez d'enregistrer, sur votre système de fichiers et en utilisant votre CPU, des données externes. Si vous acceptez n'importe quelle machine émettrice, elle peut vous noyer sous des flots de messages de logs, alors Méfiance!!!

newsyslog
newsyslog permet de gérer les fichiers de log, pour cela newsyslog se place dans la crontab (en fait il y est par défaut) et vérifie ce qu'il doit faire tourner, en utilisant le fichier /etc/newsyslog.conf.
Voici un exemple de ce fichier.

# configuration file for newsyslog
#
# logfilename     owner.group     mode ngen size     time  [ZB]
/var/log/ppp.log                         640     7     250     *     Z
/var/log/pflog                             600     3       *       24     ZB     /var/run/pflogd.pid SIGUSR1
#
# Uncomment to rotate apache logs
#
#/var/www/logs/access_log 644 7 250 * Z /var/www/logs/httpd.pid SIGUSR1

logfilename correspond au nom du fichier à faire tourner.
owner.group le nom du propriétaire et du groupe que va avoir le fichier de log une fois qu'il a tourné.
mode les droits qu'il obtient.
ngen le nombre de copies, que vous souhaitez garder. La première est le_fichier.tgz.0, puis .1 ....etc.
size La taille du fichier qui va déclencher la rotation. Dans l'exemple ppp.log va tourenr lorsque la taille du fichier atteint ou dépasse 250.
time indique en heures quand le fichier doit tourner (24 pour 24 heures).
[ZB] pour le type de fichiers. Z pour les fichiers de log B si vous avez des binaires. 

Enfin il est possible de terminer en indiquant le fichier de pid correspondant et de faire suivre du signal à envoyer au processus en ajoutant à la fin SIGUSR1 par exemple.
On peut aussi indiquer une commande à effectuer à la place de l'indication du pid.

La crontab peut être lancée toutes les heures avec une ligne de ce type :
0        *        *        *        *    /usr/bin/newsyslog

Il est toujours possible de lancer newsyslog à la main, il y a alors certaines options possibles.
Pour en savoir plus : man newsyslog.


© Philippe Schwarz - Philippe Chadefaux - $Id: logs.htm,v 1.2 2003/04/22 12:06:24 phil Exp $ -