Subversion Repositories ALCASAR

Rev

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

Rev 314 Rev 316
Line 1... Line 1...
1
#/bin/sh
1
#/bin/sh
2
# $Id: alcasar-bl.sh 314 2010-11-09 22:51:05Z richard $
2
# $Id: alcasar-bl.sh 316 2010-11-14 22:25:53Z richard $
3
 
3
 
4
# Script de gestion de la BL pour le filtrage de domaine (via dnsmasq) et d'URL (via dansguardian)
4
# Script de gestion de la BL pour le filtrage de domaine (via dnsmasq) et d'URL (via dansguardian)
5
# By 3abtux & rexy
5
# By 3abtux & rexy
6
 
6
 
7
DIR_tmp="/tmp/blacklists"
7
DIR_tmp="/tmp/blacklists"
8
FILE_tmp="/tmp/fileFilter.txt"
8
FILE_tmp="/tmp/fileFilter.txt"
9
DIR_DANSGUARDIAN="/etc/dansguardian/lists"
9
DIR_DG="/etc/dansguardian/lists"
-
 
10
DIR_DG_BL="$DIR_DG/blacklists"
10
BL_CATEGORIES="/usr/local/etc/alcasar-bl-categories"
11
BL_CATEGORIES="/usr/local/etc/alcasar-bl-categories"
11
BL_CATEGORIES_ENABLED="/usr/local/etc/alcasar-bl-categories-enabled"
12
BL_CATEGORIES_ENABLED="/usr/local/etc/alcasar-bl-categories-enabled"
12
DIR_DNS_FILTER_AVAILABLE="/usr/local/etc/alcasar-dnsfilter-available"
13
DIR_DNS_FILTER_AVAILABLE="/usr/local/etc/alcasar-dnsfilter-available"
13
DIR_DNS_FILTER_ENABLED="/usr/local/etc/alcasar-dnsfilter-enabled"
14
DIR_DNS_FILTER_ENABLED="/usr/local/etc/alcasar-dnsfilter-enabled"
14
IP_RETOUR="192.168.182.1"
15
IP_RETOUR="192.168.182.1"
Line 21... Line 22...
21
	wget http://$BL_SERVER/blacklists/download/blacklists.tar.gz
22
	wget http://$BL_SERVER/blacklists/download/blacklists.tar.gz
22
}
23
}
23
 
24
 
24
# Décompression de la BL (en conservant la WL)
25
# Décompression de la BL (en conservant la WL)
25
function install () {
26
function install () {
26
	[ -d $DIR_DANSGUARDIAN ] || mkdir -p $DIR_DANSGUARDIAN
27
	[ -d $DIR_DG ] || mkdir -p $DIR_DG
27
	[ -d $DIR_DANSGUARDIAN/blacklists/ossi ] && mv -f $DIR_DANSGUARDIAN/blacklists/ossi $DIR_tmp
28
	[ -d $DIR_DG_BL/ossi ] && mv -f $DIR_DG_BL/ossi $DIR_tmp
28
	tar zxf $DIR_tmp/blacklists.tar.gz --directory=$DIR_DANSGUARDIAN/
29
	tar zxf $DIR_tmp/blacklists.tar.gz --directory=$DIR_DG/
29
	[ -d $DIR_tmp/ossi ] && mv -f $DIR_tmp/ossi $DIR_DANSGUARDIAN/blacklists/
30
	[ -d $DIR_tmp/ossi ] && mv -f $DIR_tmp/ossi $DIR_DG_BL/
30
	cd /root
31
	cd /root
31
	rm -rf $DIR_tmp
32
	rm -rf $DIR_tmp
32
}
33
}
33
 
34
 
