summaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-03-07 08:21:55 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-03-07 08:27:19 +0100
commit83940a99be2ddc1f1ab1f2679dbc808db72df32d (patch)
treedbbf0da45f9c0b4a09bae67dbc488dfbd02121f1 /sbin
parent684238c70e7cb6c903c2e6bfa30f2c99002a2a30 (diff)
downloaditzks-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.
Diffstat (limited to 'sbin')
-rwxr-xr-xsbin/e2guardian-update-blacklists147
-rwxr-xr-xsbin/e2guardian-update-shallalists72
2 files changed, 147 insertions, 72 deletions
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
-