| 1 | root | 1 | #!/bin/sh
 | 
        
           | 64 | franck | 2 | # $Id: alcasar-log-export.sh 64 2010-04-08 20:01:24Z franck $
 | 
        
           | 1 | root | 3 | # alcasar-log-export.sh
 | 
        
           |  |  | 4 | # by Franck BOUIJOUX
 | 
        
           |  |  | 5 | # This script is distributed under the Gnu General Public License (GPL)
 | 
        
           |  |  | 6 |   | 
        
           |  |  | 7 | # Script permettant d'exporter des logs des répertoires /var/log/(squid-firewall-httpd ) à des fins d'archivages.
 | 
        
           |  |  | 8 | # 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/.
 | 
        
           |  |  | 9 | # 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.
 | 
        
           |  |  | 10 |   | 
        
           |  |  | 11 | # changelog :
 | 
        
           |  |  | 12 | # - 20080114 -  implémentation de la signature des archives logs
 | 
        
           |  |  | 13 |   | 
        
           |  |  | 14 | date=`date +%F`
 | 
        
           |  |  | 15 | TO_SAVE="/var/Save/logs"		# répertoire accessible par webs
 | 
        
           |  |  | 16 | REP_SAVE="/var/log"			# répertoire local des logs
 | 
        
           |  |  | 17 | REP_SERVICE="squid httpd firewall"	# liste des répertoires contenant des logs à exporter
 | 
        
           |  |  | 18 | CHIFFREMENT="0"				# chiffrement des logs ( 0=non / 1=oui )
 | 
        
           |  |  | 19 | GPG_USER=""				# utilisateur autorisé à déchiffrer les logs. Son biclé est inclus dans le portefeuille gnupg de root (/root/.gnupg)
 | 
        
           |  |  | 20 |   | 
        
           |  |  | 21 | for i in $REP_SERVICE ; do
 | 
        
           |  |  | 22 | 	[ -d $TO_SAVE/$i ] || mkdir -p $TO_SAVE/$i	# utile une seule fois mais crée le répertoire si nécessaire
 | 
        
           |  |  | 23 | 	cd $REP_SAVE/$i 
 | 
        
           |  |  | 24 | 	if [ $CHIFFREMENT -eq "1" ]
 | 
        
           |  |  | 25 | 	then
 | 
        
           |  |  | 26 | # chiffrement des logs dans /var/Save/logs/(squid|firewall|httpd)
 | 
        
           |  |  | 27 | 		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 {} \;
 | 
        
           |  |  | 28 | 	else	
 | 
        
           |  |  | 29 | # copie simple des logs dans /var/Save/logs/(squid|firewall|httpd) 
 | 
        
           |  |  | 30 |   | 
        
           |  |  | 31 | 		find . \( -mtime -7 -o -ctime 0 \) -a \( -name '*access*log*.gz' -o -name 'firewall*.gz' -o -name 'admin*.gz' \) -exec cp {} $TO_SAVE/$i/.  \;
 | 
        
           |  |  | 32 | 	fi
 | 
        
           |  |  | 33 | done
 | 
        
           |  |  | 34 | chown -R apache.apache $TO_SAVE
 | 
        
           |  |  | 35 | exit 0
 | 
        
           |  |  | 36 |   |