syslog-ng offre beaucoup plus de possibilité que son grand frère syslog

Pour une liste détaillée des features je vous invite à aller consulter le site :

http://www.balabit.com/products/syslog_ng/

La première chose qu'un “bon pirate” fait une fois qu'il est entré sur votre serveur : c'est d'aller nettoyer les logs systèmes. Or si vous ne faites pas une copie de ces logs impossible pour vous de pouvoir comprendre ce qu'il a fait.

Je vous propose donc d'exporter vos logs vers un serveur qui centralise l'ensemble des logs de vos machines et ce via un tunnel ssl ; pour que les données ne transitent pas en clair sur votre réseau (surtout si c'est au travers d'internet)

Pour ce faire nous allons utiliser :

syslog-ng stunnel

Dans mon exemple j'utilise 2 FreeBSD en tant que client serveur mais le principe reste le même pour d'autres OS

Tout d'abord nous allons préparer le serveur

- Installation de syslog-ng

# cd /usr/ports/sysutils/syslog-ng/ 
# make install clean 

Passons maintenant à la configuration de syslog-ng

# cd /usr/local/etc/syslog-ng/

Téléchargez le fichier suivant

# wget http://aflab.free.fr/conf/syslog-ng-server.conf 

Et renommez le en :

# mv syslog-ng-server.conf syslog-ng.conf 

Si vous avez syslog de lancé vous pouvez le couper

# /etc/rc.d/syslogd stop

et

# cd /usr/local/etc/rc.d/
# mv syslog-ng.sh.sample syslog-ng.sh
# ./syslog-ng start

un petit “ps aux” pour vérifier que syslog-ng est lancé

- Installation de stunnel

(nous utilisons la version 4 de stunnel)

# cd /usr/ports/security/stunnel
# make install clean

Nous allons maintenant configurer stunnel

# cd /usr/local/etc/stunnel/
# vi stunnel.conf 

------------------------------------- SNiP ------------------------------------
#
# stunnel.conf (serveur)
#
# aflab@free.fr
# http://aflab.free.fr

cert = /usr/local/etc/stunnel/syslog-ng-server.pem

output = /var/log/stunnel.log
pid = /var/run/stunnel/stunnel.pid

setuid = stunnel
setgid = stunnel

verify = 2

CAfile = /usr/local/etc/stunnel/syslog-ng-client.pem

[syslog-ng]
accept = <IP DE VOTRE SERVEUR DE LOG>:515
connect = 127.0.0.1:514

------------------------------------- SNiP ------------------------------------

pour les options de configuration de stunnel je vous invite à vous reporter à la doc officielle de stunnel :

http://www.stunnel.org

Notons que stunnel est capable de se “chrooter” a son démarrage.

Nous allons maintenant generer notre certificat ssl :

# openssl req -new -x509 -nodes -days 0 -out syslog-ng-server.pem -keyout syslog-ng-server.pem

Dans le fichier syslog-ng-server.pem vous avez la clé privée et le certificat du serveur, vous n'exporterez que le certificat sur vos clients la clé privée reste sur le serveur.

Pour finir l'installation

# mkdir /var/run/tunnel 
# chown -R stunnel.stunnel /var/run/stunnel
# chmod 700 /var/run/stunnel/

# cd /usr/local/etc/stunnel/

On crée le fichier dans lequel on va stocker les certificats des clients

# touch syslog-ng-client.pem

On change les droits pour que seul l'utilisateur stunnel puisse lire les fichiers du répertoire /usr/local/etc/stunnel/

# chown stunnel.stunnel *
# chmod 600 *

Vous pouvez lancer stunnel

# stunnel 

faites un “ps aux” pour voir si le processus stunnel est bien la si ce n'est pas le cas reportez vous au fichier /var/log/stunnel.log pour voir ce qui ne va pas.

Nous allons maintenant nous occuper du client

Pour syslog-ng le principe est le même que pour le serveur pour le fichier de configuration je vous propose de télécharger :

# wget  http://aflab.free.fr/conf/syslog-ng-client.conf

Pour l'installation de stunnel c'est le même principe que pour le serveur

Pour le fichier de configuration :

# cd /usr/local/etc/stunnel/
# vi stunnel.conf

------------------------------------- SNiP ------------------------------------

#
# stunnel.conf (client)
#
# aflab@free.fr
# http://aflab.free.fr
#

cert = /usr/local/etc/stunnel/syslog-ng-client.pem
output = /var/log/stunnel.log

pid = /var/run/stunnel/stunnel.pid
setuid = stunnel
setgid = stunnel

verify = 2
CAfile = /usr/local/etc/stunnel/syslog-ng-server.pem
client = yes

# Service-level configuration

[stunnel]
accept = 127.0.0.1:514
connect = <IP DE VOTRE SERVEUR DE LOG>:515


------------------------------------- SNiP ------------------------------------

Passons maintenant à la génération du certificat et de la clé privée pour le client

# openssl req -new -x509 -nodes -days 0 -out syslog-ng-client.pem -keyout syslog-ng-client.pem

Une fois que cela est fait :


(nous sommes toujours sur le client)

dans le fichier syslog-ng-server.pem copiez le certificat de votre serveur

(nous sommes maintenant sur le serveur)

dans le fichier syslog-ng-client.pem copiez le certificat de votre client


N'oubliez pas de changer les droits comme pour le serveur

Voila maintenant que tout ça est fait vous pouvez lancer stunnel sur votre client. Vérifiez que le processus stunnel est bien lancé si ce n'est pas le cas allez voir /var/log/stunnel.log

Maintenant que tout est installé sur votre client faites :

# logger "PINPIN ON T'AIME"

Maintenant sur votre serveur de log si vous allez dans

# cd /var/log/hosts/

Vous devriez avoir un répertoire du type hostname.domain.tld se rapportant à votre client si vous allez dedans vous allez voir un répertoire user/ et dedans le fichier notice si vous regardez le contenu de ce fichier vous devriez voir

“PINPIN ON T'AIME”

Si vous avez le moindre problème n'hesitez pas à nous rejoindre sur

#gcu @ irc.freenode.net

ou par email

aflab@gcu.info

bsd/syslog-ng_stunnel.txt · Last modified: 2010/01/12 13:29 (external edit)