Line 1... |
Line 1... |
1 |
#/bin/bash
|
1 |
#/bin/bash
|
2 |
|
2 |
|
3 |
# $Id: alcasar-bl.sh 2099 2016-12-17 03:42:24Z raphael.pion $
|
3 |
# $Id: alcasar-bl.sh 2187 2017-04-27 22:18:45Z richard $
|
4 |
|
4 |
|
5 |
# alcasar-bl.sh
|
5 |
# alcasar-bl.sh
|
6 |
# by Franck BOUIJOUX and Richard REY
|
6 |
# by Franck BOUIJOUX and Richard REY
|
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 |
|
Line 217... |
Line 217... |
217 |
if [ ! -f $PATH_FILE/urls ] # create 'urls' file if it doesn't exist
|
217 |
if [ ! -f $PATH_FILE/urls ] # create 'urls' file if it doesn't exist
|
218 |
then
|
218 |
then
|
219 |
touch $PATH_FILE/urls
|
219 |
touch $PATH_FILE/urls
|
220 |
chown dansguardian:apache $PATH_FILE/urls
|
220 |
chown dansguardian:apache $PATH_FILE/urls
|
221 |
fi
|
221 |
fi
|
- |
|
222 |
$SED "/[äâëêïîöôüû@]/d" $FILE_tmp
|
- |
|
223 |
$SED "/^#.*/d" $FILE_tmp
|
222 |
$SED "s/\.\{2,10\}/\./g" $PATH_FILE/domains $PATH_FILE/urls # correct some syntax errors
|
224 |
$SED "s/\.\{2,10\}/\./g" $PATH_FILE/domains $PATH_FILE/urls # correct some syntax errors
|
223 |
# extract ip addresses for iptables
|
225 |
# extract ip addresses for iptables
|
224 |
awk '/^([0-9]{1,3}\.){3}[0-9]{1,3}$/{print "add bl_ip_blocked " $0}' $PATH_FILE/domains > $FILE_ip_tmp
|
226 |
awk '/^([0-9]{1,3}\.){3}[0-9]{1,3}$/{print "add bl_ip_blocked " $0}' $PATH_FILE/domains > $FILE_ip_tmp
|
225 |
# for dnsmask, remove IP addesses, accented characters and commented lines.
|
227 |
# for dnsmask, remove IP addesses, accented characters and commented lines.
|
226 |
egrep -v "^([0-9]{1,3}\.){3}[0-9]{1,3}$" $PATH_FILE/domains > $FILE_tmp
|
228 |
egrep -v "^([0-9]{1,3}\.){3}[0-9]{1,3}$" $PATH_FILE/domains > $FILE_tmp
|
227 |
$SED "/[äâëêïîöôüû]/d" $FILE_tmp
|
- |
|
228 |
$SED "/^#.*/d" $FILE_tmp
|
- |
|
229 |
if [ "$LIST" == "$BL_CATEGORIES" ]
|
229 |
if [ "$LIST" == "$BL_CATEGORIES" ]
|
230 |
then
|
230 |
then
|
231 |
# adapt to the dnsmasq syntax for the blacklist
|
231 |
# adapt to the dnsmasq syntax for the blacklist
|
232 |
$SED "s?.*?address=/&/$PRIVATE_IP?g" $FILE_tmp
|
232 |
$SED "s?.*?address=/&/$PRIVATE_IP?g" $FILE_tmp
|
233 |
mv $FILE_tmp $DIR_DNS_BL/$DOMAIN.conf
|
233 |
mv $FILE_tmp $DIR_DNS_BL/$DOMAIN.conf
|
Line 263... |
Line 263... |
263 |
$SED "/^$/d" $PATH_FILE/domains $PATH_FILE/urls # remove empty lines
|
263 |
$SED "/^$/d" $PATH_FILE/domains $PATH_FILE/urls # remove empty lines
|
264 |
# extract ip addresses for iptables
|
264 |
# extract ip addresses for iptables
|
265 |
awk '/^([0-9]{1,3}\.){3}[0-9]{1,3}$/{print "add bl_ip_blocked " $0}' $PATH_FILE/domains > $FILE_ip_tmp
|
265 |
awk '/^([0-9]{1,3}\.){3}[0-9]{1,3}$/{print "add bl_ip_blocked " $0}' $PATH_FILE/domains > $FILE_ip_tmp
|
266 |
# for dnsmask, remove IP addresses, accentuated characters and commented lines.
|
266 |
# for dnsmask, remove IP addresses, accentuated characters and commented lines.
|
267 |
egrep -v "^([0-9]{1,3}\.){3}[0-9]{1,3}$" $PATH_FILE/domains > $FILE_tmp
|
267 |
egrep -v "^([0-9]{1,3}\.){3}[0-9]{1,3}$" $PATH_FILE/domains > $FILE_tmp
|
268 |
$SED "/[äâëêïîöôüû]/d" $FILE_tmp
|
268 |
$SED "/[äâëêïîöôüû@]/d" $FILE_tmp
|
269 |
$SED "/^#.*/d" $FILE_tmp
|
269 |
$SED "/^#.*/d" $FILE_tmp
|
270 |
black=`grep black $PATH_FILE/usage |wc -l`
|
270 |
black=`grep black $PATH_FILE/usage |wc -l`
|
271 |
if [ $black == "1" ]
|
271 |
if [ $black == "1" ]
|
272 |
then
|
272 |
then
|
273 |
# adapt to the dnsmasq syntax for the blacklist
|
273 |
# adapt to the dnsmasq syntax for the blacklist
|
Line 325... |
Line 325... |
325 |
then
|
325 |
then
|
326 |
categorie_type="black"
|
326 |
categorie_type="black"
|
327 |
else
|
327 |
else
|
328 |
categorie_type="white"
|
328 |
categorie_type="white"
|
329 |
fi
|
329 |
fi
|
330 |
$SED "s/\.\{2,10\}/\./g" $ossi_custom_dir/domains $ossi_custom_dir/urls # correction 'coma" instead of 'dot'
|
330 |
$SED "s/\.\{2,10\}/\./g" $ossi_custom_dir/domains $ossi_custom_dir/urls # correction 'coma' instead of 'dot'
|
331 |
$SED "/^$/d" $ossi_custom_dir/domains $ossi_custom_dir/urls # remove empty lines
|
331 |
$SED "/^$/d" $ossi_custom_dir/domains $ossi_custom_dir/urls # remove empty lines
|
332 |
$SED "s/\r//" $ossi_custom_dir/domains $ossi_custom_dir/urls # remove Windows <CR>
|
332 |
$SED "s/\r//" $ossi_custom_dir/domains $ossi_custom_dir/urls # remove Windows <CR>
|
333 |
# extract ip addresses for iptables
|
333 |
# extract ip addresses for iptables
|
334 |
awk '/^([0-9]{1,3}\.){3}[0-9]{1,3}$/{print "add bl_ip_blocked " $0}' $ossi_custom_dir/domains > $FILE_ip_tmp
|
334 |
awk '/^([0-9]{1,3}\.){3}[0-9]{1,3}$/{print "add bl_ip_blocked " $0}' $ossi_custom_dir/domains > $FILE_ip_tmp
|
335 |
|
- |
|
336 |
#Extract domain name for dnsmask and check synthax of domain names
|
335 |
egrep -v "^([0-9]{1,3}\.){3}[0-9]{1,3}$" $ossi_custom_dir/domains > $FILE_tmp
|
337 |
grep -Eo "([a-zA-Z0-9_-.]+\.){1,2}[a-zA-Z]{2,$MAX_TDL}" $ossi_custom_dir/domains > $FILE_tmp
|
336 |
# search for correction egrep "([a-zA-Z0-9_-.]+\.){1,2}[a-zA-Z]{2,$MAX_TLD}" $ossi_custom_dir/domains > $FILE_tmp
|
338 |
|
- |
|
339 |
if [ $categorie_type == "white" ]
|
337 |
if [ $categorie_type == "white" ]
|
340 |
then
|
338 |
then
|
341 |
# adapt the file to the dnsmasq syntax and enable it if needed
|
339 |
# adapt the file to the dnsmasq syntax and enable it if needed
|
342 |
# for the WL
|
340 |
# for the WL
|
343 |
$SED "s?.*?server=/&/$DNS1?g" $FILE_tmp
|
341 |
$SED "s?.*?server=/&/$DNS1?g" $FILE_tmp
|