Subversion Repositories ALCASAR

Rev

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

Rev 2521 Rev 2648
1
#!/bin/bash
1
#!/bin/bash
2
 
2
 
3
# Id: $Id: alcasar-url_filter_bl.sh 2521 2018-04-02 19:46:16Z armand.ito $
3
# Id: $Id: alcasar-url_filter_bl.sh 2648 2018-11-02 22:33:33Z lucas.echard $
4
 
4
 
5
# alcasar-url_filter.sh
5
# alcasar-url_filter.sh
6
# by REXY
6
# by REXY
7
# This script is distributed under the Gnu General Public License (GPL)
7
# This script is distributed under the Gnu General Public License (GPL)
8
 
8
 
9
# Active / désactive : safesearch des moteurs de recherche
9
# Active / désactive : safesearch des moteurs de recherche
10
# Enable / disable : search engines safesearch
10
# Enable / disable : search engines safesearch
11
# Active / désactive : le filtrage des url contenant une adresse ip à la place d'un nom de domaine
11
# Active / désactive : le filtrage des url contenant une adresse ip à la place d'un nom de domaine
12
# Enable / disable : filter of urls containing ip address instead of domain name
12
# Enable / disable : filter of urls containing ip address instead of domain name
13
 
13
 
14
DIR_DG="/etc/e2guardian/lists"
14
DIR_DG="/etc/e2guardian/lists"
15
DNSMASQ_BL_CONF="/etc/dnsmasq-blacklist.conf"
15
DNSMASQ_BL_CONF="/etc/dnsmasq-blacklist.conf"
16
CONF_FILE="/usr/local/etc/alcasar.conf"
16
CONF_FILE="/usr/local/etc/alcasar.conf"
17
SED="/bin/sed -i"
17
SED="/bin/sed -i"
18
safesearch="Off"
18
safesearch="Off"
19
pureip="Off"
19
pureip="Off"
20
usage="Usage: alcasar-url_filter_bl.sh { -safesearch_on or -safesearch_off } & { -pureip_on or --pureip_off }"
20
usage="Usage: alcasar-url_filter_bl.sh { -safesearch_on or -safesearch_off } & { -pureip_on or --pureip_off }"
-
 
21
 
-
 
22
googledomains="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."
-
 
23
 
-
 
24
youtubedomains="www.youtube.com m.youtube.com youtubei.googleapis.com youtube.googleapis.com www.youtube-nocookie.com"
-
 
25
 
21
nb_args=$#
26
nb_args=$#
22
if [ $nb_args -le 1 ]
27
if [ $nb_args -le 1 ]
23
then
28
then
24
	echo "$usage"
29
	echo "$usage"
25
	nb_args=0
30
	nb_args=0
26
else
31
else
27
	while [ $nb_args -ge 1 ]
32
	while [ $nb_args -ge 1 ]
28
	do
33
	do
29
		arg=${!nb_args}
34
		arg=${!nb_args}
30
		case $arg in
35
		case $arg in
31
		-\? | -h* | --h*)
36
		-\? | -h* | --h*)
32
			echo "$usage"
37
			echo "$usage"
33
			exit 0
38
			exit 0
34
			;;
39
			;;
35
		# Safe search activation
40
		# Safe search activation
36
		-safesearch_on | --safesearch_on)
41
		-safesearch_on | --safesearch_on)
37
			safesearch="On"
42
			safesearch="On"
38
			;;
43
			;;
39
		# Safe search desactivation
44
		# Safe search desactivation
40
		-safesearch_off | --safesearch_off)
45
		-safesearch_off | --safesearch_off)
41
			safesearch="Off"
46
			safesearch="Off"
42
			;;
47
			;;
43
		# pure_ip activation
48
		# pure_ip activation
44
		-pureip_on | --pureip_on)
49
		-pureip_on | --pureip_on)
45
			pureip="On"
50
			pureip="On"
46
			;;
51
			;;
47
		# pureip desactivation
52
		# pureip desactivation
48
		-pureip_off | --pureip_off)
53
		-pureip_off | --pureip_off)
