Subversion Repositories ALCASAR

Rev

Rev 1624 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
881 richard 1
#/bin/bash
2
 
3
# alcasar-url_filter.sh
882 richard 4
# by REXY
881 richard 5
# This script is distributed under the Gnu General Public License (GPL)
6
 
7
# Active / désactive : safesearch des moteurs de recherche ainsi que le filtrage Youtube
8
# Enable / disable : search engines safesearch and Youtube filtering 
882 richard 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 
881 richard 11
 
12
DIR_DG="/etc/dansguardian/lists"
1377 richard 13
DNSMASQ_BL_CONF="/etc/dnsmasq-blacklist.conf"
885 richard 14
CONF_FILE="/usr/local/etc/alcasar.conf"
881 richard 15
SED="/bin/sed -i"
16
safesearch="Off"
17
pureip="Off"
882 richard 18
usage="Usage: alcasar-url_filter.sh { -safesearch_on or -safesearch_off } & { -pureip_on or --pureip_off }"
881 richard 19
nb_args=$#
882 richard 20
if [ $nb_args -le 1 ]
881 richard 21
then
882 richard 22
	echo "$usage"
23
	nb_args=0
24
else
25
	while [ $nb_args -ge 1 ]
26
	do
27
		arg=${!nb_args}
28
		case $arg in
29
		-\? | -h* | --h*)
30
			echo "$usage"
31
			exit 0
32
			;;
33
		# Safe search activation
34
		-safesearch_on | --safesearch_on)	
35
			safesearch="On"
36
			;;
37
		# Safe search desactivation
38
		-safesearch_off | --safesearch_off)	
39
			safesearch="Off"
40
			;;
41
		# pure_ip activation
42
		-pureip_on | --pureip_on)
43
			pureip="On"
44
			;;
45
		# pureip desactivation
46
		-pureip_off | --pureip_off)
47
			pureip="Off"
48
			;;
49
		*)
50
			echo "Argument inconnu :$arg";
51
			echo "$usage"
52
			exit 1
53
			;;
54
		esac
881 richard 55
	nb_args=$(expr $nb_args - 1)
882 richard 56
	done
57
	if [ $safesearch == "On" ]
58
	then
1071 richard 59
		$SED "s?^#\"?\"?g" $DIR_DG/urlregexplist # on décommente les lignes de regles
885 richard 60
		youtube_id=`grep YOUTUBE_ID $CONF_FILE|cut -d"=" -f2`
61
		$SED "s?\&edufilter=.*?\&edufilter=$youtube_id\"?g" $DIR_DG/urlregexplist
1071 richard 62
# add 'nosslsearch' redirection for google searching
1624 richard 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
#		do
68
#			echo "address=/$gg_dnsname/$nossl_server" >> $DNSMASQ_BL_CONF
69
#		done
70
# add 'SafeSearch' redirection for google searching
1071 richard 71
		$SED "/google/d" $DNSMASQ_BL_CONF # remove old google declaration
1624 richard 72
		forcesafesearch_server=`host -ta forcesafesearch.google.com|cut -d" " -f4`	# retrieve google forcesafesearch ip
73
		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 
75
		do
76
			echo "address=/$gg_dnsname/$forcesafesearch_server" >> $DNSMASQ_BL_CONF
77
		done
882 richard 78
	else
79
		$SED "s?^[^#]?#&?g" $DIR_DG/urlregexplist
1071 richard 80
		$SED "/google/d" $DNSMASQ_BL_CONF
882 richard 81
	fi
82
	if [ $pureip == "On" ]
83
	then
84
		$SED "s/^\#\*ip$/*ip/g" $DIR_DG/bannedsitelist
85
	else
86
		$SED "s/^\*ip$/#*ip/g" $DIR_DG/bannedsitelist
87
	fi
1624 richard 88
systemctl restart dansguardian
89
systemctl restart dnsmasq-blacklist
881 richard 90
fi
91