Subversion Repositories ALCASAR

Rev

Rev 1056 | Rev 1154 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 1056 Rev 1145
Line 1... Line 1...
1
#!/bin/bash
1
#!/bin/bash
2
# $Id: alcasar-archive.sh 1056 2013-03-26 21:46:36Z stephane $
2
# $Id: alcasar-archive.sh 1145 2013-07-01 21:19:24Z richard $
3
 
3
 
4
# alcasar-archive.sh
4
# alcasar-archive.sh
5
# by Franck BOUIJOUX and REXY
5
# by Franck BOUIJOUX and REXY
6
# This script is distributed under the Gnu General Public License (GPL)
6
# This script is distributed under the Gnu General Public License (GPL)
7
 
7
 
8
# Script permettant 
8
# Script permettant 
9
#	- d'exporter les logs de traçabilités et la base des usagers à des fins d'archivages.
9
#	- d'exporter dans un seul fichier les logs de traçabilités et la base des usagers (à des fins d'archivages).
10
# 	- Une fonction de chiffrement des logs a été implémentée dans ce script. Lisez la documentation d'exploitation pour l'activer.
10
# 	- Une fonction de chiffrement des logs a été implémentée dans ce script. Lisez la documentation d'exploitation pour l'activer.
11
#	- nettoyage des archives supérieures à 1 an (365 jours)
11
#	- nettoyage des archives supérieures à 1 an (365 jours)
12
 
12
 
13
# This script allows 
13
# This script allows 
14
#	- export log files and user's base in order to archive them.
14
#	- export in one file the log files and user's base (in order to archive them).
15
# 	- a cypher fonction allows to protect these files. Read the exploit documentation to enable it.
15
# 	- a cypher fonction allows to protect these files. Read the exploit documentation to enable it.
16
#	- delete backup files older than one year (365 days)
16
#	- delete backup files older than one year (365 days)
17
 
17
 
18
DIR_SAVE="/var/Save"			# répertoire accessible par webs
18
DIR_SAVE="/var/Save"			# répertoire accessible par webs
19
DIR_LOG="/var/log"			# répertoire local des log
19
DIR_LOG="/var/log"			# répertoire local des log
Line 25... Line 25...
25
DIR_TMP="/tmp/archive-$NOW"		# Répertoire temporaire d'export
25
DIR_TMP="/tmp/archive-$NOW"		# Répertoire temporaire d'export
26
FILE="archive-$NOW.tar.gz"		# Nom du fichier de l'archive
26
FILE="archive-$NOW.tar.gz"		# Nom du fichier de l'archive
27
EXPIRE_DAY=365				# Nbre de jour avant suppression des fichiers journaux
27
EXPIRE_DAY=365				# Nbre de jour avant suppression des fichiers journaux
28
CRYPT="0"				# chiffrement des logs 		( 0=non / 1=oui --> Signature = 1(implicite))
28
CRYPT="0"				# chiffrement des logs 		( 0=non / 1=oui --> Signature = 1(implicite))
29
SIGN="0"				# Signature/empreinte des logs 	( 0=non / 1=oui ) ATTENTION : nécessite la clé privée !!!
29
SIGN="0"				# Signature/empreinte des logs 	( 0=non / 1=oui ) ATTENTION : nécessite la clé privée !!!
30
GPG_USER="OSSI-CIRISI-Lyon"		# utilisateur autorisé à déchiffrer les logs. Sa clé publique doit être connu dans le portefeuille gnupg de root (/root/.gnupg)
30
GPG_USER=""				# utilisateur autorisé à déchiffrer les logs. Sa clé publique doit être connu dans le portefeuille gnupg de root (/root/.gnupg)
31
 
31
 
32
usage="Usage: alcasar-archive.sh {--clean or -c} | {--now or -n}"
32
usage="Usage: alcasar-archive.sh {--clean or -c} | {--now or -n}"
33
 
33
 
34
nb_args=$#
34
nb_args=$#
35
args=$1
35
args=$1
Line 88... Line 88...
88
		  # 3)  chiffrement/signature = 0  --> cp simple avec suppression des droits d'écriture
88
		  # 3)  chiffrement/signature = 0  --> cp simple avec suppression des droits d'écriture
89
		    cp /tmp/$FILE $DIR_ARCHIVE/.
89
		    cp /tmp/$FILE $DIR_ARCHIVE/.
90
		}
90
		}
91
		fi
91
		fi
92
		rm -rf /tmp/archive-*
92
		rm -rf /tmp/archive-*
93
		chown apache:apache $TO_SAVE/
93
		chown root:apache $DIR_ARCHIVE/*
94
		;;
94
		;;
95
	--update | -u)
95
	--update | -u)
96
	#	Mise à niveau de l'architecture d'export/archivage
96
	#	Mise à niveau de l'architecture d'export/archivage
97
		[ -d /tmp/save ] || mkdir -p /tmp/save
97
		[ -d /tmp/save ] || mkdir -p /tmp/save
98
		[ -d $DIR_ARCHIVE/ ] || mkdir -p $DIR_ARCHIVE/	# utile une seule fois mais crée le répertoire si nécessaire
98
		[ -d $DIR_ARCHIVE/ ] || mkdir -p $DIR_ARCHIVE/	# utile une seule fois mais crée le répertoire si nécessaire
99
#		copie de l'archive au cas où ...
-
 
100
		rm -f $(ls *[0-9])	# effacer les fichiers n'ayant pas été compressés
-
 
101
		mv $TO_SAVE/firewall/tracabilite-* $DIR_ARCHIVE/.
-
 
102
		;;
99
		;;
103
	*)
100
	*)
104
		echo "Unknown argument :$1";
101
		echo "Unknown argument :$1";
105
		echo "$usage"
102
		echo "$usage"
106
		exit 1
103
		exit 1