Subversion Repositories ALCASAR

Rev

Rev 519 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log

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