Line 1... |
Line 1... |
1 |
#/bin/sh
|
1 |
#/bin/sh
|
2 |
# $Id: alcasar-bl.sh 637 2011-06-16 21:56:59Z richard $
|
2 |
# $Id: alcasar-bl.sh 648 2011-06-25 21:31:06Z richard $
|
3 |
|
3 |
|
4 |
# Script de gestion de la BL pour le filtrage de domaine (via dnsmasq) et d'URL (via dansguardian)
|
4 |
# Script de gestion de la BL pour le filtrage de domaine (via dnsmasq) et d'URL (via dansguardian)
|
5 |
# By 3abtux & rexy
|
5 |
# By 3abtux & rexy
|
6 |
|
6 |
|
7 |
CONF_FILE="/usr/local/etc/alcasar.conf"
|
7 |
CONF_FILE="/usr/local/etc/alcasar.conf"
|
Line 21... |
Line 21... |
21 |
function transfert () {
|
21 |
function transfert () {
|
22 |
mkdir -p $DIR_tmp
|
22 |
mkdir -p $DIR_tmp
|
23 |
cd $DIR_tmp
|
23 |
cd $DIR_tmp
|
24 |
wget http://$BL_SERVER/blacklists/download/blacklists.tar.gz
|
24 |
wget http://$BL_SERVER/blacklists/download/blacklists.tar.gz
|
25 |
}
|
25 |
}
|
26 |
|
- |
|
27 |
# Décompression de la BL (en conservant la WL)
|
26 |
# Décompression de la BL (en conservant la WL)
|
28 |
function install () {
|
27 |
function install () {
|
29 |
[ -d $DIR_DG ] || mkdir -p $DIR_DG
|
28 |
[ -d $DIR_DG ] || mkdir -p $DIR_DG
|
30 |
[ -d $DIR_DG_BL/ossi ] && mv -f $DIR_DG_BL/ossi $DIR_tmp
|
29 |
[ -d $DIR_DG_BL/ossi ] && mv -f $DIR_DG_BL/ossi $DIR_tmp
|
- |
|
30 |
[ -d $DIR_DG_BL/ip ] && mv -f $DIR_DG_BL/ip $DIR_tmp
|
31 |
tar zxf $DIR_tmp/blacklists.tar.gz --directory=$DIR_DG/
|
31 |
tar zxf $DIR_tmp/blacklists.tar.gz --directory=$DIR_DG/
|
32 |
[ -d $DIR_tmp/ossi ] && mv -f $DIR_tmp/ossi $DIR_DG_BL/
|
32 |
[ -d $DIR_tmp/ossi ] && mv -f $DIR_tmp/ossi $DIR_DG_BL/
|
- |
|
33 |
[ -d $DIR_tmp/ip ] && mv -f $DIR_tmp/ip $DIR_DG_BL/
|
33 |
cd /root
|
34 |
cd /root
|
34 |
rm -rf $DIR_tmp
|
35 |
rm -rf $DIR_tmp
|
35 |
}
|
36 |
}
|
36 |
|
- |
|
37 |
# Adaptation de la BL Toulouse à la structure Dnsmasq
|
37 |
# Adaptation de la BL Toulouse à la structure Dnsmasq
|
38 |
function adapt () {
|
38 |
function adapt () {
|
39 |
# On récupère le nom des répertoire (catégories)
|
39 |
# On récupère le nom des répertoire (catégories)
|
40 |
find $DIR_DG_BL/ -type f -name domains > $BL_CATEGORIES
|
40 |
find $DIR_DG_BL/ -type f -name domains > $BL_CATEGORIES
|
41 |
# On supprime le suffice "/domains"
|
41 |
# On supprime le suffice "/domains"
|
Line 44... |
Line 44... |
44 |
echo -n "Toulouse BlackList migration process. Please wait : "
|
44 |
echo -n "Toulouse BlackList migration process. Please wait : "
|
45 |
# pour chaque catégorie
|
45 |
# pour chaque catégorie
|
46 |
for PATH_FILE in `cat $BL_CATEGORIES`
|
46 |
for PATH_FILE in `cat $BL_CATEGORIES`
|
47 |
do
|
47 |
do
|
48 |
echo -n "."
|
48 |
echo -n "."
|
49 |
# on crée le le fichier 'urls' s'il n'existe pas
|
49 |
# on crée le fichier 'urls' s'il n'existe pas
|
50 |
if [ ! -f $PATH_FILE/urls ]
|
50 |
if [ ! -f $PATH_FILE/urls ]
|
51 |
then
|
51 |
then
|
52 |
touch $PATH_FILE/urls
|
52 |
touch $PATH_FILE/urls
|
53 |
chown dansguardian:apache $PATH_FILE/urls
|
53 |
chown dansguardian:apache $PATH_FILE/urls
|
54 |
fi
|
54 |
fi
|
55 |
# on suppression des @IP, des lignes commentées et des caractères bizarres comme les ô et û ö ü
|
55 |
# suppression des @IP, des lignes commentées et des caractères bizarres comme les ô et û ö ü
|
56 |
egrep -v "([0-9]{1,3}\.){3}[0-9]{1,3}" $PATH_FILE/domains > /tmp/dnsmasq-bl.tmp
|
56 |
egrep -v "([0-9]{1,3}\.){3}[0-9]{1,3}" $PATH_FILE/domains > /tmp/dnsmasq-bl.tmp
|
57 |
$SED "/[äâëêïîöôüû]/d" /tmp/dnsmasq-bl.tmp
|
57 |
$SED "/[äâëêïîöôüû]/d" /tmp/dnsmasq-bl.tmp
|
58 |
$SED "/^#.*/d" /tmp/dnsmasq-bl.tmp
|
58 |
$SED "/^#.*/d" /tmp/dnsmasq-bl.tmp
|
59 |
# Mise en forme dnsmasq
|
59 |
# Mise en forme dnsmasq
|
60 |
$SED "s?.*?address=/&/$IP_RETOUR?g" /tmp/dnsmasq-bl.tmp
|
60 |
$SED "s?.*?address=/&/$IP_RETOUR?g" /tmp/dnsmasq-bl.tmp
|
61 |
DOMAINE=`basename $PATH_FILE`
|
61 |
DOMAINE=`basename $PATH_FILE`
|
62 |
mv /tmp/dnsmasq-bl.tmp $DIR_DNS_FILTER_AVAILABLE/$DOMAINE.conf
|
62 |
mv /tmp/dnsmasq-bl.tmp $DIR_DNS_FILTER_AVAILABLE/$DOMAINE.conf
|
63 |
done
|
63 |
done
|
64 |
echo
|
64 |
echo
|
65 |
}
|
65 |
}
|
66 |
|
- |
|
67 |
# Permet d'activer/désactiver les catégories de la BL
|
66 |
# Permet d'activer/désactiver les catégories de la BL
|
68 |
function cat_choice (){
|
67 |
function cat_choice (){
|
69 |
# un peu de ménage
|
68 |
# un peu de ménage
|
70 |
rm -rf $DIR_DNS_FILTER_ENABLED/*
|
69 |
rm -rf $DIR_DNS_FILTER_ENABLED/*
|
71 |
$SED "/\.Include/d" $DIR_DG/bannedsitelist $DIR_DG/bannedurllist
|
70 |
$SED "/\.Include/d" $DIR_DG/bannedsitelist $DIR_DG/bannedurllist
|
72 |
# on adapte le fichier $BL_CATEGORIES au choix de catégorie
|
71 |
# on adapte le fichier $BL_CATEGORIES au choix de catégorie
|
73 |
$SED "s?^[^#]?#&?g" $BL_CATEGORIES # on commente ce qui ne l'est pas
|
72 |
$SED "s?^[^#]?#&?g" $BL_CATEGORIES # on commente ce qui ne l'est pas
|
74 |
for ENABLE_CATEGORIE in `cat $BL_CATEGORIES_ENABLED`
|
73 |
for ENABLE_CATEGORIE in `cat $BL_CATEGORIES_ENABLED` # on affecte les catégories à dansguardian et dnsmasq
|
75 |
do
|
74 |
do
|
76 |
$SED "/\/$ENABLE_CATEGORIE$/d" $BL_CATEGORIES
|
75 |
$SED "/\/$ENABLE_CATEGORIE$/d" $BL_CATEGORIES
|
77 |
$SED "1i\/etc\/dansguardian\/lists\/blacklists\/$ENABLE_CATEGORIE" $BL_CATEGORIES
|
76 |
$SED "1i\/etc\/dansguardian\/lists\/blacklists\/$ENABLE_CATEGORIE" $BL_CATEGORIES
|
- |
|
77 |
ln -s $DIR_DNS_FILTER_AVAILABLE/$ENABLE_CATEGORIE.conf $DIR_DNS_FILTER_ENABLED/$ENABLE_CATEGORIE
|
- |
|
78 |
# echo ".Include<$DIR_DANSGUARDIAN/blacklists/$ENABLE_CATEGORIES/domains>" >> $DIR_DANSGUARDIAN/bannedsitelist # dansguardian ne s'occupe plus des noms de domaine
|
- |
|
79 |
echo ".Include<$DIR_DG_BL/$ENABLE_CATEGORIE/urls>" >> $DIR_DG/bannedurllist
|
78 |
done
|
80 |
done
|
79 |
sort -k2n $BL_CATEGORIES > $FILE_tmp
|
81 |
sort -k2n $BL_CATEGORIES > $FILE_tmp
|
80 |
mv $FILE_tmp $BL_CATEGORIES
|
82 |
mv $FILE_tmp $BL_CATEGORIES
|
81 |
# on affecte les catégories à dansguardian et dnsmasq
|
- |
|
82 |
for i in `cat $BL_CATEGORIES_ENABLED`
|
- |
|
83 |
do
|
- |
|
84 |
ln -s $DIR_DNS_FILTER_AVAILABLE/$i.conf $DIR_DNS_FILTER_ENABLED/$i
|
- |
|
85 |
# echo ".Include<$DIR_DANSGUARDIAN/blacklists/$i/domains>" >> $DIR_DANSGUARDIAN/bannedsitelist
|
- |
|
86 |
echo ".Include<$DIR_DG_BL/$i/urls>" >> $DIR_DG/bannedurllist
|
- |
|
87 |
done
|
- |
|
88 |
}
|
83 |
}
|
89 |
function bl_enable (){
|
84 |
function bl_enable (){
|
90 |
$SED "s/^reportinglevel =.*/reportinglevel = 3/g" /etc/dansguardian/dansguardian.conf
|
85 |
$SED "s/^reportinglevel =.*/reportinglevel = 3/g" /etc/dansguardian/dansguardian.conf
|
91 |
$SED "s?^#\"?\"?g" $DIR_DG/urlregexplist # Enable 'safesearch'
|
86 |
$SED "s?^#\"?\"?g" $DIR_DG/urlregexplist # Enable 'safesearch'
|
92 |
if [ "$PARENT_SCRIPT" != "/usr/local/bin/alcasar-conf.sh" ] # don't launch on install stage
|
87 |
if [ "$PARENT_SCRIPT" != "/usr/local/bin/alcasar-conf.sh" ] # don't launch on install stage
|
Line 172... |
Line 167... |
172 |
$SED "/$i/d" $DIR_DNS_FILTER_AVAILABLE/*
|
167 |
$SED "/$i/d" $DIR_DNS_FILTER_AVAILABLE/*
|
173 |
done
|
168 |
done
|
174 |
fi
|
169 |
fi
|
175 |
cp -f $DIR_DG_BL/ossi/domains $DIR_DNS_FILTER_AVAILABLE/ossi.conf
|
170 |
cp -f $DIR_DG_BL/ossi/domains $DIR_DNS_FILTER_AVAILABLE/ossi.conf
|
176 |
$SED "s?.*?address=/&/$IP_RETOUR?g" $DIR_DNS_FILTER_AVAILABLE/ossi.conf
|
171 |
$SED "s?.*?address=/&/$IP_RETOUR?g" $DIR_DNS_FILTER_AVAILABLE/ossi.conf
|
- |
|
172 |
IP_PURE=`grep '^ip' $BL_CATEGORIES_ENABLED|wc -l`
|
- |
|
173 |
if [ $IP_PURE -eq "1" ]; then # filtrage des url sans nom de domaine
|
- |
|
174 |
$SED "s/^\#\*ip$/*ip/g" $DIR_DG/bannedsitelist
|
- |
|
175 |
else
|
- |
|
176 |
$SED "s/^\*ip$/#*ip/g" $DIR_DG/bannedsitelist
|
- |
|
177 |
fi
|
177 |
DNS_FILTERING=`grep DNS_FILTERING $CONF_FILE|cut -d"=" -f2` # DNS and URLs filter (on/off)
|
178 |
DNS_FILTERING=`grep DNS_FILTERING $CONF_FILE|cut -d"=" -f2` # DNS and URLs filter (on/off)
|
178 |
DNS_FILTERING=${DNS_FILTERING:=off}
|
179 |
DNS_FILTERING=${DNS_FILTERING:=off}
|
179 |
if [ $DNS_FILTERING = on ]; then
|
180 |
if [ $DNS_FILTERING = on ]; then
|
180 |
bl_enable
|
181 |
bl_enable
|
181 |
else
|
182 |
else
|