34
# Adaptation de la BL Toulouse à la structure Dnsmasq
35
# Adaptation de la BL Toulouse à la structure Dnsmasq
35
function adapt () {
36
function adapt () {
36
	# On récupère le nom des répertoire (catégories)
37
	# On récupère le nom des répertoire (catégories)
37
	find $DIR_DANSGUARDIAN -type f -name domains > $BL_CATEGORIES
38
	find $DIR_DG_BL/ -type f -name domains > $BL_CATEGORIES
38
	# On supprime le suffice "/domains"
39
	# On supprime le suffice "/domains"
39
	$SED "s?\/domains??g" $BL_CATEGORIES
40
	$SED "s?\/domains??g" $BL_CATEGORIES
40
	rm -f $DIR_DNS_FILTER_AVAILABLE/*
41
	rm -f $DIR_DNS_FILTER_AVAILABLE/*
41
	echo -n "Adaptation de la BL Toulouse. Veuillez patienter : "
42
	echo -n "Adaptation de la BL Toulouse. Veuillez patienter : "
42
	# On copie les fichiers de domaine pour chaque catégorie
43
	# On copie les fichiers de domaine pour chaque catégorie
Line 56... Line 57...
56
 
57
 
57
# Permet d'activer/désactiver les catégories de la BL
58
# Permet d'activer/désactiver les catégories de la BL
58
function cat_choice (){
59
function cat_choice (){
59
	# un peu de ménage
60
	# un peu de ménage
60
	rm -rf $DIR_DNS_FILTER_ENABLED/*
61
	rm -rf $DIR_DNS_FILTER_ENABLED/*
61
	$SED "/\.Include/d" $DIR_DANSGUARDIAN/bannedsitelist $DIR_DANSGUARDIAN/bannedurllist
62
	$SED "/\.Include/d" $DIR_DG/bannedsitelist $DIR_DG/bannedurllist
62
	# on adapte le fichier $BL_CATEGORIES au choix de catégorie 
63
	# on adapte le fichier $BL_CATEGORIES au choix de catégorie 
63
	$SED "s?^[^#]?#&?g" $BL_CATEGORIES # on commente ce qui ne l'est pas
64
	$SED "s?^[^#]?#&?g" $BL_CATEGORIES # on commente ce qui ne l'est pas
64
	for ENABLE_CATEGORIE in `cat $BL_CATEGORIES_ENABLED`
65
	for ENABLE_CATEGORIE in `cat $BL_CATEGORIES_ENABLED`
65
	do
66
	do
66
		$SED "/\/$ENABLE_CATEGORIE$/d" $BL_CATEGORIES
67
		$SED "/\/$ENABLE_CATEGORIE$/d" $BL_CATEGORIES
Line 71... Line 72...
71
	# on affecte les catégories à dansguardian et dnsmasq
72
	# on affecte les catégories à dansguardian et dnsmasq
72
	for i in `cat $BL_CATEGORIES_ENABLED`
73
	for i in `cat $BL_CATEGORIES_ENABLED`
73
		do
74
		do
74
		ln -s $DIR_DNS_FILTER_AVAILABLE/$i.conf $DIR_DNS_FILTER_ENABLED/$i
75
		ln -s $DIR_DNS_FILTER_AVAILABLE/$i.conf $DIR_DNS_FILTER_ENABLED/$i
75
		# echo ".Include<$DIR_DANSGUARDIAN/blacklists/$i/domains>" >> $DIR_DANSGUARDIAN/bannedsitelist
76
		# echo ".Include<$DIR_DANSGUARDIAN/blacklists/$i/domains>" >> $DIR_DANSGUARDIAN/bannedsitelist
76
		echo ".Include<$DIR_DANSGUARDIAN/blacklists/$i/urls>" >> $DIR_DANSGUARDIAN/bannedurllist
77
		echo ".Include<$DIR_DG_BL/$i/urls>" >> $DIR_DG/bannedurllist
77
		done
78
		done
78
}
79
}
79
usage="Usage: alcasar-bl.sh -on | -off | -download| -reload"
80
usage="Usage: alcasar-bl.sh -on | -off | -download| -reload"
80
nb_args=$#
81
nb_args=$#
81
args=$1
82
args=$1
Line 91... Line 92...
91
		;;
92
		;;
92
	# activation du filtrage
93
	# activation du filtrage
93
	-on)	
94
	-on)	
94
		cat_choice
95
		cat_choice
95
		$SED "s/^reportinglevel =.*/reportinglevel = 3/g" /etc/dansguardian/dansguardian.conf
96
		$SED "s/^reportinglevel =.*/reportinglevel = 3/g" /etc/dansguardian/dansguardian.conf
-
 
97
		if [ ! $PARENT_SCRIPT -eq "alcasar.sh" ] # on ne relance pas les processus d'une install
-
 
98
		then
96
		service dansguardian restart
99
		service dansguardian restart
97
		service dnsmasq restart
100
		service dnsmasq restart
-
 
101
		fi
98
		;;
102
		;;
99
	# désactivation du filtrage
103
	# désactivation du filtrage
100
	-off)
104
	-off)
101
		rm -rf $DIR_DNS_FILTER_ENABLED/*
105
		rm -rf $DIR_DNS_FILTER_ENABLED/*
102
		$SED "s/^reportinglevel =.*/reportinglevel = -1/g" /etc/dansguardian/dansguardian.conf
