Subversion Repositories ALCASAR

Rev

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

Rev 1071 Rev 1377
1
#/bin/bash
1
#/bin/bash
2
 
2
 
3
# alcasar-url_filter.sh
3
# alcasar-url_filter.sh
4
# by REXY
4
# by REXY
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
# Active / désactive : safesearch des moteurs de recherche ainsi que le filtrage Youtube
7
# Active / désactive : safesearch des moteurs de recherche ainsi que le filtrage Youtube
8
# Enable / disable : search engines safesearch and Youtube filtering 
8
# Enable / disable : search engines safesearch and Youtube filtering 
9
# Active / désactive : le filtrage des url contenant une adresse ip à la place d'un nom de domaine
9
# Active / désactive : le filtrage des url contenant une adresse ip à la place d'un nom de domaine
10
# Enable / disable : filter of urls containing ip address instead of domain name 
10
# Enable / disable : filter of urls containing ip address instead of domain name 
11
 
11
 
12
DIR_DG="/etc/dansguardian/lists"
12
DIR_DG="/etc/dansguardian/lists"
13
DNSMASQ_BL_CONF="/etc/dnsmasq-blackhole.conf"
13
DNSMASQ_BL_CONF="/etc/dnsmasq-blacklist.conf"
14
CONF_FILE="/usr/local/etc/alcasar.conf"
14
CONF_FILE="/usr/local/etc/alcasar.conf"
15
SED="/bin/sed -i"
15
SED="/bin/sed -i"
16
safesearch="Off"
16
safesearch="Off"
17
pureip="Off"
17
pureip="Off"
18
usage="Usage: alcasar-url_filter.sh { -safesearch_on or -safesearch_off } & { -pureip_on or --pureip_off }"
18
usage="Usage: alcasar-url_filter.sh { -safesearch_on or -safesearch_off } & { -pureip_on or --pureip_off }"
19
nb_args=$#
19
nb_args=$#
20
if [ $nb_args -le 1 ]
20
if [ $nb_args -le 1 ]
21
then
21
then
22
	echo "$usage"
22
	echo "$usage"
23
	nb_args=0
23
	nb_args=0
24
else
24
else
25
	while [ $nb_args -ge 1 ]
25
	while [ $nb_args -ge 1 ]
26
	do
26
	do
27
		arg=${!nb_args}
27
		arg=${!nb_args}
28
		case $arg in
28
		case $arg in
29
		-\? | -h* | --h*)
29
		-\? | -h* | --h*)
30
			echo "$usage"
30
			echo "$usage"
31
			exit 0
31
			exit 0
32
			;;
32
			;;
33
		# Safe search activation
33
		# Safe search activation
34
		-safesearch_on | --safesearch_on)	
34
		-safesearch_on | --safesearch_on)	
35
			safesearch="On"
35
			safesearch="On"
36
			;;
36
			;;
37
		# Safe search desactivation
37
		# Safe search desactivation
38
		-safesearch_off | --safesearch_off)	
38
		-safesearch_off | --safesearch_off)	
39
			safesearch="Off"
39
			safesearch="Off"
40
			;;
40
			;;
41
		# pure_ip activation
41
		# pure_ip activation
42
		-pureip_on | --pureip_on)
42
		-pureip_on | --pureip_on)
43
			pureip="On"
43
			pureip="On"
44
			;;
44
			;;
45
		# pureip desactivation
45
		# pureip desactivation
46
		-pureip_off | --pureip_off)
46
		-pureip_off | --pureip_off)
47
			pureip="Off"
47
			pureip="Off"
48
			;;
48
			;;
49
		*)
49
		*)
50
			echo "Argument inconnu :$arg";
50
			echo "Argument inconnu :$arg";
51
			echo "$usage"
51
			echo "$usage"
52
			exit 1
52
			exit 1
53
			;;
53
			;;
54
		esac
54
		esac
55
	nb_args=$(expr $nb_args - 1)
55
	nb_args=$(expr $nb_args - 1)
56
	done
56
	done
57
	if [ $safesearch == "On" ]
57
	if [ $safesearch == "On" ]
58
	then
58
	then
59
		$SED "s?^#\"?\"?g" $DIR_DG/urlregexplist # on décommente les lignes de regles
59
		$SED "s?^#\"?\"?g" $DIR_DG/urlregexplist # on décommente les lignes de regles
60
		youtube_id=`grep YOUTUBE_ID $CONF_FILE|cut -d"=" -f2`
60
		youtube_id=`grep YOUTUBE_ID $CONF_FILE|cut -d"=" -f2`
61
		$SED "s?\&edufilter=.*?\&edufilter=$youtube_id\"?g" $DIR_DG/urlregexplist
61
		$SED "s?\&edufilter=.*?\&edufilter=$youtube_id\"?g" $DIR_DG/urlregexplist
62
# add 'nosslsearch' redirection for google searching
62
# add 'nosslsearch' redirection for google searching
63
		$SED "/google/d" $DNSMASQ_BL_CONF # remove old google declaration
63
		$SED "/google/d" $DNSMASQ_BL_CONF # remove old google declaration
64
		nossl_server=`host -ta nosslsearch.google.com|cut -d" " -f4`	# retrieve google nosslsearch ip
64
		nossl_server=`host -ta nosslsearch.google.com|cut -d" " -f4`	# retrieve google nosslsearch ip
65
		echo "# nosslsearch redirect server for google" >> $DNSMASQ_BL_CONF
65
		echo "# nosslsearch redirect server for google" >> $DNSMASQ_BL_CONF
66
		echo "address=/www.google.com/$nossl_server" >> $DNSMASQ_BL_CONF
66
		echo "address=/www.google.com/$nossl_server" >> $DNSMASQ_BL_CONF
67
		echo "address=/www.google.fr/$nossl_server" >> $DNSMASQ_BL_CONF
67
		echo "address=/www.google.fr/$nossl_server" >> $DNSMASQ_BL_CONF
68
	else
68
	else
69
		$SED "s?^[^#]?#&?g" $DIR_DG/urlregexplist
69
		$SED "s?^[^#]?#&?g" $DIR_DG/urlregexplist
70
		$SED "/google/d" $DNSMASQ_BL_CONF
70
		$SED "/google/d" $DNSMASQ_BL_CONF
71
	fi
71
	fi
72
	if [ $pureip == "On" ]
72
	if [ $pureip == "On" ]
73
	then
73
	then
74
		$SED "s/^\#\*ip$/*ip/g" $DIR_DG/bannedsitelist
74
		$SED "s/^\#\*ip$/*ip/g" $DIR_DG/bannedsitelist
75
	else
75
	else
76
		$SED "s/^\*ip$/#*ip/g" $DIR_DG/bannedsitelist
76
		$SED "s/^\*ip$/#*ip/g" $DIR_DG/bannedsitelist
77
	fi
77
	fi
78
service dansguardian restart
78
service dansguardian restart
79
service dnsmasq restart
79
service dnsmasq restart
80
fi
80
fi
81
 
81
 
82
 
82