
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.