Subversion Repositories ALCASAR

Rev

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

Rev 2454 Rev 2648
1
#!/bin/bash
1
#!/bin/bash
2
 
2
 
3
# Id: $Id: alcasar-url_filter_wl.sh 2454 2017-12-09 18:59:31Z tom.houdayer $
3
# Id: $Id: alcasar-url_filter_wl.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
TINY_CONF="/etc/tinyproxy/tinyproxy.conf"
14
TINY_CONF="/etc/tinyproxy/tinyproxy.conf"
15
DNSMASQ_WL_CONF="/etc/dnsmasq-whitelist.conf"
15
DNSMASQ_WL_CONF="/etc/dnsmasq-whitelist.conf"
16
IP_WL="/usr/local/share/iptables-wl-enabled/ossi-ip-safesearch"
16
IP_WL="/usr/local/share/iptables-wl-enabled/ossi-ip-safesearch"
17
CONF_FILE="/usr/local/etc/alcasar.conf"
17
CONF_FILE="/usr/local/etc/alcasar.conf"
18
SED="/bin/sed -i"
18
SED="/bin/sed -i"
19
safesearch="Off"
19
safesearch="Off"
20
usage="Usage: alcasar-url_filter_wl.sh { -safesearch_on or -safesearch_off }"
20
usage="Usage: alcasar-url_filter_wl.sh { -safesearch_on or -safesearch_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 0 ]
27
if [ $nb_args -le 0 ]
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
		*)
48
		*)
44
			echo "Argument inconnu :$arg";
49
			echo "Argument inconnu :$arg";
45
			echo "$usage"
50
			echo "$usage"
46
			exit 1
51
			exit 1
47
			;;
52
			;;
48
		esac
53
		esac
49
	nb_args=$(expr $nb_args - 1)
54
	nb_args=$(expr $nb_args - 1)
50
	done
55
	done
51
	forcesafesearch_server=`host -ta forcesafesearch.google.com|cut -d" " -f4`	# retrieve google forcesafesearch ip
-
 
52
	if [ $safesearch == "On" ]
56
	if [ $safesearch == "On" ]
53
	then
57
	then
54
# add 'SafeSearch' redirection for google searching
-
 
55
		$SED "/google/d" $DNSMASQ_WL_CONF # remove old google declaration
-
 
56
		if [ -e $IP_WL ]
58
		if [ -e $IP_WL ]
57
		then
59
		then
58
			rm $IP_WL # remove old google declaration
60
			rm $IP_WL # remove old google declaration
59
		fi
61
		fi
-
 
62
 
-
 
63
		# add 'SafeSearch' redirection for google searching
-
 
64
		google_safe_server=`host -ta forcesafesearch.google.com | grep "address" | cut -d" " -f4`	# retrieve google forcesafesearch ip
-
 
65
		$SED "/google/d" $DNSMASQ_WL_CONF # remove old google declaration
60
		echo "# SafeSearch redirect server for google" >> $DNSMASQ_WL_CONF
66
		echo "# SafeSearch redirect server for google" >> $DNSMASQ_WL_CONF
61
		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
		for bing_dnsname in $googledomains
62
		do
68
		do
63
			echo "address=/$gg_dnsname/$forcesafesearch_server" >> $DNSMASQ_WL_CONF
69
			echo "address=/$bing_dnsname/$google_safe_server" >> $DNSMASQ_WL_CONF
64
		done
70
		done
65
		echo "add wl_ip_allowed $forcesafesearch_server" >> $IP_WL
71
		echo "add wl_ip_allowed $google_safe_server" >> $IP_WL
-
 
72
 
-
 
73
		# add 'SafeSearch' redirection for bing searching
-
 
74
		bing_safe_server=`host -ta strict.bing.com | grep "address" | cut -d" " -f4`	# retrieve bing strict ip
-
 
75
		$SED "/bing/d" $DNSMASQ_WL_CONF # remove old bing declaration
-
 
76
		echo "# SafeSearch redirect server for bing" >> $DNSMASQ_WL_CONF
-
 
77
		echo "address=/www.bing.com/$bing_safe_server" >> $DNSMASQ_WL_CONF
-
 
78
		echo "add wl_ip_allowed $bing_safe_server" >> $IP_WL
-
 
79
 
-
 
80
		# add 'SafeSearch' redirection for youtube searching
-
 
81
		youtube_safe_server=`host -ta restrict.youtube.com | grep "address" | cut -d" " -f4`	# retrieve youtube restrict ip
-
 
82
		$SED "/youtube/d" $DNSMASQ_WL_CONF # remove old youtube declaration
-
 
83
		echo "# SafeSearch redirect server for youtube" >> $DNSMASQ_WL_CONF
-
 
84
		for yt_dnsname in $youtubedomains
-
 
85
		do
-
 
86
			echo "address=/$yt_dnsname/$youtube_safe_server" >> $DNSMASQ_WL_CONF
-
 
87
		done
-
 
88
		echo "add wl_ip_allowed $youtube_safe_server" >> $IP_WL
66
	else
89
	else
67
		$SED "/google/d" $DNSMASQ_WL_CONF
90
		$SED "/google/d" $DNSMASQ_WL_CONF
-
 
91
		$SED "/bing/d" $DNSMASQ_WL_CONF
-
 
92
		$SED "/youtube/d" $DNSMASQ_WL_CONF
68
		rm $IP_WL
93
		rm $IP_WL
69
	fi
94
	fi
70
systemctl restart dnsmasq-whitelist
95
	systemctl restart dnsmasq-whitelist
71
fi
96
fi
72
 
-
 
73
 
97