This shows you the differences between two versions of the page.
— |
bsd:syslog-ng_stunnel [2010/01/12 13:29] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | 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 | ||
+ | <code> | ||
+ | # cd /usr/ports/sysutils/syslog-ng/ | ||
+ | # make install clean | ||
+ | </code> | ||
+ | Passons maintenant à la configuration de syslog-ng | ||
+ | <code> | ||
+ | # cd /usr/local/etc/syslog-ng/ | ||
+ | </code> | ||
+ | Téléchargez le fichier suivant | ||
+ | <code> | ||
+ | # wget http://aflab.free.fr/conf/syslog-ng-server.conf | ||
+ | </code> | ||
+ | Et renommez le en : | ||
+ | <code> | ||
+ | # mv syslog-ng-server.conf syslog-ng.conf | ||
+ | </code> | ||
+ | Si vous avez syslog de lancé vous pouvez le couper | ||
+ | <code> | ||
+ | # /etc/rc.d/syslogd stop | ||
+ | </code> | ||
+ | et | ||
+ | <code> | ||
+ | # cd /usr/local/etc/rc.d/ | ||
+ | # mv syslog-ng.sh.sample syslog-ng.sh | ||
+ | # ./syslog-ng start | ||
+ | </code> | ||
+ | un petit "ps aux" pour vérifier que syslog-ng est lancé | ||
+ | |||
+ | |||
+ | - Installation de stunnel | ||
+ | |||
+ | (nous utilisons la version 4 de stunnel) | ||
+ | <code> | ||
+ | # cd /usr/ports/security/stunnel | ||
+ | # make install clean | ||
+ | </code> | ||
+ | Nous allons maintenant configurer stunnel | ||
+ | <code> | ||
+ | # 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 ------------------------------------ | ||
+ | </code> | ||
+ | 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 : | ||
+ | <code> | ||
+ | # openssl req -new -x509 -nodes -days 0 -out syslog-ng-server.pem -keyout syslog-ng-server.pem | ||
+ | </code> | ||
+ | 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 | ||
+ | <code> | ||
+ | # mkdir /var/run/tunnel | ||
+ | # chown -R stunnel.stunnel /var/run/stunnel | ||
+ | # chmod 700 /var/run/stunnel/ | ||
+ | |||
+ | # cd /usr/local/etc/stunnel/ | ||
+ | </code> | ||
+ | On crée le fichier dans lequel on va stocker les certificats des clients | ||
+ | <code> | ||
+ | # touch syslog-ng-client.pem | ||
+ | </code> | ||
+ | On change les droits pour que seul l'utilisateur stunnel puisse lire les fichiers | ||
+ | du répertoire /usr/local/etc/stunnel/ | ||
+ | <code> | ||
+ | # chown stunnel.stunnel * | ||
+ | # chmod 600 * | ||
+ | </code> | ||
+ | |||
+ | Vous pouvez lancer stunnel | ||
+ | <code> | ||
+ | # stunnel | ||
+ | </code> | ||
+ | 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 : | ||
+ | |||
+ | <code> | ||
+ | # wget http://aflab.free.fr/conf/syslog-ng-client.conf | ||
+ | </code> | ||
+ | |||
+ | Pour l'installation de stunnel c'est le même principe que pour le serveur | ||
+ | |||
+ | Pour le fichier de configuration : | ||
+ | <code> | ||
+ | # 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 ------------------------------------ | ||
+ | </code> | ||
+ | |||
+ | Passons maintenant à la génération du certificat et de la clé privée pour le | ||
+ | client | ||
+ | <code> | ||
+ | # openssl req -new -x509 -nodes -days 0 -out syslog-ng-client.pem -keyout syslog-ng-client.pem | ||
+ | </code> | ||
+ | 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 : | ||
+ | |||
+ | <code> | ||
+ | # logger "PINPIN ON T'AIME" | ||
+ | </code> | ||
+ | |||
+ | Maintenant sur votre serveur de log si vous allez dans | ||
+ | <code> | ||
+ | # cd /var/log/hosts/ | ||
+ | </code> | ||
+ | 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 |