106
		$SED "s/^reportinglevel =.*/reportinglevel = -1/g" /etc/dansguardian/dansguardian.conf
-
 
107
		if [ ! $PARENT_SCRIPT -eq "alcasar.sh" ] # on ne relance pas les processus lors d'une install
-
 
108
		then
103
		service dansguardian reload
109
		service dansguardian restart
104
		service dnsmasq restart
110
		service dnsmasq restart
-
 
111
		fi
105
		;;
112
		;;
106
	# Mise a jour de la blacklist 'Toulouse' et adaptation à dansguardian et dnsmasq
113
	# Mise a jour de la blacklist 'Toulouse' et adaptation à dansguardian et dnsmasq
107
	-download)
114
	-download)
108
		rm -rf /tmp/con_ok.html
115
		rm -rf /tmp/con_ok.html
109
		`/usr/bin/curl $BL_SERVER -# -o /tmp/con_ok.html`
116
		`/usr/bin/curl $BL_SERVER -# -o /tmp/con_ok.html`
Line 111... Line 118...
111
		then
118
		then
112
			echo "Erreur : le serveur de blacklist ($BL_SERVER) n'est pas joignable"
119
			echo "Erreur : le serveur de blacklist ($BL_SERVER) n'est pas joignable"
113
		else 
120
		else 
114
			transfert
121
			transfert
115
			install
122
			install
116
			chown -R dansguardian:apache $DIR_DANSGUARDIAN
123
			chown -R dansguardian:apache $DIR_DG
117
			chmod -R g+w $DIR_DANSGUARDIAN
124
			chmod -R g+w $DIR_DG
118
			DATE=`date '+%d %B %Y - %Hh%M'`
125
			DATE=`date '+%d %B %Y - %Hh%M'`
119
			echo "Univ-tlse du $DATE " > /var/www/html/VERSION-BL
126
			echo "Univ-tlse du $DATE " > /var/www/html/VERSION-BL
120
			rm -rf /tmp/con_ok.html
127
			rm -rf /tmp/con_ok.html
121
		fi
128
		fi
122
		adapt
129
		adapt
123
		;;		
130
		;;		
124
	# regénération suite à modification (choix catégories ou BL secondaire)
131
	# regénération suite à modification (choix catégories ou BL secondaire)
125
	-reload)
132
	-reload)
126
		# pour Dansguardian
133
		# pour Dansguardian
127
		chown -R dansguardian:apache $DIR_DANSGUARDIAN/blacklists/ossi
134
		chown -R dansguardian:apache $DIR_DG_BL/ossi
128
		chmod -R g+w $DIR_DANSGUARDIAN/blacklists/ossi
135
		chmod -R g+w $DIR_DG_BL/ossi
129
		cat_choice
136
		cat_choice
130
		service dansguardian restart
137
		service dansguardian restart
131
		# pour dnsmasq (noms de domaine réhabilités)
138
		# pour dnsmasq (noms de domaine réhabilités)
132
		if [ `wc -w $DIR_DANSGUARDIAN/exceptionsitelist|cut -d " " -f1` != "0" ]
139
		if [ `wc -w $DIR_DG/exceptionsitelist|cut -d " " -f1` != "0" ]
133
		then
140
		then
134
			for i in `cat $DIR_DANSGUARDIAN/exceptionsitelist`
141
			for i in `cat $DIR_DG/exceptionsitelist`
135
			do
142
			do
136
				$SED "/$i/d" $DIR_DNS_FILTER_AVAILABLE/*
143
				$SED "/$i/d" $DIR_DNS_FILTER_AVAILABLE/*
137
			done
144
			done
138
		fi
145
		fi
139
		cp -f $DIR_DANSGUARDIAN/blacklists/ossi/domains $DIR_DNS_FILTER_AVAILABLE/ossi.conf
146
		cp -f $DIR_DG_BL/ossi/domains $DIR_DNS_FILTER_AVAILABLE/ossi.conf
140
		$SED "s?.*?address=/&/$IP_RETOUR?g" $DIR_DNS_FILTER_AVAILABLE/ossi.conf
147
		$SED "s?.*?address=/&/$IP_RETOUR?g" $DIR_DNS_FILTER_AVAILABLE/ossi.conf
141
		service dnsmasq restart
148
		service dnsmasq restart
142
;;
149
;;
143
	*)
150
	*)
144
		echo "Argument inconnu :$1";
151
		echo "Argument inconnu :$1";