diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-03-07 08:21:55 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-03-07 08:27:19 +0100 |
commit | 83940a99be2ddc1f1ab1f2679dbc808db72df32d (patch) | |
tree | dbbf0da45f9c0b4a09bae67dbc488dfbd02121f1 | |
parent | 684238c70e7cb6c903c2e6bfa30f2c99002a2a30 (diff) | |
download | itzks-systems-83940a99be2ddc1f1ab1f2679dbc808db72df32d.tar.gz itzks-systems-83940a99be2ddc1f1ab1f2679dbc808db72df32d.tar.bz2 itzks-systems-83940a99be2ddc1f1ab1f2679dbc808db72df32d.zip |
sbin/e2guardian-update-shallalists: Rewrite and rename to sbin/e2guardian-update-blacklists. Obtain blacklists from University of Toulouse now.
-rw-r--r-- | debian/itzks-systems-filter.install | 2 | ||||
-rw-r--r-- | debian/itzks-systems-filter.manpages | 2 | ||||
-rw-r--r-- | etc/cron.d/itzks-systems-filter | 4 | ||||
-rw-r--r-- | man/e2guardian-update-blacklists.8 (renamed from man/e2guardian-update-shallalists.8) | 14 | ||||
-rwxr-xr-x | sbin/e2guardian-update-blacklists | 147 | ||||
-rwxr-xr-x | sbin/e2guardian-update-shallalists | 72 |
6 files changed, 160 insertions, 81 deletions
diff --git a/debian/itzks-systems-filter.install b/debian/itzks-systems-filter.install index 5298025..f757290 100644 --- a/debian/itzks-systems-filter.install +++ b/debian/itzks-systems-filter.install @@ -1,5 +1,5 @@ usr-lib-nagios-plugins/check_squid usr/lib/nagios/plugins/ etc/cron.d/itzks-systems-filter etc/systemd/system/autofs.service -sbin/e2guardian-update-shallalists usr/sbin/ +sbin/e2guardian-update-blacklists usr/sbin/ sbin/itzks-puppet-refresh-ssl usr/sbin/ diff --git a/debian/itzks-systems-filter.manpages b/debian/itzks-systems-filter.manpages index 5840249..af5580f 100644 --- a/debian/itzks-systems-filter.manpages +++ b/debian/itzks-systems-filter.manpages @@ -1 +1 @@ -man/e2guardian-update-shallalists.8
\ No newline at end of file +man/e2guardian-update-blacklists.8 diff --git a/etc/cron.d/itzks-systems-filter b/etc/cron.d/itzks-systems-filter index a0d8c31..84e862c 100644 --- a/etc/cron.d/itzks-systems-filter +++ b/etc/cron.d/itzks-systems-filter @@ -1,5 +1,5 @@ MAILTO=root PATH=/usr/bin:/bin:/usr/sbin:/sbin -#run e2guardian-update-shallalists script -0 21 * * 0 [ -x /usr/sbin/e2guardian-update-shallalists ] && http_proxy="" https_proxy="" /usr/sbin/e2guardian-update-shallalists +#run e2guardian-update-blacklists script +0 21 * * 0 [ -x /usr/sbin/e2guardian-update-blacklists ] && http_proxy="" https_proxy="" /usr/sbin/e2guardian-update-blacklists diff --git a/man/e2guardian-update-shallalists.8 b/man/e2guardian-update-blacklists.8 index 3bca2f8..61a30b8 100644 --- a/man/e2guardian-update-shallalists.8 +++ b/man/e2guardian-update-blacklists.8 @@ -5,18 +5,20 @@ \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac -.TH e2guardian-update-shalllists 8 "April 2019" "Version 2019.04.04.2" "IT-Zukunft Schule" +.TH e2guardian-update-blacklists 8 "March 2023" "Version 2023.03.07.1" "IT-Zukunft Schule" .SH NAME -e2guardian-update-shalllists \- Update content filter blacklists provided by Shalla Secure Services KG +e2guardian-update-blacklists \- Update content filter blacklists provided by University of Toulouse .SH SYNOPSIS 'nh .fi .ad l -.B e2guardian-update-shalllists +.B e2guardian-update-blacklists .SH DESCRIPTION This script is to be installed as a CRON job. It can be used to regularly -install/update URL blacklists provided by Shalla Secure Services KG. +install/update URL blacklists provided by University of Toulouse at +ftp://ftp.ut-capitole.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz + .PP The blacklists will be downloaded and installed to /var/lib/e2guardian/blacklists. .PP @@ -24,8 +26,10 @@ To make these lists available to e2guardian, make sure to include those list via /etc/e2guardian/lists/bannedurllist and /etc/e2guardian/lists/bannedsitelist. .PP +The backlists also contain sets of whitelists that can also be integrated in +the e2guardian configuration. .SH OPTIONS -\fBe2guardian-update-shalllists\fR has no known options. +\fBe2guardian-update-blacklists\fR has no known options. .PP .SH AUTHOR This manual has been written by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> for the IT-Zukunft Schule project diff --git a/sbin/e2guardian-update-blacklists b/sbin/e2guardian-update-blacklists new file mode 100755 index 0000000..c58c96b --- /dev/null +++ b/sbin/e2guardian-update-blacklists @@ -0,0 +1,147 @@ +#!/bin/bash + +# Copyright (C) 2016 by Mike Gabriel <mike.gabriel@it-zukunft-schule.de> + +# This script is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This script is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +set -e + +unset http_proxy +unset https_proxy +unset ftp_proxy + +BLACKLIST_URL="http://dsi.ut-capitole.fr/blacklists/download/blacklists_for_dansguardian.tar.gz" + +function update_blacklists() { + mkdir -p /var/lib/e2guardian/ + curl "${BLACKLIST_URL}" 1> /var/lib/e2guardian/blacklists.tar.gz 2>/dev/null + + if [ -e /var/lib/e2guardian/.blacklists.new ]; then + rm -Rf /var/lib/e2guardian/.blacklists.new + fi + + mkdir -p /var/lib/e2guardian/.blacklists.new + + cd /var/lib/e2guardian/.blacklists.new + tar xzf /var/lib/e2guardian/blacklists.tar.gz + + mv blacklists/* . + rmdir blacklists/ + + cd - 1>/dev/null + + if [ -e /var/lib/e2guardian/blacklists.old ]; then + rm -Rf /var/lib/e2guardian/blacklists.old + fi + + if [ -d /var/lib/e2guardian/blacklists ]; then + mv /var/lib/e2guardian/blacklists /var/lib/e2guardian/blacklists.old + fi + + if [ ! -e /var/lib/e2guardian/blacklists ]; then + mv /var/lib/e2guardian/.blacklists.new /var/lib/e2guardian/blacklists + + LANG=C date 1> /var/lib/e2guardian/last-updated.txt + + chown root:root -Rf /var/lib/e2guardian/blacklists + chmod -Rf a+r /var/lib/e2guardian/blacklists + cd /var/lib/e2guardian/blacklists + find * -type d | while read dir; do + chmod a+x "${dir}" + done + cd - 1> /dev/null + + fi + + if [ -e /var/lib/e2guardian/blacklists.tar.gz ]; then + rm -f /var/lib/e2guardian/blacklists.tar.gz + fi +} + +function update_whitelists() { + if [ -d /var/lib/e2guardian/whitelists.old ]; then + rm -Rf /var/lib/e2guardian/whitelists.old + fi + if [ -d /var/lib/e2guardian/whitelists ]; then + mv /var/lib/e2guardian/whitelists /var/lib/e2guardian/whitelists.old + fi + + mkdir -p /var/lib/e2guardian/whitelists + find /var/lib/e2guardian/blacklists/*/usage | while read usage; do + # skip symlinked dirs + if [ -h "$(dirname "${usage}")" ]; then + continue + fi + if grep -q "white" < "${usage}" && ! grep -q "black" < "${usage}"; then + mv "$(dirname "${usage}")" /var/lib/e2guardian/whitelists + fi + done +} + +function init_config() { + if [ ! -e "/etc/debian-edu/e2guardian_blacklisted_categories" ]; then + find /var/lib/e2guardian/blacklists/* -maxdepth 1 -type d| cut -d "/" -f6 >> /etc/debian-edu/e2guardian_blacklisted_categories + fi + if [ ! -e "/etc/debian-edu/e2guardian_whitelisted_categories" ]; then + find /var/lib/e2guardian/whitelists/* -maxdepth 1 -type d| cut -d "/" -f6 >> /etc/debian-edu/e2guardian_whitelisted_categories + fi +} + +function rearrange_lists() { + cat "/etc/debian-edu/e2guardian_whitelisted_categories" | while read whitelisted; do + if [ -d "/var/lib/e2guardian/blacklists/${whitelisted}" ] && \ + [ ! -h "/var/lib/e2guardian/blacklists/${whitelisted}" ]; then + mv "/var/lib/e2guardian/blacklists/${whitelisted}" /var/lib/e2guardian/whitelists + fi + done + + cat "/etc/debian-edu/e2guardian_blacklisted_categories" | while read blacklisted; do + if [ -d "/var/lib/e2guardian/whitelists/${blacklisted}" ] && \ + [ ! -h "/var/lib/e2guardian/whitelists/${blacklisted}" ]; then + mv "/var/lib/e2guardian/whitelists/${blacklisted}" /var/lib/e2guardian/blacklists + fi + done +} + +function update_lists() { + action=${1} + type="${2}" + list="${3}" + + sed -i "/etc/e2guardian/lists/${list}" -Ee "/(#|).Include<.*\/${action}s\/.*>$/d" + + find /var/lib/e2guardian/${action}s/*/${type} -type f -maxdepth 1 2>/dev/null | sort | while read path; do + # ignore symlinks pointing to another category dir + if [ ! -h "$(echo $path | cut -d "/" -f 1-6)" ]; then + echo "#.Include<${path}>" >> "/etc/e2guardian/lists/${list}" + fi + done + + cat /etc/debian-edu/e2guardian_${action}ed_categories | grep -v "^#" | while read category; do + sed -i "/etc/e2guardian/lists/${list}" -Ee "s/#(.Include<.*\/${category}\/${type})/\1/" + done +} + +update_blacklists +update_whitelists +init_config +rearrange_lists +update_lists blacklist domains bannedsitelist +update_lists blacklist urls bannedurllist +update_lists blacklist expressions bannedregexpurllist +update_lists whitelist domains exceptionsitelist +update_lists whitelist urls exceptionurllist +#invoke-rc.d e2guardian restart 1>/dev/null 2>/dev/null diff --git a/sbin/e2guardian-update-shallalists b/sbin/e2guardian-update-shallalists deleted file mode 100755 index 756e83c..0000000 --- a/sbin/e2guardian-update-shallalists +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2016 by Mike Gabriel <mike.gabriel@it-zukunft-schule.de> - -# This script is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This script is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the -# Free Software Foundation, Inc., -# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - -set -e - -unset http_proxy -unset https_proxy -unset ftp_proxy - -SHALLA_BLACKLIST_URL="http://www.shallalist.de/Downloads/shallalist.tar.gz" - -mkdir -p /var/lib/e2guardian/ -curl "$SHALLA_BLACKLIST_URL" 1> /var/lib/e2guardian/blacklists.tar.gz 2>/dev/null - -if [ -e /var/lib/e2guardian/.blacklists.new ]; then - rm -Rf /var/lib/e2guardian/.blacklists.new -fi - -mkdir -p /var/lib/e2guardian/.blacklists.new - -cd /var/lib/e2guardian/.blacklists.new -tar xzf /var/lib/e2guardian/blacklists.tar.gz - -mv BL/* . -rmdir BL/ - -cd - 1>/dev/null - -if [ -e /var/lib/e2guardian/blacklists.old ]; then - rm -Rf /var/lib/e2guardian/blacklists.old -fi - -if [ -d /var/lib/e2guardian/blacklists ]; then - mv /var/lib/e2guardian/blacklists /var/lib/e2guardian/blacklists.old -fi - -if [ ! -e /var/lib/e2guardian/blacklists ]; then - mv /var/lib/e2guardian/.blacklists.new /var/lib/e2guardian/blacklists - - LANG=C date 1> /var/lib/e2guardian/last-updated.txt - - chown root:root -Rf /var/lib/e2guardian/blacklists - chmod -Rf a+r /var/lib/e2guardian/blacklists - cd /var/lib/e2guardian/blacklists - find * -type d | while read dir; do - chmod a+x "${dir}" - done - cd - 1> /dev/null - - invoke-rc.d e2guardian restart 1>/dev/null 2>/dev/null -fi - -if [ -e /var/lib/e2guardian/blacklists.tar.gz ]; then - rm -f /var/lib/e2guardian/blacklists.tar.gz -fi - |