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 |
|