49
			pureip="Off"
54
			pureip="Off"
50
			;;
55
			;;
51
		*)
56
		*)
52
			echo "Argument inconnu :$arg";
57
			echo "Argument inconnu :$arg";
53
			echo "$usage"
58
			echo "$usage"
54
			exit 1
59
			exit 1
55
			;;
60
			;;
56
		esac
61
		esac
57
	nb_args=$(expr $nb_args - 1)
62
	nb_args=$(expr $nb_args - 1)
58
	done
63
	done
59
	if [ $safesearch == "On" ]
64
	if [ $safesearch == "On" ]
60
	then
65
	then
61
		$SED "s?^#\"?\"?g" $DIR_DG/urlregexplist # on décommente les lignes de regles
66
		$SED "s?^#\"?\"?g" $DIR_DG/urlregexplist # on décommente les lignes de regles
62
# add 'nosslsearch' redirection for google searching
-
 
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
-
 
65
#		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
67
 
67
#		do
-
 
68
#			echo "address=/$gg_dnsname/$nossl_server" >> $DNSMASQ_BL_CONF
-
 
69
#		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
		google_safe_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 $googledomains
75
		do
73
		do
76
			echo "address=/$gg_dnsname/$forcesafesearch_server" >> $DNSMASQ_BL_CONF
74
			echo "address=/$gg_dnsname/$google_safe_server" >> $DNSMASQ_BL_CONF
77
		done
75
		done
-
 
76
 
-
 
77
		# add 'SafeSearch' redirection for bing searching
-
 
78
		$SED "/bing/d" $DNSMASQ_BL_CONF # remove old bing declaration
-
 
79
		bing_safe_server=`host -ta strict.bing.com | grep "address" | cut -d" " -f4`	# retrieve bing strict ip
-
 
80
		echo "# SafeSearch redirect server for bing" >> $DNSMASQ_BL_CONF
-
 
81
		echo "address=/www.bing.com/$bing_safe_server" >> $DNSMASQ_BL_CONF
-
 
82
 
-
 
83
		# add 'SafeSearch' redirection for youtube searching
-
 
84
		$SED "/youtube/d" $DNSMASQ_BL_CONF # remove old youtube declaration
-
 
85
		youtube_safe_server=`host -ta restrict.youtube.com | grep "address" | cut -d" " -f4`	# retrieve youtube restrict ip
-
 
86
		echo "# SafeSearch redirect server for youtube" >> $DNSMASQ_BL_CONF
-
 
87
		for yt_dnsname in $youtubedomains
-
 
88
		do
-
 
89
			echo "address=/$yt_dnsname/$youtube_safe_server" >> $DNSMASQ_BL_CONF
-
 
90
		done
-
 
91
 
78
	else
92
	else
79
		$SED "s?^[^#]?#&?g" $DIR_DG/urlregexplist
93
		$SED "s?^[^#]?#&?g" $DIR_DG/urlregexplist
80
		$SED "/google/d" $DNSMASQ_BL_CONF
94
		$SED "/google/d" $DNSMASQ_BL_CONF
-
 
95
		$SED "/bing/d" $DNSMASQ_BL_CONF
-
 
96
		$SED "/youtube/d" $DNSMASQ_BL_CONF
81
	fi
97
	fi
82
	if [ $pureip == "On" ]
98
	if [ $pureip == "On" ]
83
	then
99
	then
84
		$SED "s/^\#\*ip$/*ip/g" $DIR_DG/bannedsitelist
100
		$SED "s/^\#\*ip$/*ip/g" $DIR_DG/bannedsitelist
85
	else
101
	else
86
		$SED "s/^\*ip$/#*ip/g" $DIR_DG/bannedsitelist
102
		$SED "s/^\*ip$/#*ip/g" $DIR_DG/bannedsitelist
87
	fi
103
	fi
88
systemctl restart e2guardian
104
systemctl restart e2guardian
89
systemctl restart dnsmasq-blacklist
105
systemctl restart dnsmasq-blacklist
90
fi
106
fi
91
 
107