Subversion Repositories ALCASAR

Rev

Rev 40 | Blame | Last modification | View Log

#!/bin/sh
# $Id: alcasar-log-export.sh 64 2010-04-08 20:01:24Z franck $
# alcasar-log-export.sh
# by Franck BOUIJOUX
# This script is distributed under the Gnu General Public License (GPL)

# Script permettant d'exporter des logs des répertoires /var/log/(squid-firewall-httpd ) à des fins d'archivages.
# Une fonction EXPERIMENTALE de chiffrement et de signature des logs a été implémentée dans ce script. Son activation par la mise à '1' de la variable 'CHIFFREMENT' et/ou 'SIGNATURE' permet de chiffrer-signer ou signer les logs contenus dans /var/Save/logs/.
# Il est nécessaire de détenir la passphrase de la clé privée de l'utilisateur 'admin-chillispot' pour rendre ces logs lisibles (la passphrase est actuellement détenue par l'équipe projet.

# changelog :
# - 20080114 -  implémentation de la signature des archives logs

date=`date +%F`
TO_SAVE="/var/Save/logs"                # répertoire accessible par webs
REP_SAVE="/var/log"                     # répertoire local des logs
REP_SERVICE="squid httpd firewall"      # liste des répertoires contenant des logs à exporter
CHIFFREMENT="0"                          # chiffrement des logs ( 0=non / 1=oui )
GPG_USER=""                             # utilisateur autorisé à déchiffrer les logs. Son biclé est inclus dans le portefeuille gnupg de root (/root/.gnupg)

for i in $REP_SERVICE ; do
        [ -d $TO_SAVE/$i ] || mkdir -p $TO_SAVE/$i      # utile une seule fois mais crée le répertoire si nécessaire
        cd $REP_SAVE/$i 
        if [ $CHIFFREMENT -eq "1" ]
        then
# chiffrement des logs dans /var/Save/logs/(squid|firewall|httpd)
                find . \( -mtime -7 -o -ctime 0 \) -a \( -name '*access*log*.gz' -o -name 'firewall*.gz' -o -name 'admin*.gz' \) -exec gpg --output $TO_SAVE/$i/{}.gpg --encrypt --recipient $GPG_USER {} \;
        else    
# copie simple des logs dans /var/Save/logs/(squid|firewall|httpd) 

                find . \( -mtime -7 -o -ctime 0 \) -a \( -name '*access*log*.gz' -o -name 'firewall*.gz' -o -name 'admin*.gz' \) -exec cp {} $TO_SAVE/$i/.  \;
        fi
done
chown -R apache.apache $TO_SAVE
exit 0