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 :
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