1 |
#/bin/sh
|
1 |
#/bin/sh
|
2 |
# $Id: alcasar-conf.sh 605 2011-05-18 20:43:43Z richard $
|
2 |
# $Id: alcasar-conf.sh 612 2011-05-22 21:19:27Z richard $
|
3 |
# $Author: richard $
|
3 |
# $Author: richard $
|
4 |
# by rexy
|
4 |
# by rexy
|
5 |
# Ce script permet de créer ou de charger l'archive des fichiers de configuration (/tmp/alcasar-conf.tar.gz)
|
5 |
# Ce script permet de créer ou de charger l'archive des fichiers de configuration (/tmp/alcasar-conf.tar.gz)
|
6 |
DIR_UPDATE="/tmp/conf" # répertoire de stockage des fichier de conf pour une mise à jour
|
6 |
DIR_UPDATE="/tmp/conf" # répertoire de stockage des fichier de conf pour une mise à jour
|
7 |
DIR_WEB="/var/www/html" # répertoire du centre de gestion
|
7 |
DIR_WEB="/var/www/html" # répertoire du centre de gestion
|
8 |
DIR_BIN="/usr/local/bin" # répertoire des scripts d'admin
|
8 |
DIR_BIN="/usr/local/bin" # répertoire des scripts d'admin
|
9 |
DIR_SBIN="/usr/local/sbin" # répertoire des scripts d'admin
|
9 |
DIR_SBIN="/usr/local/sbin" # répertoire des scripts d'admin
|
10 |
DIR_ETC="/usr/local/etc" # répertoire des fichiers de conf
|
10 |
DIR_ETC="/usr/local/etc" # répertoire des fichiers de conf
|
11 |
VERSION="/var/www/html/VERSION" # contient la version en cours
|
11 |
VERSION="/var/www/html/VERSION" # contient la version en cours
|
12 |
DB_USER="radius"
|
12 |
DB_USER="radius"
|
13 |
radiuspwd=""
|
13 |
radiuspwd=""
|
14 |
SED="/bin/sed -i"
|
14 |
SED="/bin/sed -i"
|
15 |
RUNNING_VERSION=`cat $VERSION|cut -d" " -f1`
|
15 |
RUNNING_VERSION=`cat $VERSION|cut -d" " -f1`
|
16 |
MAJ_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f1`
|
16 |
MAJ_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f1`
|
17 |
MIN_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f2|cut -c1`
|
17 |
MIN_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f2|cut -c1`
|
18 |
UPD_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f3`
|
18 |
UPD_RUNNING_VERSION=`echo $RUNNING_VERSION|cut -d"." -f3`
|
19 |
|
19 |
|
20 |
usage="Usage: alcasar-conf.sh --create | --load"
|
20 |
usage="Usage: alcasar-conf.sh --create | --load"
|
21 |
nb_args=$#
|
21 |
nb_args=$#
|
22 |
args=$1
|
22 |
args=$1
|
23 |
if [ $nb_args -eq 0 ]
|
23 |
if [ $nb_args -eq 0 ]
|
24 |
then
|
24 |
then
|
25 |
nb_args=1
|
25 |
nb_args=1
|
26 |
args="-h"
|
26 |
args="-h"
|
27 |
fi
|
27 |
fi
|
28 |
case $args in
|
28 |
case $args in
|
29 |
-\? | -h* | --h*)
|
29 |
-\? | -h* | --h*)
|
30 |
echo "$usage"
|
30 |
echo "$usage"
|
31 |
exit 0
|
31 |
exit 0
|
32 |
;;
|
32 |
;;
|
33 |
--create|-create)
|
33 |
--create|-create)
|
34 |
DIR_UPDATE="/tmp/conf" # répertoire de stockage des fichier de conf pour une mise à jour
|
34 |
DIR_UPDATE="/tmp/conf" # répertoire de stockage des fichier de conf pour une mise à jour
|
35 |
[ -d $DIR_UPDATE ] && rm -rf $DIR_UPDATE
|
35 |
[ -d $DIR_UPDATE ] && rm -rf $DIR_UPDATE
|
36 |
mkdir $DIR_UPDATE
|
36 |
mkdir $DIR_UPDATE
|
37 |
# Sauvegarde de la base des usagers
|
37 |
# Sauvegarde de la base des usagers
|
38 |
/usr/local/sbin/alcasar-mysql.sh -dump
|
38 |
/usr/local/sbin/alcasar-mysql.sh -dump
|
39 |
cp /var/Save/base/`ls /var/Save/base|tail -1` $DIR_UPDATE
|
39 |
cp /var/Save/base/`ls /var/Save/base|tail -1` $DIR_UPDATE
|
40 |
# Sauvegarde du nom d'organisme
|
40 |
# Sauvegarde du nom d'organisme
|
41 |
echo `cat /root/ALCASAR-parameters.txt|grep Organism|cut -d":" -f2|tr -d " "` > $DIR_UPDATE/organisme
|
41 |
echo `cat /root/ALCASAR-parameters.txt|grep Organism|cut -d":" -f2|tr -d " "` > $DIR_UPDATE/organisme
|
42 |
# Sauvegarde du logo
|
42 |
# Sauvegarde du logo
|
43 |
cp -f $DIR_WEB/images/organisme.png $DIR_UPDATE
|
43 |
cp -f $DIR_WEB/images/organisme.png $DIR_UPDATE
|
44 |
# Sauvegarde des fichiers exploités par dansguardian
|
44 |
# Sauvegarde des fichiers exploités par dansguardian
|
45 |
cp -f /etc/dansguardian/dansguardian.conf $DIR_UPDATE
|
- |
|
46 |
cp -f /etc/dansguardian/lists/exceptioniplist $DIR_UPDATE
|
45 |
cp -f /etc/dansguardian/lists/exceptioniplist $DIR_UPDATE
|
47 |
cp -f /etc/dansguardian/lists/exceptionsitelist $DIR_UPDATE
|
46 |
cp -f /etc/dansguardian/lists/exceptionsitelist $DIR_UPDATE
|
48 |
cp -f /etc/dansguardian/lists/bannedsitelist $DIR_UPDATE
|
47 |
cp -f /etc/dansguardian/lists/bannedsitelist $DIR_UPDATE
|
49 |
cp -f /etc/dansguardian/lists/exceptionurllist $DIR_UPDATE
|
48 |
cp -f /etc/dansguardian/lists/exceptionurllist $DIR_UPDATE
|
50 |
cp -f /etc/dansguardian/lists/bannedurllist $DIR_UPDATE
|
49 |
cp -f /etc/dansguardian/lists/bannedurllist $DIR_UPDATE
|
51 |
cp -rf /etc/dansguardian/lists/blacklists/ossi $DIR_UPDATE
|
50 |
cp -rf /etc/dansguardian/lists/blacklists/ossi $DIR_UPDATE
|
52 |
# sauvegarde des fichiers : de filtrage, d'exception, digest, etc.
|
51 |
# sauvegarde des fichiers : de conf, de filtrage, d'exception, digest, etc.
|
53 |
mkdir $DIR_UPDATE/etc/
|
52 |
mkdir $DIR_UPDATE/etc/
|
54 |
cp -rf $DIR_ETC/* $DIR_UPDATE/etc/
|
53 |
cp -rf $DIR_ETC/* $DIR_UPDATE/etc/
|
55 |
# sauvegarde du fichier alcasar-iptables.sh (pour savoir si on filtre les protocoles)
|
- |
|
56 |
cp -f $DIR_BIN/alcasar-iptables.sh $DIR_UPDATE
|
- |
|
57 |
# particularité des versions
|
54 |
# particularité des versions
|
58 |
# si version < 2.1
|
55 |
# si version < 2.1
|
59 |
if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 1 ]))
|
56 |
if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 1 ]))
|
60 |
then
|
57 |
then
|
61 |
rm -f $DIR_UPDATE/etc/alcasar-dns-name # changement de format
|
58 |
rm -f $DIR_UPDATE/etc/alcasar-dns-name # changement de format
|
62 |
rm -f $DIR_UPDATE/etc/alcasar-macallowed # ajout d'un commentaire par @MAC
|
59 |
rm -f $DIR_UPDATE/etc/alcasar-macallowed # ajout d'un commentaire par @MAC
|
63 |
rm -rf $DIR_UPDATE/etc/digest # hostname=alcasar
|
60 |
rm -rf $DIR_UPDATE/etc/digest # hostname=alcasar
|
64 |
else
|
61 |
else
|
65 |
# si version >= 2.1 : sauvegarde des certificats (serveur et CA)
|
62 |
# si version >= 2.1 : sauvegarde des certificats (serveur et CA)
|
66 |
mkdir $DIR_UPDATE/pki/
|
63 |
mkdir $DIR_UPDATE/pki/
|
67 |
cert_date=`/usr/bin/openssl x509 -noout -in /etc/pki/tls/certs/alcasar.crt -dates|grep After|cut -d"=" -f2`
|
64 |
cert_date=`/usr/bin/openssl x509 -noout -in /etc/pki/tls/certs/alcasar.crt -dates|grep After|cut -d"=" -f2`
|
68 |
cp -f /etc/pki/tls/certs/alcasar.crt $DIR_UPDATE
|
65 |
cp -f /etc/pki/tls/certs/alcasar.crt $DIR_UPDATE
|
69 |
cp -f /etc/pki/tls/private/alcasar.key $DIR_UPDATE
|
66 |
cp -f /etc/pki/tls/private/alcasar.key $DIR_UPDATE
|
70 |
cp -f /etc/pki/CA/alcasar-ca.crt $DIR_UPDATE
|
67 |
cp -f /etc/pki/CA/alcasar-ca.crt $DIR_UPDATE
|
71 |
cp -f /etc/pki/CA/private/alcasar-ca.key $DIR_UPDATE
|
68 |
cp -f /etc/pki/CA/private/alcasar-ca.key $DIR_UPDATE
|
72 |
fi
|
69 |
fi
|
73 |
# si version < 2.2
|
70 |
# si version < 2.2
|
74 |
if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 2 ]))
|
71 |
if ([ $MAJ_RUNNING_VERSION -lt 2 ] || ([ $MAJ_RUNNING_VERSION -eq 2 ] && [ $MIN_RUNNING_VERSION -lt 2 ]))
|
75 |
then
|
72 |
then
|
76 |
rm -f $DIR_UPDATE/etc/alcasar-ethers # ce fichier doit être lisse de commentaires
|
73 |
rm -f $DIR_UPDATE/etc/alcasar-ethers # ce fichier doit être lisse de commentaires
|
77 |
fi
|
74 |
fi
|
78 |
# création de l'archive
|
75 |
# création de l'archive
|
79 |
cd /tmp
|
76 |
cd /tmp
|
80 |
tar -cf alcasar-conf.tar conf/
|
77 |
tar -cf alcasar-conf.tar conf/
|
81 |
gzip -f alcasar-conf.tar
|
78 |
gzip -f alcasar-conf.tar
|
82 |
rm -rf $DIR_UPDATE
|
79 |
rm -rf $DIR_UPDATE
|
83 |
;;
|
80 |
;;
|
84 |
--load|-load)
|
81 |
--load|-load)
|
85 |
cd /tmp
|
82 |
cd /tmp
|
86 |
tar -xf /tmp/alcasar-conf.tar.gz
|
83 |
tar -xf /tmp/alcasar-conf.tar.gz
|
87 |
# Récupération du logo
|
84 |
# Récupération du logo
|
88 |
[ -e $DIR_UPDATE/organisme.png ] && cp -f $DIR_UPDATE/organisme.png $DIR_WEB/images/
|
85 |
[ -e $DIR_UPDATE/organisme.png ] && cp -f $DIR_UPDATE/organisme.png $DIR_WEB/images/
|
89 |
chown apache:apache $DIR_WEB/images/organisme.png $DIR_WEB/intercept.php
|
86 |
chown apache:apache $DIR_WEB/images/organisme.png $DIR_WEB/intercept.php
|
90 |
# Récupération des certificats (CA et serveur)
|
87 |
# Récupération des certificats (CA et serveur)
|
91 |
[ -e $DIR_UPDATE/alcasar-ca.crt ] && cp -f $DIR_UPDATE/alcasar-ca.crt /etc/pki/CA/
|
88 |
[ -e $DIR_UPDATE/alcasar-ca.crt ] && cp -f $DIR_UPDATE/alcasar-ca.crt /etc/pki/CA/
|
92 |
[ -e $DIR_UPDATE/alcasar-ca.key ] && cp -f $DIR_UPDATE/alcasar-ca.key /etc/pki/CA/private/
|
89 |
[ -e $DIR_UPDATE/alcasar-ca.key ] && cp -f $DIR_UPDATE/alcasar-ca.key /etc/pki/CA/private/
|
93 |
[ -e $DIR_UPDATE/alcasar.crt ] && cp -f $DIR_UPDATE/alcasar.crt /etc/pki/tls/certs/
|
90 |
[ -e $DIR_UPDATE/alcasar.crt ] && cp -f $DIR_UPDATE/alcasar.crt /etc/pki/tls/certs/
|
94 |
[ -e $DIR_UPDATE/alcasar.key ] && cp -f $DIR_UPDATE/alcasar.key /etc/pki/tls/private/
|
91 |
[ -e $DIR_UPDATE/alcasar.key ] && cp -f $DIR_UPDATE/alcasar.key /etc/pki/tls/private/
|
95 |
chown -R root:apache /etc/pki
|
92 |
chown -R root:apache /etc/pki
|
96 |
chmod -R 750 /etc/pki
|
93 |
chmod -R 750 /etc/pki
|
97 |
# Import de la dernière base usagers
|
94 |
# Import de la dernière base usagers
|
98 |
mysql -u$DB_USER -p$radiuspwd < `ls $DIR_UPDATE/radius*`
|
95 |
mysql -u$DB_USER -p$radiuspwd < `ls $DIR_UPDATE/radius*`
|
- |
|
96 |
# Récupération des paramêtres locaux (fichier de conf, règles de filtrage, fichiers d'exception, comptes de gestion, etc.)
|
- |
|
97 |
[ -d $DIR_UPDATE/etc ] && cp -rf $DIR_UPDATE/etc/* $DIR_ETC/
|
99 |
# Récupération des fichiers de Dansguardian
|
98 |
# Récupération des fichiers de Dansguardian
|
100 |
[ -e $DIR_UPDATE/exceptioniplist ] && cp -f $DIR_UPDATE/exceptioniplist /etc/dansguardian/lists/
|
99 |
[ -e $DIR_UPDATE/exceptioniplist ] && cp -f $DIR_UPDATE/exceptioniplist /etc/dansguardian/lists/
|
101 |
[ -e $DIR_UPDATE/exceptionsitelist ] && cp -f $DIR_UPDATE/exceptionsitelist /etc/dansguardian/lists/
|
100 |
[ -e $DIR_UPDATE/exceptionsitelist ] && cp -f $DIR_UPDATE/exceptionsitelist /etc/dansguardian/lists/
|
102 |
[ -e $DIR_UPDATE/bannedsitelist ] && cp -f $DIR_UPDATE/bannedsitelist /etc/dansguardian/lists/
|
101 |
[ -e $DIR_UPDATE/bannedsitelist ] && cp -f $DIR_UPDATE/bannedsitelist /etc/dansguardian/lists/
|
103 |
[ -e $DIR_UPDATE/exceptionurllist ] && cp -f $DIR_UPDATE/exceptionurllist /etc/dansguardian/lists/
|
102 |
[ -e $DIR_UPDATE/exceptionurllist ] && cp -f $DIR_UPDATE/exceptionurllist /etc/dansguardian/lists/
|
104 |
[ -e $DIR_UPDATE/bannedurllist ] && cp -f $DIR_UPDATE/bannedurllist /etc/dansguardian/lists/
|
103 |
[ -e $DIR_UPDATE/bannedurllist ] && cp -f $DIR_UPDATE/bannedurllist /etc/dansguardian/lists/
|
105 |
[ -d $DIR_UPDATE/ossi ] && cp -rf $DIR_UPDATE/ossi /etc/dansguardian/lists/blacklists/
|
104 |
[ -d $DIR_UPDATE/ossi ] && cp -rf $DIR_UPDATE/ossi /etc/dansguardian/lists/blacklists/
|
106 |
chown -R dansguardian:apache /etc/dansguardian/lists
|
105 |
chown -R dansguardian:apache /etc/dansguardian/lists
|
107 |
chmod -R g+rw /etc/dansguardian/lists
|
106 |
chmod -R g+rw /etc/dansguardian/lists
|
108 |
# On active/désactive la BL
|
107 |
# On active/désactive la BL
|
109 |
active_bl=`cat $DIR_UPDATE/dansguardian.conf|grep ^reportinglevel|cut -d" " -f3`
|
- |
|
110 |
$SED "s/^reportinglevel =.*/reportinglevel = $active_bl/g" /etc/dansguardian/dansguardian.conf
|
108 |
DNS_FILTERING=`grep DNS_FILTERING $conf_file|cut -d"=" -f2` # DNS and URLs filter (yes/no)
|
111 |
PARENT_SCRIPT=$0
|
109 |
PARENT_SCRIPT=$0
|
112 |
export PARENT_SCRIPT
|
110 |
export PARENT_SCRIPT
|
113 |
if [ $active_bl -eq "-1" ]
|
111 |
if [ $DNS_FILTERING -eq "on" ]
|
- |
|
112 |
then
|
114 |
then $DIR_SBIN/alcasar-bl.sh --off
|
113 |
$DIR_SBIN/alcasar-bl.sh --on
|
- |
|
114 |
else
|
115 |
else $DIR_SBIN/alcasar-bl.sh --on
|
115 |
$DIR_SBIN/alcasar-bl.sh --off
|
116 |
fi
|
116 |
fi
|
117 |
# Récupération des paramêtres locaux (règles de filtrage, fichiers d'exception, comptes de gestion, etc.)
|
- |
|
118 |
[ -d $DIR_UPDATE/etc ] && cp -rf $DIR_UPDATE/etc/* $DIR_ETC/
|
- |
|
119 |
# Prise en compte des comptes de gestion (admin + manager + backup)
|
117 |
# Prise en compte des comptes de gestion (admin + manager + backup)
|
120 |
$DIR_SBIN/alcasar-profil.sh --list
|
118 |
$DIR_SBIN/alcasar-profil.sh --list
|
121 |
# On active/désactive le filtrage de protocoles
|
- |
|
122 |
active_filter=`cat $DIR_UPDATE/alcasar-iptables.sh|grep ^FILTERING|cut -d"=" -f2`
|
- |
|
123 |
$SED "s/^FILTERING=.*/FILTERING=$active_filter/g" $DIR_BIN/alcasar-iptables.sh
|
- |
|
124 |
# On applique les paramètres réseau
|
119 |
# On applique les paramètres réseau
|
125 |
...
|
120 |
...
|
126 |
# Effacement du répertoire d'update
|
121 |
# Effacement du répertoire d'update
|
127 |
rm -rf $DIR_UPDATE
|
122 |
rm -rf $DIR_UPDATE
|
128 |
;;
|
123 |
;;
|
129 |
*)
|
124 |
*)
|
130 |
echo "Argument inconnu :$1";
|
125 |
echo "Argument inconnu :$1";
|
131 |
echo "$usage"
|
126 |
echo "$usage"
|
132 |
exit 1
|
127 |
exit 1
|
133 |
;;
|
128 |
;;
|
134 |
esac
|
129 |
esac
|
135 |
|
130 |
|
136 |
|
131 |
|