Line 1... |
Line 1... |
1 |
#!/bin/bash
|
1 |
#!/bin/bash
|
2 |
# $Id: alcasar-archive.sh 1154 2013-07-15 14:27:10Z crox53 $
|
2 |
# $Id: alcasar-archive.sh 1157 2013-07-16 10:48:11Z stephane $
|
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
|