| 1 | 
           root | 
           1 | 
           #!/bin/sh
  | 
        
        
           | 64 | 
           franck | 
           2 | 
           # $Id: alcasar-log-export.sh 376 2010-12-19 22:24:58Z 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 | 
              | 
        
        
           | 376 | 
           franck | 
           7 | 
           # Script permettant d'exporter des logs des répertoires /var/log/{squid-firewall-httpd} à des fins d'archivages.
  | 
        
        
           | 1 | 
           root | 
           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
  | 
        
        
           | 376 | 
           franck | 
           17 | 
           REP_SERVICE="squid httpd firewall"	# liste des répertoires contenant des logs utiles à exporter
  | 
        
        
           | 1 | 
           root | 
           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 | 
              |