Subversion Repositories ALCASAR

Rev

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

Rev 1827 Rev 1843
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
8
# Enable / disable : search engines safesearch and Youtube filtering 
8
# Enable / disable : search engines safesearch 
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-blacklist.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_bl.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`
-
 
61
		$SED "s?\&edufilter=.*?\&edufilter=$youtube_id\"?g" $DIR_DG/urlregexplist
-
 
62
# add 'nosslsearch' redirection for google searching
60
# add 'nosslsearch' redirection for google searching
63
#		$SED "/google/d" $DNSMASQ_BL_CONF # remove old google declaration
61
#		$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
62
#		nossl_server=`host -ta nosslsearch.google.com|cut -d" " -f4`	# retrieve google nosslsearch ip
65
#		echo "# nosslsearch redirect server for google" >> $DNSMASQ_BL_CONF
63
#		echo "# nosslsearch redirect server for google" >> $DNSMASQ_BL_CONF
66
#		for gg_dnsname in .google.com .google.ad .google.ae .google.com.af .google.com.ag .google.com.ai .google.al .google.am .google.co.ao .google.com.ar .google.as .google.at .google.com.au .google.az .google.ba .google.com.bd .google.be .google.bf .google.bg .google.com.bh .google.bi .google.bj .google.com.bn .google.com.bo .google.com.br .google.bs .google.bt .google.co.bw .google.by .google.com.bz .google.ca .google.cd .google.cf .google.cg .google.ch .google.ci .google.co.ck .google.cl .google.cm .google.cn .google.com.co .google.co.cr .google.com.cu .google.cv .google.com.cy .google.cz .google.de .google.dj .google.dk .google.dm .google.com.do .google.dz .google.com.ec .google.ee .google.com.eg .google.es .google.com.et .google.fi .google.com.fj .google.fm .google.fr .google.ga .google.ge .google.gg .google.com.gh .google.com.gi .google.gl .google.gm .google.gp .google.gr .google.com.gt .google.gy .google.com.hk .google.hn .google.hr .google.ht .google.hu .google.co.id .google.ie .google.co.il .google.im .google.co.in .google.iq .google.is .google.it .google.je .google.com.jm .google.jo .google.co.jp .google.co.ke .google.com.kh .google.ki .google.kg .google.co.kr .google.com.kw .google.kz .google.la .google.com.lb .google.li .google.lk .google.co.ls .google.lt .google.lu .google.lv .google.com.ly .google.co.ma .google.md .google.me .google.mg .google.mk .google.ml .google.com.mm .google.mn .google.ms .google.com.mt .google.mu .google.mv .google.mw .google.com.mx .google.com.my .google.co.mz .google.com.na .google.com.nf .google.com.ng .google.com.ni .google.ne .google.nl .google.no .google.com.np .google.nr .google.nu .google.co.nz .google.com.om .google.com.pa .google.com.pe .google.com.pg .google.com.ph .google.com.pk .google.pl .google.pn .google.com.pr .google.ps .google.pt .google.com.py .google.com.qa .google.ro .google.ru .google.rw .google.com.sa .google.com.sb .google.sc .google.se .google.com.sg .google.sh .google.si .google.sk .google.com.sl .google.sn .google.so .google.sm .google.sr .google.st .google.com.sv .google.td .google.tg .google.co.th .google.com.tj .google.tk .google.tl .google.tm .google.tn .google.to .google.com.tr .google.tt .google.com.tw .google.co.tz .google.com.ua .google.co.ug .google.co.uk .google.com.uy .google.co.uz .google.com.vc .google.co.ve .google.vg .google.co.vi .google.com.vn .google.vu .google.ws .google.rs .google.co.za .google.co.zm .google.co.zw .google.cat 
64
#		for gg_dnsname in .google.com .google.ad .google.ae .google.com.af .google.com.ag .google.com.ai .google.al .google.am .google.co.ao .google.com.ar .google.as .google.at .google.com.au .google.az .google.ba .google.com.bd .google.be .google.bf .google.bg .google.com.bh .google.bi .google.bj .google.com.bn .google.com.bo .google.com.br .google.bs .google.bt .google.co.bw .google.by .google.com.bz .google.ca .google.cd .google.cf .google.cg .google.ch .google.ci .google.co.ck .google.cl .google.cm .google.cn .google.com.co .google.co.cr .google.com.cu .google.cv .google.com.cy .google.cz .google.de .google.dj .google.dk .google.dm .google.com.do .google.dz .google.com.ec .google.ee .google.com.eg .google.es .google.com.et .google.fi .google.com.fj .google.fm .google.fr .google.ga .google.ge .google.gg .google.com.gh .google.com.gi .google.gl .google.gm .google.gp .google.gr .google.com.gt .google.gy .google.com.hk .google.hn .google.hr .google.ht .google.hu .google.co.id .google.ie .google.co.il .google.im .google.co.in .google.iq .google.is .google.it .google.je .google.com.jm .google.jo .google.co.jp .google.co.ke .google.com.kh .google.ki .google.kg .google.co.kr .google.com.kw .google.kz .google.la .google.com.lb .google.li .google.lk .google.co.ls .google.lt .google.lu .google.lv .google.com.ly .google.co.ma .google.md .google.me .google.mg .google.mk .google.ml .google.com.mm .google.mn .google.ms .google.com.mt .google.mu .google.mv .google.mw .google.com.mx .google.com.my .google.co.mz .google.com.na .google.com.nf .google.com.ng .google.com.ni .google.ne .google.nl .google.no .google.com.np .google.nr .google.nu .google.co.nz .google.com.om .google.com.pa .google.com.pe .google.com.pg .google.com.ph .google.com.pk .google.pl .google.pn .google.com.pr .google.ps .google.pt .google.com.py .google.com.qa .google.ro .google.ru .google.rw .google.com.sa .google.com.sb .google.sc .google.se .google.com.sg .google.sh .google.si .google.sk .google.com.sl .google.sn .google.so .google.sm .google.sr .google.st .google.com.sv .google.td .google.tg .google.co.th .google.com.tj .google.tk .google.tl .google.tm .google.tn .google.to .google.com.tr .google.tt .google.com.tw .google.co.tz .google.com.ua .google.co.ug .google.co.uk .google.com.uy .google.co.uz .google.com.vc .google.co.ve .google.vg .google.co.vi .google.com.vn .google.vu .google.ws .google.rs .google.co.za .google.co.zm .google.co.zw .google.cat 
67
#		do
65
#		do
68
#			echo "address=/$gg_dnsname/$nossl_server" >> $DNSMASQ_BL_CONF
66
#			echo "address=/$gg_dnsname/$nossl_server" >> $DNSMASQ_BL_CONF
69
#		done
67
#		done
70
# add 'SafeSearch' redirection for google searching
68
# add 'SafeSearch' redirection for google searching
71
		$SED "/google/d" $DNSMASQ_BL_CONF # remove old google declaration
69
		$SED "/google/d" $DNSMASQ_BL_CONF # remove old google declaration
72
		forcesafesearch_server=`host -ta forcesafesearch.google.com|cut -d" " -f4`	# retrieve google forcesafesearch ip
70
		forcesafesearch_server=`host -ta forcesafesearch.google.com|cut -d" " -f4`	# retrieve google forcesafesearch ip
73
		echo "# SafeSearch redirect server for google" >> $DNSMASQ_BL_CONF
71
		echo "# SafeSearch redirect server for google" >> $DNSMASQ_BL_CONF
74
		for gg_dnsname in .google.com .google.ad .google.ae .google.com.af .google.com.ag .google.com.ai .google.al .google.am .google.co.ao .google.com.ar .google.as .google.at .google.com.au .google.az .google.ba .google.com.bd .google.be .google.bf .google.bg .google.com.bh .google.bi .google.bj .google.com.bn .google.com.bo .google.com.br .google.bs .google.bt .google.co.bw .google.by .google.com.bz .google.ca .google.cd .google.cf .google.cg .google.ch .google.ci .google.co.ck .google.cl .google.cm .google.cn .google.com.co .google.co.cr .google.com.cu .google.cv .google.com.cy .google.cz .google.de .google.dj .google.dk .google.dm .google.com.do .google.dz .google.com.ec .google.ee .google.com.eg .google.es .google.com.et .google.fi .google.com.fj .google.fm .google.fr .google.ga .google.ge .google.gg .google.com.gh .google.com.gi .google.gl .google.gm .google.gp .google.gr .google.com.gt .google.gy .google.com.hk .google.hn .google.hr .google.ht .google.hu .google.co.id .google.ie .google.co.il .google.im .google.co.in .google.iq .google.is .google.it .google.je .google.com.jm .google.jo .google.co.jp .google.co.ke .google.com.kh .google.ki .google.kg .google.co.kr .google.com.kw .google.kz .google.la .google.com.lb .google.li .google.lk .google.co.ls .google.lt .google.lu .google.lv .google.com.ly .google.co.ma .google.md .google.me .google.mg .google.mk .google.ml .google.com.mm .google.mn .google.ms .google.com.mt .google.mu .google.mv .google.mw .google.com.mx .google.com.my .google.co.mz .google.com.na .google.com.nf .google.com.ng .google.com.ni .google.ne .google.nl .google.no .google.com.np .google.nr .google.nu .google.co.nz .google.com.om .google.com.pa .google.com.pe .google.com.pg .google.com.ph .google.com.pk .google.pl .google.pn .google.com.pr .google.ps .google.pt .google.com.py .google.com.qa .google.ro .google.ru .google.rw .google.com.sa .google.com.sb .google.sc .google.se .google.com.sg .google.sh .google.si .google.sk .google.com.sl .google.sn .google.so .google.sm .google.sr .google.st .google.com.sv .google.td .google.tg .google.co.th .google.com.tj .google.tk .google.tl .google.tm .google.tn .google.to .google.com.tr .google.tt .google.com.tw .google.co.tz .google.com.ua .google.co.ug .google.co.uk .google.com.uy .google.co.uz .google.com.vc .google.co.ve .google.vg .google.co.vi .google.com.vn .google.vu .google.ws .google.rs .google.co.za .google.co.zm .google.co.zw .google.cat 
72
		for gg_dnsname in .google.com .google.ad .google.ae .google.com.af .google.com.ag .google.com.ai .google.al .google.am .google.co.ao .google.com.ar .google.as .google.at .google.com.au .google.az .google.ba .google.com.bd .google.be .google.bf .google.bg .google.com.bh .google.bi .google.bj .google.com.bn .google.com.bo .google.com.br .google.bs .google.bt .google.co.bw .google.by .google.com.bz .google.ca .google.cd .google.cf .google.cg .google.ch .google.ci .google.co.ck .google.cl .google.cm .google.cn .google.com.co .google.co.cr .google.com.cu .google.cv .google.com.cy .google.cz .google.de .google.dj .google.dk .google.dm .google.com.do .google.dz .google.com.ec .google.ee .google.com.eg .google.es .google.com.et .google.fi .google.com.fj .google.fm .google.fr .google.ga .google.ge .google.gg .google.com.gh .google.com.gi .google.gl .google.gm .google.gp .google.gr .google.com.gt .google.gy .google.com.hk .google.hn .google.hr .google.ht .google.hu .google.co.id .google.ie .google.co.il .google.im .google.co.in .google.iq .google.is .google.it .google.je .google.com.jm .google.jo .google.co.jp .google.co.ke .google.com.kh .google.ki .google.kg .google.co.kr .google.com.kw .google.kz .google.la .google.com.lb .google.li .google.lk .google.co.ls .google.lt .google.lu .google.lv .google.com.ly .google.co.ma .google.md .google.me .google.mg .google.mk .google.ml .google.com.mm .google.mn .google.ms .google.com.mt .google.mu .google.mv .google.mw .google.com.mx .google.com.my .google.co.mz .google.com.na .google.com.nf .google.com.ng .google.com.ni .google.ne .google.nl .google.no .google.com.np .google.nr .google.nu .google.co.nz .google.com.om .google.com.pa .google.com.pe .google.com.pg .google.com.ph .google.com.pk .google.pl .google.pn .google.com.pr .google.ps .google.pt .google.com.py .google.com.qa .google.ro .google.ru .google.rw .google.com.sa .google.com.sb .google.sc .google.se .google.com.sg .google.sh .google.si .google.sk .google.com.sl .google.sn .google.so .google.sm .google.sr .google.st .google.com.sv .google.td .google.tg .google.co.th .google.com.tj .google.tk .google.tl .google.tm .google.tn .google.to .google.com.tr .google.tt .google.com.tw .google.co.tz .google.com.ua .google.co.ug .google.co.uk .google.com.uy .google.co.uz .google.com.vc .google.co.ve .google.vg .google.co.vi .google.com.vn .google.vu .google.ws .google.rs .google.co.za .google.co.zm .google.co.zw .google.cat 
75
		do
73
		do
76
			echo "address=/$gg_dnsname/$forcesafesearch_server" >> $DNSMASQ_BL_CONF
74
			echo "address=/$gg_dnsname/$forcesafesearch_server" >> $DNSMASQ_BL_CONF
77
		done
75
		done
78
	else
76
	else
79
		$SED "s?^[^#]?#&?g" $DIR_DG/urlregexplist
77
		$SED "s?^[^#]?#&?g" $DIR_DG/urlregexplist
80
		$SED "/google/d" $DNSMASQ_BL_CONF
78
		$SED "/google/d" $DNSMASQ_BL_CONF
81
	fi
79
	fi
82
	if [ $pureip == "On" ]
80
	if [ $pureip == "On" ]
83
	then
81
	then
84
		$SED "s/^\#\*ip$/*ip/g" $DIR_DG/bannedsitelist
82
		$SED "s/^\#\*ip$/*ip/g" $DIR_DG/bannedsitelist
85
	else
83
	else
86
		$SED "s/^\*ip$/#*ip/g" $DIR_DG/bannedsitelist
84
		$SED "s/^\*ip$/#*ip/g" $DIR_DG/bannedsitelist
87
	fi
85
	fi
88
systemctl restart dansguardian
86
systemctl restart dansguardian
89
systemctl restart dnsmasq-blacklist
87
systemctl restart dnsmasq-blacklist
90
fi
88
fi
91
 
-
 
92
 
89