Benutzer-Werkzeuge

Webseiten-Werkzeuge


Action disabled: source
tachtler:e2guardian_centos_7

Inhaltsverzeichnis

e2guardian CentOS 7

E2guardian ist ein einfach zu installierender, schneller Webseiten-Inhaltsfilter, der einem Proxy, z.B. Squid vorgeschaltet wird. Das Paket besteht aus dem eigentlichen Programm, einem Wörterbuch und einer Konfigurationsdatei. E2guardian durchsucht Texte nach Stichwörtern aus dem Wörterbuch und addiert dessen Bewertungen. Bei Überschreiten der Schmerzgrenze wird eine HTML-Informationsseite im Browser angezeigt. Für Bilder wird das PICS-Verfahren verwendet. Das Wörterbuch besteht aus ASCII-Dateien und kann selbst editiert werden. Zusätzlich zum Wörterbuch können URLs, Header uvm. eingetragen werden.

:!: HINWEIS - E2guardian ist ein „fork“ von Dansguardian

:!: Hinweis - Die nachfolgenden Ausführungen erheben keinen Anspruch auf Vollständigkeit, sondern stellt eine „Basiskonfiguration“ eines E2guardian als Content Filter-Server dar!!!

Beschreibung Externer Link
Homepage http://e2guardian.org

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Voraussetzungen

Als Voraussetzung für die Installation von E2guardian sind folgende Komponenten erforderlich:

Nachfolgende rpm-Pakete sind als Abhängigkeit erforderlich und werden ebenfalls benötigt:

  • clamav-data - ist im epel-Repository des Drittanbieters EPEL enthalten
  • clamav-filesystem - ist im epel-Repository des Drittanbieters EPEL enthalten
  • clamav-lib - ist im epel-Repository des Drittanbieters EPEL enthalten
  • clamav-server - ist im epel-Repository des Drittanbieters EPEL enthalten

Herunterladen

Nachfolgend sollen zwei Drittanbieter-Repositories, wovon eines von dem mir sehr geschätzten Michael Nausch betrieben wird und eine sichere und verlässliche Quelle für rpm-Pakete darstellt, wie unter nachfolgendem internen Link dargestellt, eingebunden werden:

Das zweite benötigte Drittanbieter-Repository ist das von EPEL, welches wie unter nachfolgendem internen Link dargestellt, eingebunden werden kann:

Installation

:!: HINWEIS - Nachfolgend soll E2guardian Version 3.4.0 aus dem Drittanbieter-Repository mailserver.guru CentOS 7-Testing installiert werden, welches bei der Erstellung dieser Dokumentation vor liegt!

Zur Aktivierung des Drittanbieter-Repository mailserver.guru CentOS 7-Testing sind nachfolgende Konfigurationsänderungen in der Konfigurationsdatei:

  • /etc/yum.repos.d/mailserver.guru.repo

erforderlich:

# Repository mailserver.guru
[mailserver.guru-os]
name=Extra (Mailserver-)Packages for Enterprise Linux 7 - $basearch
baseurl=http://repo.mailserver.guru/7/os/$basearch
#priority=5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/MAILSERVER.GURU-RPM-GPG-KEY-CentOS-7
 
 
[mailserver.guru-testing]
name=Testing (Mailserver-)Packages for Enterprise Linux 7 - $basearch
baseurl=http://repo.mailserver.guru/7/testing/$basearch/
#priority=5
# Tachtler
# default: enabled=0
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/MAILSERVER.GURU-RPM-GPG-KEY-CentOS-7

Nachfolgend die Änderung: (nur relevanter Ausschnitt)

...
[mailserver.guru-testing]
name=Testing (Mailserver-)Packages for Enterprise Linux 7 - $basearch
baseurl=http://repo.mailserver.guru/7/testing/$basearch/
#priority=5
# Tachtler
# default: enabled=0
enabled=1
...

Nachdem das Drittanbieter-Repository

erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das rpm-Paket - e2guardian installiert werden:

# yum install e2guardian
Loaded plugins: changelog, priorities
131 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package e2guardian.x86_64 0:3.4.0-1.el7.centos will be installed
--> Processing Dependency: clamav-server for package: e2guardian-3.4.0-1.el7.centos.x86_64
--> Running transaction check
---> Package clamav-server.x86_64 0:0.98.7-1.el7 will be installed
--> Processing Dependency: clamav-lib = 0.98.7-1.el7 for package: clamav-server-0.98.7-1.el7.x86_64
--> Processing Dependency: clamav-filesystem = 0.98.7-1.el7 for package: clamav-server-0.98.7-1.el7.x86_64
--> Processing Dependency: libclamav.so.6(CLAMAV_PUBLIC)(64bit) for package: clamav-server-0.98.7-1.el7.x86_64
--> Processing Dependency: libclamav.so.6(CLAMAV_PRIVATE)(64bit) for package: clamav-server-0.98.7-1.el7.x86_64
--> Processing Dependency: data(clamav) for package: clamav-server-0.98.7-1.el7.x86_64
--> Processing Dependency: libclamav.so.6()(64bit) for package: clamav-server-0.98.7-1.el7.x86_64
--> Running transaction check
---> Package clamav-data.noarch 0:0.98.7-1.el7 will be installed
---> Package clamav-filesystem.noarch 0:0.98.7-1.el7 will be installed
---> Package clamav-lib.x86_64 0:0.98.7-1.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package            Arch    Version              Repository                Size
================================================================================
Installing:
 e2guardian         x86_64  3.4.0-1.el7.centos   mailserver.guru-testing  520 k
Installing for dependencies:
 clamav-data        noarch  0.98.7-1.el7         epel                      95 M
 clamav-filesystem  noarch  0.98.7-1.el7         epel                      19 k
 clamav-lib         x86_64  0.98.7-1.el7         epel                     3.7 M
 clamav-server      x86_64  0.98.7-1.el7         epel                      93 k

Transaction Summary
================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 99 M
Installed size: 107 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): clamav-filesystem-0.98.7-1.el7.noarch.rpm           |  19 kB   00:00     
(2/5): clamav-lib-0.98.7-1.el7.x86_64.rpm                  | 3.7 MB   00:00     
(3/5): clamav-server-0.98.7-1.el7.x86_64.rpm               |  93 kB   00:00     
(4/5): e2guardian-3.4.0-1.el7.centos.x86_64.rpm            | 520 kB   00:00     
(5/5): clamav-data-0.98.7-1.el7.noarch.rpm                 |  95 MB   00:02     
--------------------------------------------------------------------------------
Total                                               43 MB/s |  99 MB  00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : clamav-filesystem-0.98.7-1.el7.noarch                        1/5 
  Installing : clamav-data-0.98.7-1.el7.noarch                              2/5 
  Installing : clamav-lib-0.98.7-1.el7.x86_64                               3/5 
  Installing : clamav-server-0.98.7-1.el7.x86_64                            4/5 
  Installing : e2guardian-3.4.0-1.el7.centos.x86_64                         5/5 
  Verifying  : clamav-server-0.98.7-1.el7.x86_64                            1/5 
  Verifying  : e2guardian-3.4.0-1.el7.centos.x86_64                         2/5 
  Verifying  : clamav-lib-0.98.7-1.el7.x86_64                               3/5 
  Verifying  : clamav-filesystem-0.98.7-1.el7.noarch                        4/5 
  Verifying  : clamav-data-0.98.7-1.el7.noarch                              5/5 

Installed:
  e2guardian.x86_64 0:3.4.0-1.el7.centos                                        

Dependency Installed:
  clamav-data.noarch 0:0.98.7-1.el7   clamav-filesystem.noarch 0:0.98.7-1.el7  
  clamav-lib.x86_64 0:0.98.7-1.el7    clamav-server.x86_64 0:0.98.7-1.el7      

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket e2guardian installiert wurden.

# rpm -qil e2guardian
Name        : e2guardian
Version     : 3.4.0
Release     : 1.el7.centos
Architecture: x86_64
Install Date: Wed 10 Jun 2015 12:23:13 PM CEST
Group       : System Environment/Daemons
Size        : 1710062
License     : GPLv2+
Signature   : RSA/SHA1, Wed 10 Jun 2015 10:23:25 AM CEST, Key ID 60ecfb9e8195aea0
Source RPM  : e2guardian-3.4.0-1.el7.centos.src.rpm
Build Date  : Wed 10 Jun 2015 10:22:53 AM CEST
Build Host  : vml000200.dmz.nausch.org
Relocations : (not relocatable)
Packager    : Django <django@mailserver.guru>
URL         : http://http://e2guardian.org/
Summary     : Content filtering web proxy
Description :
e2guardian is a content filtering proxy that works in conjunction with another
caching proxy such as Squid. More information can be found in the e2guardian(8)
man page, the "doc" subdirectory of the distribution, and the comments in
the configuration and list files themselves.

e2guardian is a fork of DansGuardian and the maintainers fully acknowledge the
work carried out by and the copyright of Daniel Baron and other contributors
to the Dansguardian project.

e2guardian is an Open Source web content filter, It filters the actual content
of pages based on many methods including phrase matching, request header and
URL filtering, etc. It does not purely filter based on a banned list of sites

HTTPS filtering of web contents with help of SSL bump feature from E2guardian 3.1.
/etc/clamd.d/e2guardian.conf
/etc/e2guardian
/etc/e2guardian/authplugins
/etc/e2guardian/authplugins/ident.conf
/etc/e2guardian/authplugins/ip.conf
/etc/e2guardian/authplugins/port.conf
/etc/e2guardian/authplugins/proxy-basic.conf
/etc/e2guardian/authplugins/proxy-digest.conf
/etc/e2guardian/authplugins/proxy-ntlm.conf
/etc/e2guardian/contentscanners
/etc/e2guardian/contentscanners/avastdscan.conf
/etc/e2guardian/contentscanners/clamdscan.conf
/etc/e2guardian/contentscanners/commandlinescan.conf
/etc/e2guardian/contentscanners/icapscan.conf
/etc/e2guardian/contentscanners/kavdscan.conf
/etc/e2guardian/downloadmanagers
/etc/e2guardian/downloadmanagers/default.conf
/etc/e2guardian/downloadmanagers/fancy.conf
/etc/e2guardian/downloadmanagers/trickle.conf
/etc/e2guardian/e2guardian.conf
/etc/e2guardian/e2guardianf1.conf
/etc/e2guardian/lists
/etc/e2guardian/lists/addheaderregexplist
/etc/e2guardian/lists/authexceptionsitelist
/etc/e2guardian/lists/authexceptionurllist
/etc/e2guardian/lists/authplugins
/etc/e2guardian/lists/authplugins/ipgroups
/etc/e2guardian/lists/authplugins/portgroups
/etc/e2guardian/lists/bannedextensionlist
/etc/e2guardian/lists/bannediplist
/etc/e2guardian/lists/bannedmimetypelist
/etc/e2guardian/lists/bannedphraselist
/etc/e2guardian/lists/bannedregexpheaderlist
/etc/e2guardian/lists/bannedregexpurllist
/etc/e2guardian/lists/bannedrooms
/etc/e2guardian/lists/bannedrooms/default
/etc/e2guardian/lists/bannedsearchlist
/etc/e2guardian/lists/bannedsitelist
/etc/e2guardian/lists/bannedsslsitelist
/etc/e2guardian/lists/bannedurllist
/etc/e2guardian/lists/contentregexplist
/etc/e2guardian/lists/contentscanners
/etc/e2guardian/lists/contentscanners/exceptionvirusextensionlist
/etc/e2guardian/lists/contentscanners/exceptionvirusmimetypelist
/etc/e2guardian/lists/contentscanners/exceptionvirussitelist
/etc/e2guardian/lists/contentscanners/exceptionvirusurllist
/etc/e2guardian/lists/downloadmanagers
/etc/e2guardian/lists/downloadmanagers/managedextensionlist
/etc/e2guardian/lists/downloadmanagers/managedmimetypelist
/etc/e2guardian/lists/embededreferersitelist
/etc/e2guardian/lists/embededrefererurllist
/etc/e2guardian/lists/exceptionextensionlist
/etc/e2guardian/lists/exceptionfilesitelist
/etc/e2guardian/lists/exceptionfileurllist
/etc/e2guardian/lists/exceptioniplist
/etc/e2guardian/lists/exceptionmimetypelist
/etc/e2guardian/lists/exceptionphraselist
/etc/e2guardian/lists/exceptionregexpurllist
/etc/e2guardian/lists/exceptionsitelist
/etc/e2guardian/lists/exceptionurllist
/etc/e2guardian/lists/filtergroupslist
/etc/e2guardian/lists/greysitelist
/etc/e2guardian/lists/greysslsitelist
/etc/e2guardian/lists/greyurllist
/etc/e2guardian/lists/headerregexplist
/etc/e2guardian/lists/localbannedsearchlist
/etc/e2guardian/lists/localbannedsitelist
/etc/e2guardian/lists/localbannedsslsitelist
/etc/e2guardian/lists/localbannedurllist
/etc/e2guardian/lists/localexceptionsitelist
/etc/e2guardian/lists/localexceptionurllist
/etc/e2guardian/lists/localgreysitelist
/etc/e2guardian/lists/localgreysslsitelist
/etc/e2guardian/lists/localgreyurllist
/etc/e2guardian/lists/logregexpurllist
/etc/e2guardian/lists/logsitelist
/etc/e2guardian/lists/logurllist
/etc/e2guardian/lists/nocheckcertsitelist
/etc/e2guardian/lists/phraselists
/etc/e2guardian/lists/phraselists/badwords
/etc/e2guardian/lists/phraselists/badwords/weighted_dutch
/etc/e2guardian/lists/phraselists/badwords/weighted_french
/etc/e2guardian/lists/phraselists/badwords/weighted_german
/etc/e2guardian/lists/phraselists/badwords/weighted_portuguese
/etc/e2guardian/lists/phraselists/badwords/weighted_spanish
/etc/e2guardian/lists/phraselists/chat
/etc/e2guardian/lists/phraselists/chat/weighted
/etc/e2guardian/lists/phraselists/chat/weighted_italian
/etc/e2guardian/lists/phraselists/conspiracy
/etc/e2guardian/lists/phraselists/conspiracy/weighted
/etc/e2guardian/lists/phraselists/domainsforsale
/etc/e2guardian/lists/phraselists/domainsforsale/weighted
/etc/e2guardian/lists/phraselists/drugadvocacy
/etc/e2guardian/lists/phraselists/drugadvocacy/weighted
/etc/e2guardian/lists/phraselists/forums
/etc/e2guardian/lists/phraselists/forums/weighted
/etc/e2guardian/lists/phraselists/gambling
/etc/e2guardian/lists/phraselists/gambling/banned
/etc/e2guardian/lists/phraselists/gambling/banned_portuguese
/etc/e2guardian/lists/phraselists/gambling/weighted
/etc/e2guardian/lists/phraselists/gambling/weighted_portuguese
/etc/e2guardian/lists/phraselists/games
/etc/e2guardian/lists/phraselists/games/weighted
/etc/e2guardian/lists/phraselists/goodphrases
/etc/e2guardian/lists/phraselists/goodphrases/exception
/etc/e2guardian/lists/phraselists/goodphrases/exception_email
/etc/e2guardian/lists/phraselists/goodphrases/weighted_general
/etc/e2guardian/lists/phraselists/goodphrases/weighted_general_danish
/etc/e2guardian/lists/phraselists/goodphrases/weighted_general_dutch
/etc/e2guardian/lists/phraselists/goodphrases/weighted_general_malay
/etc/e2guardian/lists/phraselists/goodphrases/weighted_general_polish
/etc/e2guardian/lists/phraselists/goodphrases/weighted_general_portuguese
/etc/e2guardian/lists/phraselists/goodphrases/weighted_general_swedish
/etc/e2guardian/lists/phraselists/goodphrases/weighted_news
/etc/e2guardian/lists/phraselists/googlesearches
/etc/e2guardian/lists/phraselists/googlesearches/banned
/etc/e2guardian/lists/phraselists/gore
/etc/e2guardian/lists/phraselists/gore/weighted
/etc/e2guardian/lists/phraselists/gore/weighted_portuguese
/etc/e2guardian/lists/phraselists/idtheft
/etc/e2guardian/lists/phraselists/idtheft/weighted
/etc/e2guardian/lists/phraselists/illegaldrugs
/etc/e2guardian/lists/phraselists/illegaldrugs/banned
/etc/e2guardian/lists/phraselists/illegaldrugs/weighted
/etc/e2guardian/lists/phraselists/illegaldrugs/weighted_portuguese
/etc/e2guardian/lists/phraselists/intolerance
/etc/e2guardian/lists/phraselists/intolerance/banned_portuguese
/etc/e2guardian/lists/phraselists/intolerance/weighted
/etc/e2guardian/lists/phraselists/intolerance/weighted_portuguese
/etc/e2guardian/lists/phraselists/legaldrugs
/etc/e2guardian/lists/phraselists/legaldrugs/weighted
/etc/e2guardian/lists/phraselists/malware
/etc/e2guardian/lists/phraselists/malware/weighted
/etc/e2guardian/lists/phraselists/music
/etc/e2guardian/lists/phraselists/music/weighted
/etc/e2guardian/lists/phraselists/news
/etc/e2guardian/lists/phraselists/news/weighted
/etc/e2guardian/lists/phraselists/nudism
/etc/e2guardian/lists/phraselists/nudism/weighted
/etc/e2guardian/lists/phraselists/peer2peer
/etc/e2guardian/lists/phraselists/peer2peer/weighted
/etc/e2guardian/lists/phraselists/personals
/etc/e2guardian/lists/phraselists/personals/weighted
/etc/e2guardian/lists/phraselists/personals/weighted_portuguese
/etc/e2guardian/lists/phraselists/pornography
/etc/e2guardian/lists/phraselists/pornography/banned
/etc/e2guardian/lists/phraselists/pornography/banned_portuguese
/etc/e2guardian/lists/phraselists/pornography/weighted
/etc/e2guardian/lists/phraselists/pornography/weighted_chinese
/etc/e2guardian/lists/phraselists/pornography/weighted_danish
/etc/e2guardian/lists/phraselists/pornography/weighted_dutch
/etc/e2guardian/lists/phraselists/pornography/weighted_french
/etc/e2guardian/lists/phraselists/pornography/weighted_german
/etc/e2guardian/lists/phraselists/pornography/weighted_italian
/etc/e2guardian/lists/phraselists/pornography/weighted_japanese
/etc/e2guardian/lists/phraselists/pornography/weighted_malay
/etc/e2guardian/lists/phraselists/pornography/weighted_norwegian
/etc/e2guardian/lists/phraselists/pornography/weighted_polish
/etc/e2guardian/lists/phraselists/pornography/weighted_portuguese
/etc/e2guardian/lists/phraselists/pornography/weighted_russian
/etc/e2guardian/lists/phraselists/pornography/weighted_russian_utf8
/etc/e2guardian/lists/phraselists/pornography/weighted_spanish
/etc/e2guardian/lists/phraselists/pornography/weighted_swedish
/etc/e2guardian/lists/phraselists/proxies
/etc/e2guardian/lists/phraselists/proxies/weighted
/etc/e2guardian/lists/phraselists/rta
/etc/e2guardian/lists/phraselists/rta/banned
/etc/e2guardian/lists/phraselists/safelabel
/etc/e2guardian/lists/phraselists/safelabel/banned
/etc/e2guardian/lists/phraselists/secretsocieties
/etc/e2guardian/lists/phraselists/secretsocieties/weighted
/etc/e2guardian/lists/phraselists/sport
/etc/e2guardian/lists/phraselists/sport/weighted
/etc/e2guardian/lists/phraselists/translation
/etc/e2guardian/lists/phraselists/translation/weighted
/etc/e2guardian/lists/phraselists/travel
/etc/e2guardian/lists/phraselists/travel/weighted
/etc/e2guardian/lists/phraselists/upstreamfilter
/etc/e2guardian/lists/phraselists/upstreamfilter/weighted
/etc/e2guardian/lists/phraselists/violence
/etc/e2guardian/lists/phraselists/violence/weighted
/etc/e2guardian/lists/phraselists/violence/weighted_portuguese
/etc/e2guardian/lists/phraselists/warezhacking
/etc/e2guardian/lists/phraselists/warezhacking/weighted
/etc/e2guardian/lists/phraselists/weapons
/etc/e2guardian/lists/phraselists/weapons/weighted
/etc/e2guardian/lists/phraselists/weapons/weighted_portuguese
/etc/e2guardian/lists/phraselists/webmail
/etc/e2guardian/lists/phraselists/webmail/weighted
/etc/e2guardian/lists/pics
/etc/e2guardian/lists/refererexceptionsitelist
/etc/e2guardian/lists/refererexceptionurllist
/etc/e2guardian/lists/searchregexplist
/etc/e2guardian/lists/urlredirectregexplist
/etc/e2guardian/lists/urlregexplist
/etc/e2guardian/lists/weightedphraselist
/etc/httpd/conf.d/e2guardian.conf
/etc/logrotate.d/e2guardian
/etc/sysconfig/clamd.e2guardian
/usr/lib/systemd/system/clamd.e2guardian.service
/usr/lib/systemd/system/e2guardian.service
/usr/sbin/clamd.e2guardian
/usr/sbin/e2guardian
/usr/share/doc/e2guardian-3.4.0
/usr/share/doc/e2guardian-3.4.0/AuthPlugins
/usr/share/doc/e2guardian-3.4.0/COPYING
/usr/share/doc/e2guardian-3.4.0/ContentScanners
/usr/share/doc/e2guardian-3.4.0/DownloadManagers
/usr/share/doc/e2guardian-3.4.0/FAQ
/usr/share/doc/e2guardian-3.4.0/FAQ.html
/usr/share/doc/e2guardian-3.4.0/INSTALL
/usr/share/doc/e2guardian-3.4.0/Plugins
/usr/share/doc/e2guardian-3.4.0/README
/usr/share/doc/e2guardian-3.4.0/UPGRADING
/usr/share/e2guardian
/usr/share/e2guardian/blockedflash.swf
/usr/share/e2guardian/e2guardian.pl
/usr/share/e2guardian/languages
/usr/share/e2guardian/languages/arspanish
/usr/share/e2guardian/languages/arspanish/fancydmtemplate.html
/usr/share/e2guardian/languages/arspanish/messages
/usr/share/e2guardian/languages/arspanish/template.html
/usr/share/e2guardian/languages/bulgarian
/usr/share/e2guardian/languages/bulgarian/fancydmtemplate.html
/usr/share/e2guardian/languages/bulgarian/messages
/usr/share/e2guardian/languages/bulgarian/template.html
/usr/share/e2guardian/languages/chinesebig5
/usr/share/e2guardian/languages/chinesebig5/fancydmtemplate.html
/usr/share/e2guardian/languages/chinesebig5/messages
/usr/share/e2guardian/languages/chinesebig5/template.html
/usr/share/e2guardian/languages/chinesegb2312
/usr/share/e2guardian/languages/chinesegb2312/fancydmtemplate.html
/usr/share/e2guardian/languages/chinesegb2312/messages
/usr/share/e2guardian/languages/chinesegb2312/template.html
/usr/share/e2guardian/languages/czech
/usr/share/e2guardian/languages/czech/fancydmtemplate.html
/usr/share/e2guardian/languages/czech/messages
/usr/share/e2guardian/languages/czech/template.html
/usr/share/e2guardian/languages/danish
/usr/share/e2guardian/languages/danish/fancydmtemplate.html
/usr/share/e2guardian/languages/danish/messages
/usr/share/e2guardian/languages/danish/template.html
/usr/share/e2guardian/languages/dutch
/usr/share/e2guardian/languages/dutch/fancydmtemplate.html
/usr/share/e2guardian/languages/dutch/messages
/usr/share/e2guardian/languages/dutch/template.html
/usr/share/e2guardian/languages/french
/usr/share/e2guardian/languages/french/fancydmtemplate.html
/usr/share/e2guardian/languages/french/messages
/usr/share/e2guardian/languages/french/template.html
/usr/share/e2guardian/languages/german
/usr/share/e2guardian/languages/german/fancydmtemplate.html
/usr/share/e2guardian/languages/german/messages
/usr/share/e2guardian/languages/german/template.html
/usr/share/e2guardian/languages/hebrew
/usr/share/e2guardian/languages/hebrew/fancydmtemplate.html
/usr/share/e2guardian/languages/hebrew/messages
/usr/share/e2guardian/languages/hebrew/template.html
/usr/share/e2guardian/languages/hungarian
/usr/share/e2guardian/languages/hungarian/fancydmtemplate.html
/usr/share/e2guardian/languages/hungarian/messages
/usr/share/e2guardian/languages/hungarian/template.html
/usr/share/e2guardian/languages/indonesian
/usr/share/e2guardian/languages/indonesian/fancydmtemplate.html
/usr/share/e2guardian/languages/indonesian/messages
/usr/share/e2guardian/languages/indonesian/template.html
/usr/share/e2guardian/languages/italian
/usr/share/e2guardian/languages/italian/fancydmtemplate.html
/usr/share/e2guardian/languages/italian/messages
/usr/share/e2guardian/languages/italian/template.html
/usr/share/e2guardian/languages/japanese
/usr/share/e2guardian/languages/japanese/fancydmtemplate.html
/usr/share/e2guardian/languages/japanese/messages
/usr/share/e2guardian/languages/japanese/template.html
/usr/share/e2guardian/languages/lithuanian
/usr/share/e2guardian/languages/lithuanian/fancydmtemplate.html
/usr/share/e2guardian/languages/lithuanian/messages
/usr/share/e2guardian/languages/lithuanian/template.html
/usr/share/e2guardian/languages/malay
/usr/share/e2guardian/languages/malay/fancydmtemplate.html
/usr/share/e2guardian/languages/malay/messages
/usr/share/e2guardian/languages/malay/template.html
/usr/share/e2guardian/languages/mxspanish
/usr/share/e2guardian/languages/mxspanish/fancydmtemplate.html
/usr/share/e2guardian/languages/mxspanish/messages
/usr/share/e2guardian/languages/mxspanish/template.html
/usr/share/e2guardian/languages/polish
/usr/share/e2guardian/languages/polish/fancydmtemplate.html
/usr/share/e2guardian/languages/polish/messages
/usr/share/e2guardian/languages/polish/template.html
/usr/share/e2guardian/languages/portuguese
/usr/share/e2guardian/languages/portuguese/fancydmtemplate.html
/usr/share/e2guardian/languages/portuguese/messages
/usr/share/e2guardian/languages/portuguese/template.html
/usr/share/e2guardian/languages/ptbrazilian
/usr/share/e2guardian/languages/ptbrazilian/fancydmtemplate.html
/usr/share/e2guardian/languages/ptbrazilian/messages
/usr/share/e2guardian/languages/ptbrazilian/template.html
/usr/share/e2guardian/languages/russian-1251
/usr/share/e2guardian/languages/russian-1251/fancydmtemplate.html
/usr/share/e2guardian/languages/russian-1251/messages
/usr/share/e2guardian/languages/russian-1251/template.html
/usr/share/e2guardian/languages/russian-koi8-r
/usr/share/e2guardian/languages/russian-koi8-r/fancydmtemplate.html
/usr/share/e2guardian/languages/russian-koi8-r/messages
/usr/share/e2guardian/languages/russian-koi8-r/template.html
/usr/share/e2guardian/languages/slovak
/usr/share/e2guardian/languages/slovak/fancydmtemplate.html
/usr/share/e2guardian/languages/slovak/messages
/usr/share/e2guardian/languages/slovak/template.html
/usr/share/e2guardian/languages/spanish
/usr/share/e2guardian/languages/spanish/fancydmtemplate.html
/usr/share/e2guardian/languages/spanish/messages
/usr/share/e2guardian/languages/spanish/template.html
/usr/share/e2guardian/languages/swedish
/usr/share/e2guardian/languages/swedish/fancydmtemplate.html
/usr/share/e2guardian/languages/swedish/messages
/usr/share/e2guardian/languages/swedish/template.html
/usr/share/e2guardian/languages/turkish
/usr/share/e2guardian/languages/turkish/fancydmtemplate.html
/usr/share/e2guardian/languages/turkish/messages
/usr/share/e2guardian/languages/turkish/template.html
/usr/share/e2guardian/languages/ukenglish
/usr/share/e2guardian/languages/ukenglish/fancydmtemplate.html
/usr/share/e2guardian/languages/ukenglish/messages
/usr/share/e2guardian/languages/ukenglish/template.html
/usr/share/e2guardian/transparent1x1.gif
/usr/share/man/man8/e2guardian.8.gz
/var/log/e2guardian
/var/run/e2guardian
/var/run/e2guardian/clamd.sock

Dienst/Deamon-Start einrichten

Um einen E2guardian, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable e2guardian.service
ln -s '/usr/lib/systemd/system/e2guardian.service' '/etc/systemd/system/multi-user.target.wants
/e2guardian.service'

Eine Überprüfung, ob beim Neustart des Server der e2guardian-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e e2guardian.service
clamd.e2guardian.service               disabled
e2guardian.service                     enabled

bzw.

# systemctl is-enabled e2guardian.service
enabled

iptables Regel

Damit der E2guardian als Content Filter-Server auch erreichbar ist und nicht die Weitergabe der IP-Paket vom Paketfilter iptables blockiert wird, muss nachfolgende Regel zum iptables-Regelwerk hinzugefügt werden.

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3128
6        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3129  
7        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Nachfolgender Befehl, fügt folgende iptables-Regeln dem iptables-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A INPUT -p tcp --dport 8080 -j ACCEPT

und hier der Befehl:

# iptables -I INPUT 7 -p tcp --dport 8080 -j ACCEPT

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3128
6        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3129
7        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080  
8        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Die neuen Zeilen sind an Position 5 (INPUT) und an Position 6 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
7        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080 
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# /usr/sbin/iptables-save > /etc/sysconfig/iptables 

Grund-Konfiguration

Nach der Installation von E2guardian sind folgende Konfigurationsdateien von Bedeutung:

  • /etc/e2guardian/e2guardian.conf (Haupt- und Programmkonfigurationsdatei)
  • /etc/e2guardian/e2guardianf1.conf (Filterkonfigurationsdatei)

In nachfolgenden Verzeichnissen, sind ebenfalls weitere Konfigurationsdateien enthalten:

  • /etc/e2guardian/authplugins (Plugins zur Authentifizierung)
  • /etc/e2guardian/contentscanners (Konfigurationen für Virenscanner)
  • /etc/e2guardian/downloadmanagers (Konfigurationen für Download-Manager)
  • /etc/e2guardian/lists (Konfigurationen für Erlaubnis- und Verbotsparameter)

/etc/e2guardian/e2guardian.conf

Da die Konfigurationsdatei /etc/e2guardian/e2guardian.conf aufgrund von Kommentar- und Leerzeichen sehr schnell unübersichtlich ist, kann mit nachfolgendem Befehl, eine Ausgabe ohne Kommentar- und Leerzeilen erzeugt werden, welche dann nach der Grundinstallation von E2guardian wie folgt aussehen sollte:

Bis Version 4.1.4:

# egrep -v '(^#|^$)' /etc/e2guardian/e2guardian.conf

Die Konfigurationsdatei /etc/e2guardian/e2guardian.conf ohne Kommentar- und Leerzeichen:

# egrep -v '(^#|^$)' /etc/e2guardian/e2guardian.conf
languagedir = '/usr/share/e2guardian/languages'
language = 'ukenglish'
loglevel = 2
logexceptionhits = 2
logfileformat = 1
 maxuploadsize = -1
filterip =
filterports = 8080
proxyip = 127.0.0.1
proxyport = 3128
proxytimeout = 20
proxyexchange = 20
pcontimeout = 55
originalip = on
usecustombannedimage = on
custombannedimagefile = '/usr/share/e2guardian/transparent1x1.gif'
usecustombannedflash = on
custombannedflashfile = '/usr/share/e2guardian/blockedflash.swf'
filtergroups = 1
filtergroupslist = '/etc/e2guardian/lists/filtergroupslist'
bannediplist = '/etc/e2guardian/lists/bannediplist'
exceptioniplist = '/etc/e2guardian/lists/exceptioniplist'
showweightedfound = on
weightedphrasemode = 2
urlcachenumber = 1000
urlcacheage = 900
scancleancache = on
phrasefiltermode = 2
preservecase = 0
hexdecodecontent = off
forcequicksearch = off
reverseaddresslookups = off
reverseclientiplookups = off
logclienthostnames = off
createlistcachefiles = on
prefercachedlists = off
maxcontentfiltersize = 256
maxcontentramcachescansize = 2000
maxcontentfilecachescansize = 20000
filecachedir = '/tmp'
deletedownloadedtempfiles = on
initialtrickledelay = 20
trickledelay = 10
downloadmanager = '/etc/e2guardian/downloadmanagers/fancy.conf'
downloadmanager = '/etc/e2guardian/downloadmanagers/default.conf'
contentscannertimeout = 60
contentscanexceptions = off
recheckreplacedurls = off
forwardedfor = off
usexforwardedfor = off
logconnectionhandlingerrors = on
logchildprocesshandling = off
maxchildren = 180
minchildren = 20
minsparechildren = 16
preforkchildren = 10
maxsparechildren = 32
maxagechildren = 500
maxips = 0
ipcfilename = '/tmp/.e2guardianipc'
urlipcfilename = '/tmp/.e2guardianurlipc'
ipipcfilename = '/tmp/.e2guardianipipc'
nodaemon = off
nologger = off
logadblocks = off
loguseragent = off
softrestart = off
mailer = '/usr/sbin/sendmail -t'

Ab Version 5.2:

# egrep -v '(^#|^ #|^$)' /etc/e2guardian/e2guardian.conf

Die Konfigurationsdatei /etc/e2guardian/e2guardian.conf ohne Kommentar- und Leerzeichen:

# egrep -v '(^#|^ #|^$)' /etc/e2guardian/e2guardian.conf
languagedir = '/usr/share/e2guardian/languages'
language = 'ukenglish'
loglevel = 3 
logexceptionhits = 2
logfileformat = 6 
filterip =
filterports = 8080
transparenthttpsport = 8443
proxytimeout = 5
connecttimeout = 5
proxyexchange = 61
pcontimeout = 55
originalip = off
usecustombannedimage = on
custombannedimagefile = '/usr/share/e2guardian/transparent1x1.gif'
usecustombannedflash = on
custombannedflashfile = '/usr/share/e2guardian/blockedflash.swf'
filtergroups = 1
filtergroupslist = '/etc/e2guardian/lists/filtergroupslist'
iplist = 'name=bannedclient,messageno=100,logmessageno=103,path=/etc/e2guardian/lists/bannediplist'
iplist = 'name=exceptionclient,messageno=600,path=/etc/e2guardian/lists/exceptioniplist'
iplist = 'name=authexception,messageno=602,path=/etc/e2guardian/lists/authexceptioniplist'
sitelist = 'name=authexception,messageno=602,path=/etc/e2guardian/lists/authexceptionsitelist'
urllist = 'name=authexception,messageno=603,path=/etc/e2guardian/lists/authexceptionurllist'
showweightedfound = on
weightedphrasemode = 2
phrasefiltermode = 2
preservecase = 0
hexdecodecontent = off
forcequicksearch = off
reverseaddresslookups = off
reverseclientiplookups = off
logclienthostnames = off
maxcontentfiltersize = 256
maxcontentramcachescansize = 2000
maxcontentfilecachescansize = 20000
filecachedir = '/tmp'
deletedownloadedtempfiles = on
initialtrickledelay = 20
trickledelay = 10
downloadmanager = '/etc/e2guardian/downloadmanagers/default.conf'
contentscannertimeout = 60
recheckreplacedurls = off
forwardedfor = off
usexforwardedfor = off
logconnectionhandlingerrors = on
httpworkers = 500 
nodaemon = off
nologger = off
logadblocks = off
loguseragent = off
enablessl = off
preauthstoryboard = '/etc/e2guardian/preauth.story'
searchsitelistforip = on

Nachfolgende Änderungen wurden beispielhaft vorgenommen:

Änderung der Sprache auf deutsch:

  • language = 'german'

Ab Version 5.2 - Änderung des LOG-Level

  • loglevel = 2

Ab Version 5.2 - Änderung des LOG-File-Formats

  • logfileformat = 1

Filter für die IP-Adresse, an der der E2guardian lauschen soll:

  • filterip = 192.168.0.50

Ab Version 5.2 - Proxy IP-Adresse, an der der E2guardian weiterreichen soll:

  • proxyip = 127.0.0.1 (Vorausgesetzt, selber HOST !!!)

Ab Version 5.2 - Proxy Port, an der der E2guardian weiterreichen soll:

  • proxyport = 3128 (Vorausgesetzt, Standardport z.B. Squid Cache !!!)

Änderung des Parameterwertes (:!: gegen die Empfehlung, da sonst das Download-Manager-Plugin „fancy“ NICHT funktioniert !!!)

  • initialtrickledelay = 2

Änderung des Parameterwertes (:!: gegen die Empfehlung, da sonst das Download-Manager-Plugin „fancy“ NICHT funktioniert !!!)

  • trickledelay = 1

Auskommentierung aufgehoben zur Anzeige von Benutzerkennungen im Log-File (:!: Es wird ebenfalls squid als Proxy verwendet):

  • authplugin = '/etc/e2guardian/authplugins/proxy-basic.conf'

Änderung der Einstellung für „x-forward“ der ursprünglichen IP-Adresse des Clients und nicht der des E2guardian zum HTTP-Header

  • forwardedfor = on

Änderung der Einstellung für „x-forward“ der ursprünglichen IP-Adresse des Clients und nicht der des E2guardian zur Auswertung durch einen nach gelagerten Proxy-Server wie z.B. Squid

  • usexforwardedfor = on

Kein Limit auf bestimmte IP-Adressen setzen

  • xforwardedforfilterip =

Bis Version 4.1.4:

Die Konfigurationsdatei /etc/e2guardian/e2guardian.conf ohne Kommentar- und Leerzeichen inklusive der Änderungen:

# egrep -v '(^#|^$)' /etc/e2guardian/e2guardian.conf
languagedir = '/usr/share/e2guardian/languages'
language = 'german'
loglevel = 2
logexceptionhits = 2
logfileformat = 1
maxuploadsize = -1
filterip = 192.168.0.50
filterports = 8080
proxyip = 127.0.0.1
proxyport = 3128
proxytimeout = 20
proxyexchange = 20
pcontimeout = 55
originalip = on
usecustombannedimage = on
custombannedimagefile = '/usr/share/e2guardian/transparent1x1.gif'
usecustombannedflash = on
custombannedflashfile = '/usr/share/e2guardian/blockedflash.swf'
filtergroups = 1
filtergroupslist = '/etc/e2guardian/lists/filtergroupslist'
bannediplist = '/etc/e2guardian/lists/bannediplist'
exceptioniplist = '/etc/e2guardian/lists/exceptioniplist'
showweightedfound = on
weightedphrasemode = 2
urlcachenumber = 1000
urlcacheage = 900
scancleancache = on
phrasefiltermode = 2
preservecase = 0
hexdecodecontent = off
forcequicksearch = off
reverseaddresslookups = off
reverseclientiplookups = off
logclienthostnames = off
createlistcachefiles = on
prefercachedlists = off
maxcontentfiltersize = 256
maxcontentramcachescansize = 2000
maxcontentfilecachescansize = 20000
filecachedir = '/tmp'
deletedownloadedtempfiles = on
initialtrickledelay = 2
trickledelay = 1
downloadmanager = '/etc/e2guardian/downloadmanagers/fancy.conf'
downloadmanager = '/etc/e2guardian/downloadmanagers/default.conf'
contentscannertimeout = 60
contentscanexceptions = off
authplugin = '/etc/e2guardian/authplugins/proxy-basic.conf'
recheckreplacedurls = off
forwardedfor = on
usexforwardedfor = on
xforwardedforfilterip = 
logconnectionhandlingerrors = on
logchildprocesshandling = off
maxchildren = 180
minchildren = 20
minsparechildren = 16
preforkchildren = 10
maxsparechildren = 32
maxagechildren = 500
maxips = 0
ipcfilename = '/tmp/.e2guardianipc'
urlipcfilename = '/tmp/.e2guardianurlipc'
ipipcfilename = '/tmp/.e2guardianipipc'
nodaemon = off
nologger = off
logadblocks = off
loguseragent = off
softrestart = off
mailer = '/usr/sbin/sendmail -t'

Ab Version 5.2:

Die Konfigurationsdatei /etc/e2guardian/e2guardian.conf ohne Kommentar- und Leerzeichen inklusive der Änderungen:

languagedir = '/usr/share/e2guardian/languages'
language = 'german'
loglevel = 2 
logexceptionhits = 2
logfileformat = 1 
filterip = 192.168.0.50
filterports = 8080
transparenthttpsport = 8443
proxyip = 127.0.0.1
proxyport = 3128
proxytimeout = 5
connecttimeout = 5
proxyexchange = 61
pcontimeout = 55
originalip = off
usecustombannedimage = on
custombannedimagefile = '/usr/share/e2guardian/transparent1x1.gif'
usecustombannedflash = on
custombannedflashfile = '/usr/share/e2guardian/blockedflash.swf'
filtergroups = 6
filtergroupslist = '/etc/e2guardian/lists/filtergroupslist'
iplist = 'name=bannedclient,messageno=100,logmessageno=103,path=/etc/e2guardian/lists/bannediplist'
iplist = 'name=exceptionclient,messageno=600,path=/etc/e2guardian/lists/exceptioniplist'
iplist = 'name=authexception,messageno=602,path=/etc/e2guardian/lists/authexceptioniplist'
sitelist = 'name=authexception,messageno=602,path=/etc/e2guardian/lists/authexceptionsitelist'
urllist = 'name=authexception,messageno=603,path=/etc/e2guardian/lists/authexceptionurllist'
showweightedfound = on
weightedphrasemode = 2
phrasefiltermode = 2
preservecase = 0
hexdecodecontent = off
forcequicksearch = off
reverseaddresslookups = off
reverseclientiplookups = off
logclienthostnames = off
maxcontentfiltersize = 256
filecachedir = '/tmp'
deletedownloadedtempfiles = on
initialtrickledelay = 2
trickledelay = 1
downloadmanager = '/etc/e2guardian/downloadmanagers/default.conf'
contentscanner = '/etc/e2guardian/contentscanners/clamdscan.conf'
contentscannertimeout = 60
authplugin = '/etc/e2guardian/authplugins/proxy-basic.conf'
recheckreplacedurls = off
forwardedfor = on
usexforwardedfor = on
xforwardedforfilterip = 
logconnectionhandlingerrors = on
httpworkers = 500 
nodaemon = off
nologger = off
logadblocks = off
loguseragent = off
enablessl = off
preauthstoryboard = '/etc/e2guardian/preauth.story'
searchsitelistforip = on

/etc/e2guardian/e2guardianf1.conf

Da die Konfigurationsdatei /etc/e2guardian/e2guardianf1.conf aufgrund von Kommentar- und Leerzeichen sehr schnell unübersichtlich ist, kann mit nachfolgendem Befehl, eine Ausgabe ohne Kommentar- und Leerzeilen erzeugt werden, welche dann nach der Grundinstallation von E2guardian wie folgt aussehen sollte:

Bis Version 4.1.4:

# egrep -v '(^#|^$)' /etc/e2guardian/e2guardianf1.conf

Die Konfigurationsdatei /etc/e2guardian/e2guardianf1.conf ohne Kommentar- und Leerzeichen:

# egrep -v '(^#|^$)' /etc/e2guardian/e2guardianf1.conf.orig 
groupmode = 1
groupname = ''
bannedphraselist = '/etc/e2guardian/lists/bannedphraselist'
weightedphraselist = '/etc/e2guardian/lists/weightedphraselist'
exceptionphraselist = '/etc/e2guardian/lists/exceptionphraselist'
bannedsitelist = '/etc/e2guardian/lists/bannedsitelist'
greysitelist = '/etc/e2guardian/lists/greysitelist'
bannedsslsitelist = '/etc/e2guardian/lists/bannedsslsitelist'
greysslsitelist = '/etc/e2guardian/lists/greysslsitelist'
exceptionsitelist = '/etc/e2guardian/lists/exceptionsitelist'
bannedurllist = '/etc/e2guardian/lists/bannedurllist'
greyurllist = '/etc/e2guardian/lists/greyurllist'
exceptionurllist = '/etc/e2guardian/lists/exceptionurllist'
exceptionregexpurllist = '/etc/e2guardian/lists/exceptionregexpurllist'
bannedregexpurllist = '/etc/e2guardian/lists/bannedregexpurllist'
picsfile = '/etc/e2guardian/lists/pics'
contentregexplist = '/etc/e2guardian/lists/contentregexplist'
urlregexplist = '/etc/e2guardian/lists/urlregexplist'
refererexceptionsitelist = '/etc/e2guardian/lists/refererexceptionsitelist'
refererexceptionurllist = '/etc/e2guardian/lists/refererexceptionurllist'
embededreferersitelist = '/etc/e2guardian/lists/embededreferersitelist'
embededrefererurllist = '/etc/e2guardian/lists/embededrefererurllist'
urlredirectregexplist = '/etc/e2guardian/lists/urlredirectregexplist'
!! Not compiled !! authexceptionsitelist = '/etc/e2guardian/lists/authexceptionsitelist'
!! Not compiled !! authexceptionurllist = '/etc/e2guardian/lists/authexceptionurllist'
blockdownloads = off
exceptionextensionlist = '/etc/e2guardian/lists/exceptionextensionlist'
exceptionmimetypelist = '/etc/e2guardian/lists/exceptionmimetypelist'
bannedextensionlist = '/etc/e2guardian/lists/bannedextensionlist'
bannedmimetypelist = '/etc/e2guardian/lists/bannedmimetypelist'
exceptionfilesitelist = '/etc/e2guardian/lists/exceptionfilesitelist'
exceptionfileurllist = '/etc/e2guardian/lists/exceptionfileurllist'
maxuploadsize = -1
headerregexplist = '/etc/e2guardian/lists/headerregexplist'
bannedregexpheaderlist = '/etc/e2guardian/lists/bannedregexpheaderlist'
addheaderregexplist = '/etc/e2guardian/lists/addheaderregexplist'
naughtynesslimit = 50
categorydisplaythreshold = 0
embeddedurlweight = 0
enablepics = off
bypass = 0
bypasskey = ''
infectionbypass = 0
infectionbypasskey = ''
infectionbypasserrorsonly = on
disablecontentscan = off
deepurlanalysis = off
reportinglevel = 3
usesmtp = off
mailfrom = ''
avadmin = ''
contentadmin = ''
avsubject = 'e2guardian virus block'
contentsubject = 'e2guardian violation'
notifyav = off
notifycontent = off
thresholdbyuser = off
violations = 0
threshold = 0
sslcertcheck = off
sslmitm = off
onlymitmsslgrey = off
mitmcheckcert = on
nocheckcertsitelist = '/etc/e2guardian/lists/nocheckcertsitelist'

Ab Version 5.2:

# egrep -v '(^#|^ #|^$)' /etc/e2guardian/e2guardianf1.conf

Die Konfigurationsdatei /etc/e2guardian/e2guardianf1.conf ohne Kommentar- und Leerzeichen:

# egrep -v '(^#|^ #|^$)' /etc/e2guardian/e2guardianf1.conf
groupname = 'no_name_group'
storyboard = '/etc/e2guardian/examplef1.story'
bannedphraselist = '/etc/e2guardian/lists/bannedphraselist'
weightedphraselist = '/etc/e2guardian/lists/weightedphraselist'
exceptionphraselist = '/etc/e2guardian/lists/exceptionphraselist'
sitelist = 'name=banned,messageno=500,path=/etc/e2guardian/lists/bannedsitelist'
ipsitelist = 'name=banned,messageno=510,path=/etc/e2guardian/lists/bannedsiteiplist'
urllist = 'name=banned,messageno=501,path=/etc/e2guardian/lists/bannedurllist'
regexpboollist = 'name=banned,messageno=503,path=/etc/e2guardian/lists/bannedregexpurllist'
regexpboollist = 'name=banneduseragent,messageno=522,path=/etc/e2guardian/lists/bannedregexpuseragentlist'
sitelist = 'name=bannedssl,messageno=520,path=/etc/e2guardian/lists/bannedsslsitelist'
ipsitelist = 'name=bannedssl,messageno=520,path=/etc/e2guardian/lists/bannedsslsiteiplist'
sitelist = 'name=grey,path=/etc/e2guardian/lists/greysitelist'
ipsitelist = 'name=grey,path=/etc/e2guardian/lists/greysiteiplist'
urllist = 'name=grey,path=/etc/e2guardian/lists/greyurllist'
sitelist = 'name=greyssl,path=/etc/e2guardian/lists/greysslsitelist'
ipsitelist = 'name=greyssl,path=/etc/e2guardian/lists/greysslsiteiplist'
sitelist = 'name=exception,messageno=602,path=/etc/e2guardian/lists/exceptionsitelist'
ipsitelist = 'name=exception,messageno=602,path=/etc/e2guardian/lists/exceptionsiteiplist'
urllist = 'name=exception,messageno=603,path=/etc/e2guardian/lists/exceptionurllist'
regexpboollist = 'name=exception,messageno=609,path=/etc/e2guardian/lists/exceptionregexpurllist'
regexpboollist = 'name=exceptionuseragent,messageno=610,path=/etc/e2guardian/lists/exceptionregexpuseragentlist'
sitelist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionsitelist'
ipsitelist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionsiteiplist'
urllist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionurllist'
sitelist = 'name=embededreferer,path=/etc/e2guardian/lists/embededreferersitelist'
ipsitelist = 'name=embededreferer,path=/etc/e2guardian/lists/embededreferersiteiplist'
urllist = 'name=embededreferer,path=/etc/e2guardian/lists/embededrefererurllist'
regexpreplacelist = 'name=change,path=/etc/e2guardian/lists/urlregexplist'
regexpreplacelist = 'name=sslreplace,path=/etc/e2guardian/lists/sslsiteregexplist'
regexpreplacelist = 'name=redirect,path=/etc/e2guardian/lists/urlredirectregexplist'
contentregexplist = '/etc/e2guardian/lists/contentregexplist'
sitelist = 'name=localbanned,messageno=560,path=/etc/e2guardian/lists/localbannedsitelist'
searchlist = 'name=localbanned,messageno=581,path=/etc/e2guardian/lists/localbannedsearchlist'
sitelist = 'name=localgrey,path=/etc/e2guardian/lists/localgreysitelist'
sitelist = 'name=localgreyssl,path=/etc/e2guardian/lists/localgreysslsitelist'
sitelist = 'name=localexception,messageno=662,path=/etc/e2guardian/lists/localexceptionsitelist'
fileextlist = 'name=exceptionextension,path=/etc/e2guardian/lists/exceptionextensionlist'
mimelist = 'name=exceptionmime,path=/etc/e2guardian/lists/exceptionextensionlist'
fileextlist = 'name=bannedextension,messageno=900,path=/etc/e2guardian/lists/bannedextensionlist'
mimelist = 'name=bannedmime,messageno=800,path=/etc/e2guardian/lists/bannedmimetypelist'
sitelist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfilesitelist'
ipsitelist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfilesiteiplist'
urllist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfileurllist'
maxuploadsize = -1
regexpreplacelist = 'name=headermods,path=/etc/e2guardian/lists/headerregexplist'
regexpboollist = 'name=bannedheader,path=/etc/e2guardian/lists/bannedregexpheaderlist'
regexpboollist = 'name=exceptionheader,path=/etc/e2guardian/lists/exceptionregexpheaderlist'
regexpreplacelist = 'name=addheader,path=/etc/e2guardian/lists/addheaderregexplist'
naughtynesslimit = 50
 
regexpreplacelist = 'name=searchterms,path=/etc/e2guardian/lists/searchregexplist'
searchlist = 'name=banned,path=/etc/e2guardian/lists/bannedsearchlist'
searchlist = 'name=override,path=/etc/e2guardian/lists/bannedsearchoveridelist'
categorydisplaythreshold = 0
embeddedurlweight = 0
bypass = 0
bypasskey = ''
sitelist = 'name=bannedbypass,messageno=500,path=/etc/e2guardian/lists/bannedsitelistwithbypass'
infectionbypass = 0
infectionbypasskey = ''
infectionbypasserrorsonly = on
disablecontentscan = off  
disablecontentscanerror = off
contentscanexceptions = off
deepurlanalysis = off
reportinglevel = 3
usesmtp = off   #NOT YET TESTED
mailfrom = ''
avadmin = ''
contentadmin = ''
avsubject = 'e2guardian virus block'
contentsubject = 'e2guardian violation'
notifyav = off
notifycontent = off
thresholdbyuser = off
violations = 0
threshold = 0
sslmitm = off
mitmcheckcert = on
sitelist = 'name=nocheckcert,path=/etc/e2guardian/lists/nocheckcertsitelist'
ipsitelist = 'name=nocheckcert,path=/etc/e2guardian/lists/nocheckcertsiteiplist'

Nachfolgende Änderungen wurden beispielhaft vorgenommen:

Änderung des Namens der Filtergruppe:

  • groupname = 'default'

Ab Version 5.2 - Änderung bzw. Kopie des storyboard

  • storyboard = '/etc/e2guardian/f1.story'

:!: WICHTIG - Damit die Änderungen auf f1.story möglich ist, sollte mit nachfolgendem Befehl eine Kopie des originalen examplef1.story durchgeführt werden. Dadurch können später Änderungen leichter durchgeführt werden, da immer die Originaldatei noch verfügbar bleibt:

# cp -a /etc/e2guardian/examplef1.story /etc/e2guardian/f1.story

Setzen eines eigenen HTML-Templates für gebannte Inhalte:

  • htmltemplate = 'templatef1.html'

:!: WICHTIG - Damit die Änderungen des HTML-Templates möglich ist, sollte mit nachfolgendem Befehl eine Kopie des originalen HTML-Templates durchgeführt werden. Dadurch können später Änderungen leichter durchgeführt werden, da immer die Originaldatei noch verfügbar bleibt:

# cp -a /usr/share/e2guardian/languages/german/template.html /usr/share/e2guardian/languages/german/templatef1.html

Bis Version 4.1.4:

Die Konfigurationsdatei /etc/e2guardian/e2guardianf1.conf ohne Kommentar- und Leerzeichen inklusive der Änderungen:

# egrep -v '(^#|^$)' /etc/e2guardian/e2guardianf1.conf
groupmode = 1
groupname = 'default'
bannedphraselist = '/etc/e2guardian/lists/bannedphraselist'
weightedphraselist = '/etc/e2guardian/lists/weightedphraselist'
exceptionphraselist = '/etc/e2guardian/lists/exceptionphraselist'
bannedsitelist = '/etc/e2guardian/lists/bannedsitelist'
greysitelist = '/etc/e2guardian/lists/greysitelist'
bannedsslsitelist = '/etc/e2guardian/lists/bannedsslsitelist'
greysslsitelist = '/etc/e2guardian/lists/greysslsitelist'
exceptionsitelist = '/etc/e2guardian/lists/exceptionsitelist'
bannedurllist = '/etc/e2guardian/lists/bannedurllist'
greyurllist = '/etc/e2guardian/lists/greyurllist'
exceptionurllist = '/etc/e2guardian/lists/exceptionurllist'
exceptionregexpurllist = '/etc/e2guardian/lists/exceptionregexpurllist'
bannedregexpurllist = '/etc/e2guardian/lists/bannedregexpurllist'
picsfile = '/etc/e2guardian/lists/pics'
contentregexplist = '/etc/e2guardian/lists/contentregexplist'
urlregexplist = '/etc/e2guardian/lists/urlregexplist'
refererexceptionsitelist = '/etc/e2guardian/lists/refererexceptionsitelist'
refererexceptionurllist = '/etc/e2guardian/lists/refererexceptionurllist'
embededreferersitelist = '/etc/e2guardian/lists/embededreferersitelist'
embededrefererurllist = '/etc/e2guardian/lists/embededrefererurllist'
urlredirectregexplist = '/etc/e2guardian/lists/urlredirectregexplist'
!! Not compiled !! authexceptionsitelist = '/etc/e2guardian/lists/authexceptionsitelist'
!! Not compiled !! authexceptionurllist = '/etc/e2guardian/lists/authexceptionurllist'
blockdownloads = off
exceptionextensionlist = '/etc/e2guardian/lists/exceptionextensionlist'
exceptionmimetypelist = '/etc/e2guardian/lists/exceptionmimetypelist'
bannedextensionlist = '/etc/e2guardian/lists/bannedextensionlist'
bannedmimetypelist = '/etc/e2guardian/lists/bannedmimetypelist'
exceptionfilesitelist = '/etc/e2guardian/lists/exceptionfilesitelist'
exceptionfileurllist = '/etc/e2guardian/lists/exceptionfileurllist'
maxuploadsize = -1
headerregexplist = '/etc/e2guardian/lists/headerregexplist'
bannedregexpheaderlist = '/etc/e2guardian/lists/bannedregexpheaderlist'
addheaderregexplist = '/etc/e2guardian/lists/addheaderregexplist'
naughtynesslimit = 50
 
categorydisplaythreshold = 0
embeddedurlweight = 0
enablepics = on
bypass = 0
bypasskey = ''
infectionbypass = 0
infectionbypasskey = ''
infectionbypasserrorsonly = on
disablecontentscan = off
deepurlanalysis = off
reportinglevel = 3
htmltemplate = 'templatef1.html'
usesmtp = off
mailfrom = ''
avadmin = ''
contentadmin = ''
avsubject = 'e2guardian virus block'
contentsubject = 'e2guardian violation'
notifyav = off
notifycontent = off
thresholdbyuser = off
violations = 0
threshold = 0
sslcertcheck = off
sslmitm = off
onlymitmsslgrey = off
mitmcheckcert = on
nocheckcertsitelist = '/etc/e2guardian/lists/nocheckcertsitelist'

Ab Version 5.2:

Die Konfigurationsdatei /etc/e2guardian/e2guardianf1.conf ohne Kommentar- und Leerzeichen inklusive der Änderungen:

# egrep -v '(^#|^ #|^$)' /etc/e2guardian/e2guardianf1.conf
groupname = 'default'
storyboard = '/etc/e2guardian/f1.story'
bannedphraselist = '/etc/e2guardian/lists/bannedphraselist'
weightedphraselist = '/etc/e2guardian/lists/weightedphraselist'
exceptionphraselist = '/etc/e2guardian/lists/exceptionphraselist'
sitelist = 'name=banned,messageno=500,path=/etc/e2guardian/lists/bannedsitelist'
ipsitelist = 'name=banned,messageno=510,path=/etc/e2guardian/lists/bannedsiteiplist'
urllist = 'name=banned,messageno=501,path=/etc/e2guardian/lists/bannedurllist'
regexpboollist = 'name=banned,messageno=503,path=/etc/e2guardian/lists/bannedregexpurllist'
regexpboollist = 'name=banneduseragent,messageno=522,path=/etc/e2guardian/lists/bannedregexpuseragentlist'
sitelist = 'name=bannedssl,messageno=520,path=/etc/e2guardian/lists/bannedsslsitelist'
ipsitelist = 'name=bannedssl,messageno=520,path=/etc/e2guardian/lists/bannedsslsiteiplist'
sitelist = 'name=grey,path=/etc/e2guardian/lists/greysitelist'
ipsitelist = 'name=grey,path=/etc/e2guardian/lists/greysiteiplist'
urllist = 'name=grey,path=/etc/e2guardian/lists/greyurllist'
sitelist = 'name=greyssl,path=/etc/e2guardian/lists/greysslsitelist'
ipsitelist = 'name=greyssl,path=/etc/e2guardian/lists/greysslsiteiplist'
sitelist = 'name=exception,messageno=602,path=/etc/e2guardian/lists/exceptionsitelist'
ipsitelist = 'name=exception,messageno=602,path=/etc/e2guardian/lists/exceptionsiteiplist'
urllist = 'name=exception,messageno=603,path=/etc/e2guardian/lists/exceptionurllist'
regexpboollist = 'name=exception,messageno=609,path=/etc/e2guardian/lists/exceptionregexpurllist'
regexpboollist = 'name=exceptionuseragent,messageno=610,path=/etc/e2guardian/lists/exceptionregexpuseragentlist'
sitelist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionsitelist'
ipsitelist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionsiteiplist'
urllist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionurllist'
sitelist = 'name=embededreferer,path=/etc/e2guardian/lists/embededreferersitelist'
ipsitelist = 'name=embededreferer,path=/etc/e2guardian/lists/embededreferersiteiplist'
urllist = 'name=embededreferer,path=/etc/e2guardian/lists/embededrefererurllist'
regexpreplacelist = 'name=change,path=/etc/e2guardian/lists/urlregexplist'
regexpreplacelist = 'name=sslreplace,path=/etc/e2guardian/lists/sslsiteregexplist'
regexpreplacelist = 'name=redirect,path=/etc/e2guardian/lists/urlredirectregexplist'
contentregexplist = '/etc/e2guardian/lists/contentregexplist'
sitelist = 'name=localbanned,messageno=560,path=/etc/e2guardian/lists/localbannedsitelist'
searchlist = 'name=localbanned,messageno=581,path=/etc/e2guardian/lists/localbannedsearchlist'
sitelist = 'name=localgrey,path=/etc/e2guardian/lists/localgreysitelist'
sitelist = 'name=localgreyssl,path=/etc/e2guardian/lists/localgreysslsitelist'
sitelist = 'name=localexception,messageno=662,path=/etc/e2guardian/lists/localexceptionsitelist'
fileextlist = 'name=exceptionextension,path=/etc/e2guardian/lists/exceptionextensionlist'
mimelist = 'name=exceptionmime,path=/etc/e2guardian/lists/exceptionextensionlist'
fileextlist = 'name=bannedextension,messageno=900,path=/etc/e2guardian/lists/bannedextensionlist'
mimelist = 'name=bannedmime,messageno=800,path=/etc/e2guardian/lists/bannedmimetypelist'
sitelist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfilesitelist'
ipsitelist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfilesiteiplist'
urllist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfileurllist'
maxuploadsize = -1
regexpreplacelist = 'name=headermods,path=/etc/e2guardian/lists/headerregexplist'
regexpboollist = 'name=bannedheader,path=/etc/e2guardian/lists/bannedregexpheaderlist'
regexpboollist = 'name=exceptionheader,path=/etc/e2guardian/lists/exceptionregexpheaderlist'
regexpreplacelist = 'name=addheader,path=/etc/e2guardian/lists/addheaderregexplist'
naughtynesslimit = 50
regexpreplacelist = 'name=searchterms,path=/etc/e2guardian/lists/searchregexplist'
searchlist = 'name=banned,path=/etc/e2guardian/lists/bannedsearchlist'
searchlist = 'name=override,path=/etc/e2guardian/lists/bannedsearchoveridelist'
categorydisplaythreshold = 0
embeddedurlweight = 0
bypass = 0
bypasskey = ''
sitelist = 'name=bannedbypass,messageno=500,path=/etc/e2guardian/lists/bannedsitelistwithbypass'
infectionbypass = 0
infectionbypasskey = ''
infectionbypasserrorsonly = on
disablecontentscan = off  
disablecontentscanerror = off
contentscanexceptions = off
deepurlanalysis = off
reportinglevel = 3
htmltemplate = 'templatef1.html'
usesmtp = off   #NOT YET TESTED
mailfrom = ''
avadmin = ''
contentadmin = ''
avsubject = 'e2guardian virus block'
contentsubject = 'e2guardian violation'
notifyav = off
notifycontent = off
thresholdbyuser = off
violations = 0
threshold = 0
sslmitm = off
mitmcheckcert = off
sitelist = 'name=nocheckcert,path=/etc/e2guardian/lists/nocheckcertsitelist'
ipsitelist = 'name=nocheckcert,path=/etc/e2guardian/lists/nocheckcertsiteiplist'

/etc/logrotate.d/e2guardian

Nachfolgend soll die Konfigurationsdatei /etc/logrotate.d/e2guardian angepasst werden.

Die Anpassung bezieht sich darauf, das die von E2guardian erzeugte LOG-Datei beim rotieren komprimiert werden soll.

(Komplette Konfigurationsdatei):

/var/log/e2guardian/access.log {
  rotate 4
  weekly
  compress
  sharedscripts
  postrotate
    /bin/kill -HUP `cat /var/run/e2guardian.pid 2>/dev/null` 2> /dev/null || true
  endscript
}

Nachfolgende Änderungen wurden beispielhaft vorgenommen:

Komprimieren der LOG-Datei beim rotieren selbiger:

  • compress

Erster Start e2guardian

Um den E2guardian zu starten kann nachfolgender Befehl angewandt werden:

# systemctl start e2guardian.service

Eine Überprüfung ob der Start des E2guardian erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:

# systemctl status e2guardian.service
e2guardian.service - E2guardian Web filtering
   Loaded: loaded (/usr/lib/systemd/system/e2guardian.service; enabled)
   Active: active (running) since Wed 2015-06-10 16:00:53 CEST; 8s ago
  Process: 2029 ExecStart=/usr/sbin/e2guardian (code=exited, status=0/SUCCESS)
 Main PID: 2030 (e2guardian)
   CGroup: /system.slice/e2guardian.service
           ├─2030 /usr/sbin/e2guardian
           ├─2031 /usr/sbin/e2guardian
           ├─2032 /usr/sbin/e2guardian
           ├─2033 /usr/sbin/e2guardian
           ├─2034 /usr/sbin/e2guardian
           ├─2035 /usr/sbin/e2guardian
           ├─2036 /usr/sbin/e2guardian
           ├─2037 /usr/sbin/e2guardian
           ├─2038 /usr/sbin/e2guardian
           ├─2039 /usr/sbin/e2guardian
           ├─2040 /usr/sbin/e2guardian
           ├─2041 /usr/sbin/e2guardian
           ├─2042 /usr/sbin/e2guardian
           ├─2043 /usr/sbin/e2guardian
           ├─2044 /usr/sbin/e2guardian
           ├─2045 /usr/sbin/e2guardian
           ├─2046 /usr/sbin/e2guardian
           ├─2047 /usr/sbin/e2guardian
           ├─2048 /usr/sbin/e2guardian
           ├─2049 /usr/sbin/e2guardian
           ├─2050 /usr/sbin/e2guardian
           ├─2051 /usr/sbin/e2guardian
           └─2052 /usr/sbin/e2guardian

Jun 10 16:00:52 server50.tachtler.net systemd[1]: Starting E2guardian Web filtering...
Jun 10 16:00:53 server50.tachtler.net systemd[1]: Started E2guardian Web filtering.
Jun 10 16:00:55 server50.tachtler.net e2guardian[2030]: Started sucessfully.

bzw. mit nachfolgendem Befehl, ob auf den entsprechende Netzwerkinterface gelauscht wird:

# netstat -tulpen | grep e2guardian
tcp        0      0 192.168.0.50:8080       0.0.0.0:*          LISTEN     399       23347     2030/e2guardian

Erster Browser Aufruf

Nachdem nachfolgende Konfiguration im Browser, hier am Beispiel eines Mozilla Firefox-Browsers, wie in nachfolgender Bildschirmkopie dargestellt, durchgeführt wurde, sollte mit dem Surfen über den E2guardian Content Filter-Server nichts mehr im Wege stehen:

Mozilla Firefox Browser Einstellungen - Netzwerk - Manuelle Proxy-Einstellugnen

Nachfolgende Einstellungen sind im Mozilla Firefox-Browsers unter

  • Open Menu (Menü) | Preferences (Einstellungen) | Advanced (Erweitert) | Network (Netzwerk) | Settings… (Einstellungen…) | Manual proxy configuration (Manuelle Proxy-Konfiguration)

durchzuführen:

Einstellungen Standardwert Wert
HTTP-Proxy [leer] 192.168.0.50 (IP des E2guardian Content Filter-Servers)
Port [leer] 8080

Anschließend sollte nun beim Aufruf einer Website wie z.B. http://sex.de nachfolgendes Browser-Dialog-Fenster erscheinen und zur Eingabe eines Benutzernamens eines Passwortes auffordern, wie auf nachfolgender Bildschirm dargestellt:

Mozilla Firefox Browser - Authentifizierungs-Dialog-Fenster

Nach korrekter Eingabe des Benutzernamens und Passwortes, sollte nachfolgender Bildschirm erscheinen, das die Seite NICHT aufrufbar war und gesperrt wurde:

Mozilla Firefox Browser - E2guardian

Alle Vorgänge können in nachfolgender LOG-Datei ebenfalls nachvollzogen werden,

  • /var/log/e2guardian/access.log

ob der E2guardian Content Filter-Servers, wie und ob die Authentifizierung erfolgreich war, und ob die Seite NICHT aufrufbar war und gesperrt wurde, was mit nachfolgendem Befehl realisiert werden kann:

# cat /var/log/e2guardian/access.log 
2015.6.10 16:02:28 klaus 192.168.2.10 http://sex.de  GET 243 0  1 301 -  default  - - 
2015.6.10 16:02:28 klaus 192.168.2.10 http://www.movieon.com/?ptr=49_d5b3  GET 0 0  1 301 -  default  - - 
2015.6.10 16:02:29 klaus 192.168.2.10 http://www.movieon.com/de/?ptr=49_d5b3 *VERWEIGERT* Verbotene
Kombination von Ausdrücken gefunden50 : 1933 (( porn, fuck)+( slut,  porn)+(amateur,  porn)+(amateur,
slut)+(amateur, fuck)+(bdsm,  porn)+(bdsm,  slut)+(erotic,  porn)+(erotic, fuck)+(fuck,  porn)
+(fuck, slut)+(masturbat,  porn)+(masturbat,  slut)+(masturbat, fuck)+(pornstar,  slut)+(pornstar,
fuck)+(teen,  porn)+(webcam,  girl)+(webcam,  porn)+(webcam,  slut)+(webcam, fuck)+(film, sex)+( 
film,  porno )+(videos, gratis)+ bdsm + erotic+ gay + hentai+ masturba+ milf + oral+ porn+ porno+ sex
+ slut+ swinger+amateur+analsex+dirty slut+erotic+erotica+erotik+-faq+fick+fotze+fuck+gefickt+-
genre+gruppensex+hemmungslos+hentai+interracial+lesben+-newsletter+porno+pornofilm+sexy+swinger+
tabulos+-test +titten+-transparent+wanna fuck) GET 89635 1933 Pornography, Pornography (German),
Pornography (Portuguese), Pornography (Italian), Pornografia, Pornography (Spanish), Pornography
(Dutch), Pornography (Norwegian) 1 403 text/html  default  - -

Filtergruppen-Konfiguration

Unter der Konfiguration von Filtergruppen ist die unterschiedliche Behandelung von Personen, je nach dem in welcher Filtergruppe diese sind, gemeint. Ein Beispiel wäre:

  • Standard –> Filtergruppe 1 (Alle Benutzer, ohne besondere Filtergruppen-Zuweisung!)
  • Eltern –> Filtergruppe 2
  • Kinder –> Filtergruppe 3

oder vergleichbare Szenarien, in denen Personen unterschiedliche Rechte haben sollen, was das Filtern des Inhalts der Seiten durch E2guardian betrifft.

Nachfolgende Konfigurationen sind dazu notwendig:

  1. Anpassen der Konfigurationsdatei /etc/e2guardian/e2guardian.conf
  2. Anpassen der Konfigurationsdatei/etc/e2guardian/lists/filtergroupslist
  3. Erstellen einer weiteren /etc/e2guardian/e2guardianf<Nummer>.conf-Datei (z.B. e2guardianf2.conf)
  4. Neuerstellung von Banned- und Exception-Dateien im Bereich /etc/e2guardian/lists

/etc/e2guardian/e2guardian.conf

Nachfolgende Anpassungen an der Konfigurationsdatei /etc/e2guardian/e2guardian.conf sind erforderlich, um mehrere Filtergruppen einsetzen zu können:

:!: HINWEIS - Die Anzahl der Filtergruppen ist auf 99 Filtergruppen begrenzt!

(Nur relevanter Ausschnitt):

...
# Filter groups options
# filtergroups sets the number of filter groups. A filter group is a set of content
# filtering options you can apply to a group of users.  The value must be 1 or more.
# e2guardian will automatically look for e2guardianfN.conf where N is the filter
# group.  To assign users to groups use the filtergroupslist option.  All users default
# to filter group 1.  You must have some sort of authentication to be able to map users
# to a group.  The more filter groups the more copies of the lists will be in RAM so
# use as few as possible.
filtergroups = 3
filtergroupslist = '/etc/e2guardian/lists/filtergroupslist'
...

/etc/e2guardian/lists/filtergroupslist

Nachfolgende Anpassungen an der Konfigurationsdatei /etc/e2guardian/e2guardian.conf sind erforderlich, um mehrere Filtergruppen einsetzen zu können:

(Komplette Konfigurationsdatei):

# Filter Groups List file for DansGuardian
#
# Format is <user>=filter<1-9> where 1-9 are the groups
#
# Eg:
# daniel=filter2
#
# This file is only of use if you have more than 1 filter group
#
# Tachtler
klaus=filter2
petra=filter2
lena=filter3
luis=filter3

/etc/e2guardian/e2guardianf<Nummer>.conf

Nachfolgende soll durch kopieren einer bereits vorhandenen Konfigurationsdatei /etc/e2guardian/e2guardianf1.conf weitere Konfigurationsdateien erstellt werden, was erforderlich ist, um mehrere Filtergruppen einsetzen zu können:

# cp -a /etc/e2guardian/e2guardianf1.conf /etc/e2guardian/e2guardianf2.conf
# cp -a /etc/e2guardian/e2guardianf1.conf /etc/e2guardian/e2guardianf3.conf

Anschließend kann der Inhalt der so neu erstellten Konfigurationsdateien

  • /etc/e2guardian/e2guardianf2.conf
  • /etc/e2guardian/e2guardianf3.conf

entsprechend angepasst werden.

Nachfolgende Änderungen können beispielhaft vorgenommen werden:

Änderung des Namens der Filtergruppe:

  • groupname = 'eltern'

Ab Version 5.2 - Änderung bzw. Kopie des storyboard

  • storyboard = '/etc/e2guardian/f2.story'

:!: WICHTIG - Damit die Änderungen auf f2.story möglich ist, sollte mit nachfolgendem Befehl eine Kopie des originalen examplef1.story durchgeführt werden. Dadurch können später Änderungen leichter durchgeführt werden, da immer die Originaldatei noch verfügbar bleibt:

# cp -a /etc/e2guardian/examplef1.story /etc/e2guardian/f2.story

Setzen eines eigenen HTML-Templates für gebannte Inhalte:

  • htmltemplate = 'templatef2.html'

Einstellung der Punktezahl für die Bewertung einer Seite, ab welche diese nicht mehr angezeigt werden soll:

  • naughtynesslimit = 160

:!: WICHTIG - Damit die Änderungen des HTML-Templates möglich ist, sollte mit nachfolgendem Befehl eine Kopie des originalen HTML-Templates durchgeführt werden. Dadurch können später Änderungen leichter durchgeführt werden, da immer die Originaldatei noch verfügbar bleibt:

# cp -a /usr/share/e2guardian/languages/german/template.html /usr/share/e2guardian/languages/german/templatef2.html

Abschließend müssen noch die einzelnen Konfigurationsdateien welche sich im Verzeichnis

  • /etc/e2guardian/e2guardian/lists

befinden, entsprechend gesetzte werden, wenn die für die einzelnen Filtergruppen unterschiedliche Inhalte aufweisen sollen.

Ggf. kann dies im z.B. Editor vi entsprechend durchgeführt werden:

:%s/list'/list_f2'/g

und

:%s/pics'/pics_f2'/g

Die Konfigurationsdatei /etc/e2guardian/e2guardianf2.conf ohne Kommentar- und Leerzeichen inklusive der Änderungen, könnte dann wie folgt aussehen:

Bis Version 4.1.4

# egrep -v '(^#|^$)' /etc/e2guardian/e2guardianf2.conf
groupmode = 1
groupname = 'eltern'
bannedphraselist = '/etc/e2guardian/lists/bannedphraselist_f2'
weightedphraselist = '/etc/e2guardian/lists/weightedphraselist_f2'
exceptionphraselist = '/etc/e2guardian/lists/exceptionphraselist_f2'
bannedsitelist = '/etc/e2guardian/lists/bannedsitelist_f2'
greysitelist = '/etc/e2guardian/lists/greysitelist_f2'
bannedsslsitelist = '/etc/e2guardian/lists/bannedsslsitelist_f2'
greysslsitelist = '/etc/e2guardian/lists/greysslsitelist_f2'
exceptionsitelist = '/etc/e2guardian/lists/exceptionsitelist_f2'
bannedurllist = '/etc/e2guardian/lists/bannedurllist_f2'
greyurllist = '/etc/e2guardian/lists/greyurllist_f2'
exceptionurllist = '/etc/e2guardian/lists/exceptionurllist_f2'
exceptionregexpurllist = '/etc/e2guardian/lists/exceptionregexpurllist_f2'
bannedregexpurllist = '/etc/e2guardian/lists/bannedregexpurllist_f2'
picsfile = '/etc/e2guardian/lists/pics_f2'
contentregexplist = '/etc/e2guardian/lists/contentregexplist_f2'
urlregexplist = '/etc/e2guardian/lists/urlregexplist_f2'
refererexceptionsitelist = '/etc/e2guardian/lists/refererexceptionsitelist_f2'
refererexceptionurllist = '/etc/e2guardian/lists/refererexceptionurllist_f2'
embededreferersitelist = '/etc/e2guardian/lists/embededreferersitelist_f2'
embededrefererurllist = '/etc/e2guardian/lists/embededrefererurllist_f2'
urlredirectregexplist = '/etc/e2guardian/lists/urlredirectregexplist_f2'
!! Not compiled !! authexceptionsitelist = '/etc/e2guardian/lists/authexceptionsitelist_f2'
!! Not compiled !! authexceptionurllist = '/etc/e2guardian/lists/authexceptionurllist_f2'
blockdownloads = off
exceptionextensionlist = '/etc/e2guardian/lists/exceptionextensionlist_f2'
exceptionmimetypelist = '/etc/e2guardian/lists/exceptionmimetypelist_f2'
bannedextensionlist = '/etc/e2guardian/lists/bannedextensionlist_f2'
bannedmimetypelist = '/etc/e2guardian/lists/bannedmimetypelist_f2'
exceptionfilesitelist = '/etc/e2guardian/lists/exceptionfilesitelist_f2'
exceptionfileurllist = '/etc/e2guardian/lists/exceptionfileurllist_f2'
maxuploadsize = -1
headerregexplist = '/etc/e2guardian/lists/headerregexplist_f2'
bannedregexpheaderlist = '/etc/e2guardian/lists/bannedregexpheaderlist_f2'
addheaderregexplist = '/etc/e2guardian/lists/addheaderregexplist_f2'
naughtynesslimit = 160
categorydisplaythreshold = 0
embeddedurlweight = 0
enablepics = on
bypass = 0
bypasskey = ''
infectionbypass = 0
infectionbypasskey = ''
infectionbypasserrorsonly = on
disablecontentscan = off
deepurlanalysis = off
reportinglevel = 3
htmltemplate = 'templatef2.html'
usesmtp = off
mailfrom = ''
avadmin = ''
contentadmin = ''
avsubject = 'e2guardian virus block'
contentsubject = 'e2guardian violation'
notifyav = off
notifycontent = off
thresholdbyuser = off
violations = 0
threshold = 0
sslcertcheck = off
sslmitm = off
onlymitmsslgrey = off
mitmcheckcert = on
nocheckcertsitelist = '/etc/e2guardian/lists/nocheckcertsitelist_f2'

Ab Version 5.2: Die Konfigurationsdatei /etc/e2guardian/e2guardianf2.conf ohne Kommentar- und Leerzeichen inklusive der Änderungen, könnte dann wie folgt aussehen:

# egrep -v '(^#|^ #|^$)' /etc/e2guardian/e2guardianf2.conf
groupname = 'eltern'
storyboard = '/etc/e2guardian/f2.story'
bannedphraselist = '/etc/e2guardian/lists/bannedphraselist_f2'
weightedphraselist = '/etc/e2guardian/lists/weightedphraselist_f2'
exceptionphraselist = '/etc/e2guardian/lists/exceptionphraselist_f2'
sitelist = 'name=banned,messageno=500,path=/etc/e2guardian/lists/bannedsitelist_f2'
ipsitelist = 'name=banned,messageno=510,path=/etc/e2guardian/lists/bannedsiteiplist_f2'
urllist = 'name=banned,messageno=501,path=/etc/e2guardian/lists/bannedurllist_f2'
regexpboollist = 'name=banned,messageno=503,path=/etc/e2guardian/lists/bannedregexpurllist_f2'
regexpboollist = 'name=banneduseragent,messageno=522,path=/etc/e2guardian/lists/bannedregexpuseragentlist_f2'
sitelist = 'name=bannedssl,messageno=520,path=/etc/e2guardian/lists/bannedsslsitelist_f2'
ipsitelist = 'name=bannedssl,messageno=520,path=/etc/e2guardian/lists/bannedsslsiteiplist_f2'
sitelist = 'name=grey,path=/etc/e2guardian/lists/greysitelist_f2'
ipsitelist = 'name=grey,path=/etc/e2guardian/lists/greysiteiplist_f2'
urllist = 'name=grey,path=/etc/e2guardian/lists/greyurllist_f2'
sitelist = 'name=greyssl,path=/etc/e2guardian/lists/greysslsitelist_f2'
ipsitelist = 'name=greyssl,path=/etc/e2guardian/lists/greysslsiteiplist'
sitelist = 'name=exception,messageno=602,path=/etc/e2guardian/lists/exceptionsitelist_f2'
ipsitelist = 'name=exception,messageno=602,path=/etc/e2guardian/lists/exceptionsiteiplist_f2'
urllist = 'name=exception,messageno=603,path=/etc/e2guardian/lists/exceptionurllist_f2'
regexpboollist = 'name=exception,messageno=609,path=/etc/e2guardian/lists/exceptionregexpurllist_f2'
regexpboollist = 'name=exceptionuseragent,messageno=610,path=/etc/e2guardian/lists/exceptionregexpuseragentlist_f2'
sitelist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionsitelist_f2'
ipsitelist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionsiteiplist_f2'
urllist = 'name=refererexception,messageno=620,path=/etc/e2guardian/lists/refererexceptionurllist_f2'
sitelist = 'name=embededreferer,path=/etc/e2guardian/lists/embededreferersitelist_f2'
ipsitelist = 'name=embededreferer,path=/etc/e2guardian/lists/embededreferersiteiplist_f2'
urllist = 'name=embededreferer,path=/etc/e2guardian/lists/embededrefererurllist_f2'
regexpreplacelist = 'name=change,path=/etc/e2guardian/lists/urlregexplist_f2'
regexpreplacelist = 'name=sslreplace,path=/etc/e2guardian/lists/sslsiteregexplist_f2'
regexpreplacelist = 'name=redirect,path=/etc/e2guardian/lists/urlredirectregexplist_f2'
contentregexplist = '/etc/e2guardian/lists/contentregexplist_f2'
sitelist = 'name=localbanned,messageno=560,path=/etc/e2guardian/lists/localbannedsitelist_f2'
searchlist = 'name=localbanned,messageno=581,path=/etc/e2guardian/lists/localbannedsearchlist_f2'
sitelist = 'name=localgrey,path=/etc/e2guardian/lists/localgreysitelist_f2'
sitelist = 'name=localgreyssl,path=/etc/e2guardian/lists/localgreysslsitelist_f2'
sitelist = 'name=localexception,messageno=662,path=/etc/e2guardian/lists/localexceptionsitelist_f2'
fileextlist = 'name=exceptionextension,path=/etc/e2guardian/lists/exceptionextensionlist_f2'
mimelist = 'name=exceptionmime,path=/etc/e2guardian/lists/exceptionextensionlist_f2'
fileextlist = 'name=bannedextension,messageno=900,path=/etc/e2guardian/lists/bannedextensionlist_f2'
mimelist = 'name=bannedmime,messageno=800,path=/etc/e2guardian/lists/bannedmimetypelist_f2'
sitelist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfilesitelist_f2'
ipsitelist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfilesiteiplist_f2'
urllist = 'name=exceptionfile,path=/etc/e2guardian/lists/exceptionfileurllist_f2'
maxuploadsize = -1
regexpreplacelist = 'name=headermods,path=/etc/e2guardian/lists/headerregexplist_f2'
regexpboollist = 'name=bannedheader,path=/etc/e2guardian/lists/bannedregexpheaderlist_f2'
regexpboollist = 'name=exceptionheader,path=/etc/e2guardian/lists/exceptionregexpheaderlist_f2'
regexpreplacelist = 'name=addheader,path=/etc/e2guardian/lists/addheaderregexplist_f2'
naughtynesslimit = 160
regexpreplacelist = 'name=searchterms,path=/etc/e2guardian/lists/searchregexplist_f2'
searchlist = 'name=banned,path=/etc/e2guardian/lists/bannedsearchlist_f2'
searchlist = 'name=override,path=/etc/e2guardian/lists/bannedsearchoveridelist_f2'
categorydisplaythreshold = 0
embeddedurlweight = 0
bypass = 0
bypasskey = ''
sitelist = 'name=bannedbypass,messageno=500,path=/etc/e2guardian/lists/bannedsitelistwithbypass_f2'
infectionbypass = 0
infectionbypasskey = ''
infectionbypasserrorsonly = on
disablecontentscan = off  
disablecontentscanerror = off
contentscanexceptions = off
deepurlanalysis = off
reportinglevel = 3
usesmtp = off   #NOT YET TESTED
mailfrom = ''
avadmin = ''
contentadmin = ''
avsubject = 'e2guardian virus block'
contentsubject = 'e2guardian violation'
notifyav = off
notifycontent = off
thresholdbyuser = off
violations = 0
threshold = 0
sslmitm = off
mitmcheckcert = on
sitelist = 'name=nocheckcert,path=/etc/e2guardian/lists/nocheckcertsitelist_f2'
ipsitelist = 'name=nocheckcert,path=/etc/e2guardian/lists/nocheckcertsiteiplist_f2'

/etc/e2guardian/lists

Nachfolgende soll durch kopieren von bereits vorhandenen Konfigurationsdateien /etc/e2guardian/lists/* weitere Konfigurationsdateien erstellt werden, was gewünscht sein kann, wenn mehrere Filtergruppen zum Einsatz kommen:

# ls /etc/e2guardian/lists/*list /etc/e2guardian/lists/pics | while read FILE; do cp -a ${FILE} ${FILE}_f2; done

Bypass-Konfiguration

Unter einem sogenannten Bypass wird im E2guardian die Möglichkeit verstanden, beim erscheinen der „Access Denied“ (Zugriff verweigert-Seite) einen Link auf dieser Seite anzuklicken, um dann durch

  • Variante 1: Passwort Eingabe
  • Variante 2: Zugehörigkeit zu einer Filtergruppe (mit Authentifizierung)

damit die Seite für einen gewissen Zeitraum trotzdem angezeigt zu bekommen, obwohl diese durch die exception-Dateien eigentlich gesperrt ist.

Um E2guardian zu so einem Verhalten zu veranlassen, sind folgende Schritte notwendig:

  1. Die Freigabe auf eine Filtergruppe beschränken
  2. Anpassungen an der /etc/e2guardian/e2guardianf<Nummer>.conf-Datei
  3. Die entsprechende HTML-Datei anpassen - template<Nummer>.html, welche den entsprechendem -BYPASS- Link enthält

/etc/e2guardian/e2guardian.conf

Um die Freigabe via Bypass auf eine Filtergruppe beschränken zu können, ist die Erstellung einer Filtergruppe vorab erforderlich, was unter nachfolgendem internen Link nachgelesen werden kann:

/etc/e2guardian/e2guardianf<Nummer>.conf

In diesem Beispiel wird die Konfigurationsdatei /etc/e2guardian/e2guardianf2.conf verwendet um einen Bypass einzurichten:

(Nur relevanter Ausschnitt):

...
# Temporary Denied Page Bypass
# This provides a link on the denied page to bypass the ban for a few minutes.  To be
# secure it uses a random hashed secret generated at daemon startup.  You define the
# number of seconds the bypass will function for before the deny will appear again.
# To allow the link on the denied page to appear you will need to edit the template.html
# or e2guardian.pl file for your language.
# 300 = enable for 5 minutes
# 0 = disable ( defaults to 0 )
# -1 = enable but you require a separate program/CGI to generate a valid link
# Tachtler
# default: bypass = 0
bypass = 300
...

/usr/share/e2guardian/languages/german/templatef<Nummer>.html

In diesem Beispiel wird die Konfigurationsdatei /usr/share/e2guardian/languages/german/templatef2.html verwendet um einen Bypass einzurichten:

Folgender Link kann mit nachfolgendem HTML-Code, an geeigneter Stelle, auf der HTML-Seite „Access Denied“ (Zugriff verweigert-Seite) eingefügt werden:

(Nur relevanter Ausschnitt):

...
        <br><br>
        Zeitlich begrenzten Zugriff auf diese Seite trotzdem durchführen <a href="-BYPASS-">Bypass</a>
        <br><br><br><br>
...

Virenscanner-Konfiguration

Nahcfolgend soll der Virenscanner ClamAV eingebunden werden.

Um im E2guardian einen Virenscanner einbinden zu können, sind Anpassungen in den Konfigurationsdateien:

  • /etc/e2guardian/e2guardian.conf
  • /etc/e2guardian/contentscanners/clamdscan.conf
  • /etc/clamd.d/e2guardian.conf
  • /etc/sysconfig/clamd.e2guardian
  • /usr/lib/systemd/system/clamd.e2guardian.service

durchzuführen.

/etc/e2guardian/e2guardian.conf

Nachfolgende Anpassungen in der Konfigurationsdatei /etc/e2guardian/e2guardian.conf sind erforderlich, um den Virenscanner ClamAV einbinden zu können:

(Nur relevanter Ausschnitt)

...
# Content Scanners (Also known as AV scanners)
# These are plugins that scan the content of all files your browser fetches
# for example to AV scan.  The options are limitless.  Eventually all of
# e2guardian will be plugin based.  You can have more than one content
# scanner. The plugins are run in the order you specify.
# This is one of the few places you can have multiple options of the same name.
#
# Some of the scanner(s) require 3rd party software and libraries eg clamav.
# See the individual plugin conf file for more options (if any).
#
# Tachtler
# default: #contentscanner = '/etc/e2guardian/contentscanners/clamdscan.conf'
contentscanner = '/etc/e2guardian/contentscanners/clamdscan.conf'
#contentscanner = '/etc/e2guardian/contentscanners/avastdscan.conf'
#contentscanner = '/etc/e2guardian/contentscanners/kavdscan.conf'
#contentscanner = '/etc/e2guardian/contentscanners/icapscan.conf'
#contentscanner = '/etc/e2guardian/contentscanners/commandlinescan.conf'
...

/etc/e2guardian/contentscanners/clamdscan.conf

Nachfolgende Anpassungen in der Konfigurationsdatei /etc/e2guardian/contentscanners/clamdscan.conf sind erforderlich, um den Virenscanner ClamAV einbinden zu können:

(Komplette Konfigurationsdatei)

plugname = 'clamdscan'
 
# edit this to match the location of your ClamD UNIX domain socket
# Tachtler
# default: #clamdudsfile = '/var/run/clamav/clamd.sock'
clamdudsfile = '/var/run/e2guardian/clamd.sock'
 
# If this string is set, the text it contains shall be removed from the
# beginning of filenames when passing them to ClamD.
# Use it to - for example - support a ClamD running inside a chroot jail:
# if DG's filecachedir is set to "/var/clamdchroot/downloads/" and pathprefix
# is set to "/var/clamdchroot", then file names given to ClamD will be of the
# form "/downloads/tf*" instead of "/var/clamdchroot/downloads/tf*".
#pathprefix = '/var/clamdchroot'
 
# Only used until version 4.1.4
exceptionvirusmimetypelist = '/etc/e2guardian/lists/contentscanners/exceptionvirusmimetypelist'
exceptionvirusextensionlist = '/etc/e2guardian/lists/contentscanners/exceptionvirusextensionlist'
exceptionvirussitelist = '/etc/e2guardian/lists/contentscanners/exceptionvirussitelist'
exceptionvirusurllist = '/etc/e2guardian/lists/contentscanners/exceptionvirusurllist'

/etc/clamd.d/e2guardian.conf

Nachfolgende Konfigurationsdatei /etc/clamd.d/e2guardian.conf stellt die Verbindungsparameter zwischen dem E2guardian und dem Virenscanner ClamAV zur Verfügung.

:!: ACHTUNG - Aktuell sind alle Parameter noch auf „Dansguardian“ eingestellt, dies muss korrigiert werden!

Nachfolgend sollte die Konfigurationsdatei wie folgt angepasst werden, damit diese die Konfigurationen für den E2guardian und NICHT dem Dansguardian aufweist:

(Komplette Konfigurationsdatei):

# Use system logger.
LogSyslog yes
 
# Specify the type of syslog messages - please refer to 'man syslog'
# for facility names.
LogFacility LOG_DAEMON
 
# This option allows you to save a process identifier of the listening
# daemon (main thread).
# Tachtler
# default: PidFile /var/run/dansguardian/clamd.pid
PidFile /var/run/e2guardian/clamd.pid
 
# Remove stale socket after unclean shutdown.
# Default: disabled
FixStaleSocket yes
 
# Run as a selected user (clamd must be started by root).
# Tachtler
# default: User dansguardian
User e2guardian
 
# Path to a local socket file the daemon will listen on.
# Tachtler
# default: LocalSocket /var/run/dansguardian/clamd.sock
LocalSocket /var/run/e2guardian/clamd.sock

/etc/sysconfig/clamd.e2guardian

Nachfolgende Konfigurationsdatei /etc/sysconfig/clamd.e2guardian stellt ebenfalls weitere Verbindungsparameter zwischen dem E2guardian und dem Virenscanner ClamAV zur Verfügung.

:!: ACHTUNG - Aktuell sind alle Parameter noch auf „Dansguardian“ eingestellt, dies muss korrigiert werden!

Nachfolgend sollte die Konfigurationsdatei wie folgt angepasst werden, damit diese die Konfigurationen für den E2guardian und NICHT dem Dansguardian aufweist:

(Komplette Konfigurationsdatei):

CLAMD_CONFIGFILE=/etc/clamd.d/e2guardian.conf
CLAMD_SOCKET=/var/run/e2guardian/clamd.sock
CLAMD_OPTIONS=

/etc/systemd/system/clamd.e2guardian.service

Nachfolgende Konfigurationsdatei /etc/sysconfig/clamd.e2guardian stellt die Startparameter zur Verbindung zwischen dem E2guardian und dem Virenscanner ClamAV zur Verfügung.

:!: ACHTUNG - Aktuell sind alle Parameter noch auf „Dansguardian“ eingestellt, dies muss korrigiert werden!

Nachfolgend sollte die Konfigurationsdatei wie folgt angepasst werden, damit diese die Konfigurationen für den E2guardian und NICHT dem Dansguardian aufweist:

(Komplette Konfigurationsdatei):

[Unit]
Description=Clamd E2Guardian. An Interface Between Content Filter And Content Checkers
After=network.target
 
[Service]
Type=forking
PIDFile=/var/run/e2guardian/clamd.pid
ExecStart=/usr/sbin/clamd -c /etc/clamd.d/e2guardian.conf
 
[Install]
WantedBy=multi-user.target

Um die Änderungen wirksam werden zu lassen, muss nachfolgender Befehl ausgeführt werden:

# systemctl daemon-reload

/etc/tmpfiles.d/clamd.e2guardian.conf

Im Verzeichnis /etc/tmpfiles.d / systemd-tmpfiles.d können temporäre Dateien und Verzeichnisse unter anderem im Verzeichnis /var/run/ angelegt werden.

Nachfolgende Konfiguration erzeugt den temporären UNIX-Dateisocket im Verzeichnis /var/run/e2guardian/clamd.sock mit den zugehörigen Berechtigungen.

Dazu wird im nachfolgendem Verzeichnis eine Konfigurationsdatei mit ebenfalls nachfolgerndem Namen

  • /etc/tmpfiles.d/clamd.e2guardian.conf

erstellt, welche nachfolgenden Inhalt aufweist:

(Komplette Konfigurationsdatei):

d /var/run/e2guardian 0755 e2guardian clamupdate -

:!: HINWEIS - Mit diesen Dateirechten können auch Überwachungs-Monitore den Datei-Socket überprüfen!

ClamAV Dienst/Deamon-Start einrichten

Um den Virenscanner ClamAV mit dem E2guardian, welcher ebenfalls als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable clamd.e2guardian.service
ln -s '/usr/lib/systemd/system/clamd.e2guardian.service' '/etc/systemd/system/multi-user.target.wants/clamd.e2guardian.service'

Eine Überprüfung, ob beim Neustart des Server der clamd.e2guardian-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e e2guardian.service
clamd.e2guardian.service               enabled 
e2guardian.service                     enabled

bzw.

# systemctl is-enabled clamd.e2guardian.service
enabled

Erster Start clamd.e2guardian

Um den ClamAV des E2guardian zu starten kann nachfolgender Befehl angewandt werden:

# systemctl start clamd.e2guardian.service

Eine Überprüfung ob der Start des ClamAV des E2guardian erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:

# systemctl status clamd.e2guardian.service
clamd.e2guardian.service - Clamd E2Guardian. An Interface Between Content Filter And Content Checkers
   Loaded: loaded (/usr/lib/systemd/system/clamd.e2guardian.service; enabled)
   Active: active (running) since Thu 2015-06-11 16:26:28 CEST; 15s ago
  Process: 1417 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/e2guardian.conf (code=exited, status=0/SUCCESS)
 Main PID: 1419 (clamd)
   CGroup: /system.slice/clamd.e2guardian.service
           └─1419 /usr/sbin/clamd -c /etc/clamd.d/e2guardian.conf

Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Algorithmic detection...
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Portable Executable s...
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: ELF support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Mail files support en...
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: OLE2 support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: PDF support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: SWF support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: HTML support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Self checking every 6...
Jun 11 16:26:28 server50.tachtler.net systemd[1]: Started Clamd E2Guardi...
Hint: Some lines were ellipsized, use -l to show in full.

bzw. mit nachfolgendem Befehl, ob der Dienst/Daemon in der Prozessliste erscheint:

# ps aux | grep clamd
e2guard+  1419  0.0 15.6 452984 294660 ?       Ssl  16:26   0:00 /usr/sbin/clamd -c /etc/clamd.d/e2guardian.conf
root      1426  0.0  0.0 112640   932 pts/0    S+   16:27   0:00 grep --color=auto clamd

Eine weitere Möglichkeit ist die Überprüfung des journal, was mit nachfolgendem Befehl durchgeführt werden kann:

# journalctl -x
Jun 11 16:26:14 server50.tachtler.net systemd[1]: Starting Clamd E2Guardian. An Interface Between Content Filter And Content Checkers...
-- Subject: Unit clamd.e2guardian.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit clamd.e2guardian.service has begun starting up.
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: clamd daemon 0.98.7 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: Running as user e2guardian (UID 399, GID 399)
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: Log file size limited to 1048576 bytes.
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: Reading databases from /var/lib/clamav
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: Not loading PUA signatures.
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: Bytecode: Security mode set to "TrustSigned".
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: LibClamAV Warning: **************************************************
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: LibClamAV Warning: ***  The virus database is older than 7 days!  ***
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: LibClamAV Warning: ***   Please update it as soon as possible.    ***
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: LibClamAV Warning: **************************************************
Jun 11 16:26:26 server50.tachtler.net clamd[1417]: Loaded 3798335 signatures.
Jun 11 16:26:27 server50.tachtler.net clamd[1417]: LOCAL: Unix socket file /var/run/e2guardian/clamd.sock
Jun 11 16:26:27 server50.tachtler.net clamd[1417]: LOCAL: Setting connection queue length to 200
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: Global size limit set to 104857600 bytes.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: File size limit set to 26214400 bytes.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: Recursion level limit set to 16.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: Files limit set to 10000.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: MaxEmbeddedPE limit set to 10485760 bytes.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: MaxHTMLNormalize limit set to 10485760 bytes.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: MaxHTMLNoTags limit set to 2097152 bytes.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: MaxScriptNormalize limit set to 5242880 bytes.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: MaxZipTypeRcg limit set to 1048576 bytes.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: MaxPartitions limit set to 50.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Limits: MaxIconsPE limit set to 100.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Archive support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Algorithmic detection enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Portable Executable support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: ELF support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Mail files support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: OLE2 support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: PDF support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: SWF support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: HTML support enabled.
Jun 11 16:26:27 server50.tachtler.net clamd[1419]: Self checking every 600 seconds.
Jun 11 16:26:28 server50.tachtler.net systemd[1]: Started Clamd E2Guardian. An Interface Between Content Filter And Content Checkers.
-- Subject: Unit clamd.e2guardian.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit clamd.e2guardian.service has finished starting up.
-- 
-- The start-up result is done.

Ignore/Whitelist erstellen: /var/lib/clamav/whitelist.ign2

Um z.B. bei dem Verdacht auf ein „false-positive“ eine Erkennung eines bestimmten Treffers aus dem „pattern“ von ClamAV ignorieren bzw. „whitelisten“ zu können, ist nachfolgendes Vorgehen notwendig.

Mit nachfolgendem Befehl ist im Verzeichnis

  • /var/lib/clamav

eine Datei mit dem Namen

  • whitelist.ign2

zu erzeugen.

# touch /var/lib/clamav/whitelist.ign2

Der Inhalt ist dann mit dem Namen des zu ignorierenden bzw. „whitelistenden“ Treffers aus dem „pattern“ von ClamAV als einfacher Eintrag zu erstellen, wie nachfolgendes Beispiel zeigt:

Win.Exploit.CVE_2019_0903-6966169-0

Anschliessend ist, wenn der ClamAV bereits gestartet wurde, ein Neustart mit nachfolgendem Befehl durchzuführen:

# systemctl restart clamd.e2guardian.service

Virenscanner-Update-Konfiguration

Die Einbindung des Virenscanners ClamAV in den E2guardian ist leider noch nicht ausreichend, da der Virenscanner ohne frische Viren-Pattern (Viren-Update-Dateien) nur bedingt erfolgreich agieren kann, was z.B ggf. auch im journal zu sehen ist:

(Nur relevanter Ausschnitt)

Jun 11 16:26:14 server50.tachtler.net clamd[1417]: LibClamAV Warning: **************************************************
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: LibClamAV Warning: ***  The virus database is older than 7 days!  ***
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: LibClamAV Warning: ***   Please update it as soon as possible.    ***
Jun 11 16:26:14 server50.tachtler.net clamd[1417]: LibClamAV Warning: **************************************************

Um den ClamAV welcher in den E2guardian eingebunden ist „Up-To-Date“ zu halten ist nachfolgende Konfiguration erforderlich.

Installation: clamav-update

Mit nachfolgendem Befehl, kann das rpm-Paket - clamav-update installiert werden:

# yum install clamav-update
Loaded plugins: changelog, priorities
base                                                     | 3.6 kB     00:00     
epel                                                     | 4.4 kB     00:00     
extras                                                   | 3.4 kB     00:00     
mailserver.guru-os                                       | 2.9 kB     00:00     
mailserver.guru-testing                                  | 2.9 kB     00:00     
updates                                                  | 3.4 kB     00:00     
mailserver.guru-os/x86_64/primary_db                       | 119 kB   00:00     
132 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package clamav-update.x86_64 0:0.98.7-1.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package               Arch           Version                Repository    Size
================================================================================
Installing:
 clamav-update         x86_64         0.98.7-1.el7           epel          89 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 89 k
Installed size: 178 k
Is this ok [y/d/N]: y
Downloading packages:
clamav-update-0.98.7-1.el7.x86_64.rpm                      |  89 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : clamav-update-0.98.7-1.el7.x86_64                            1/1 
  Verifying  : clamav-update-0.98.7-1.el7.x86_64                            1/1 

Installed:
  clamav-update.x86_64 0:0.98.7-1.el7                                           

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket e2guardian installiert wurden.

# rpm -qil clamav-update
Name        : clamav-update
Version     : 0.98.7
Release     : 1.el7
Architecture: x86_64
Install Date: Thu 11 Jun 2015 05:02:33 PM CEST
Group       : Applications/File
Size        : 182427
License     : GPLv2
Signature   : RSA/SHA256, Thu 30 Apr 2015 03:57:27 PM CEST, Key ID 6a2faea2352c64e5
Source RPM  : clamav-0.98.7-1.el7.src.rpm
Build Date  : Wed 29 Apr 2015 08:47:04 PM CEST
Build Host  : buildvm-20.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.clamav.net
Summary     : Auto-updater for the Clam Antivirus scanner data-files
Description :
This package contains programs which can be used to update the clamav
anti-virus database automatically. It uses the freshclam(1) utility for
this task. To activate it, uncomment the entry in /etc/cron.d/clamav-update.
/etc/cron.d/clamav-update
/etc/freshclam.conf
/etc/logrotate.d/clamav-update
/etc/sysconfig/freshclam
/usr/bin/freshclam
/usr/share/clamav/freshclam-sleep
/usr/share/man/man1/freshclam.1.gz
/usr/share/man/man5/freshclam.conf.5.gz
/var/lib/clamav/daily.cld
/var/lib/clamav/main.cld
/var/log/freshclam.log

/etc/sysconfig/freshclam

Nachfolgende Konfigurationsdatei /etc/sysconfig/freshclam regelt, ob der Dienst überhaupt aktiv ist und muss entsprechend angepasst werden, damit dieser aktiv ist.

Nachfolgende Anpassungen müssen am Ende der Konfigurationsdatei durchgeführt werden:

(Komplette Konfigurationsdatei)

## When changing the periodicity of freshclam runs in the crontab,
## this value must be adjusted also. Its value is the timespan between
## two subsequent freshclam runs in minutes. E.g. for the default
##
## | 0 */3 * * *  ...
##
## crontab line, the value is 180 (minutes).
# FRESHCLAM_MOD=
 
## A predefined value for the delay in seconds. By default, the value is
## calculated by the 'hostid' program. This predefined value guarantees
## constant timespans of 3 hours between two subsequent freshclam runs.
##
## This option accepts two special values:
## 'disabled-warn'  ...  disables the automatic freshclam update and
##                         gives out a warning
## 'disabled'       ...  disables the automatic freshclam silently
# FRESHCLAM_DELAY=
 
 
### !!!!! REMOVE ME !!!!!!
### REMOVE ME: By default, the freshclam update is disabled to avoid
### REMOVE ME: network access without prior activation
# Tachtler
# default: FRESHCLAM_DELAY=disabled-warn	# REMOVE ME
# FRESHCLAM_DELAY=disabled-warn	# REMOVE ME

/etc/freshclam.conf

Nachfolgende Konfigurationsdatei /etc/freshclam.conf ist die Steuerungsdatei für den ClamAV-Update-Mechanismus.

Da die Konfigurationsdatei /etc/freshclam.conf aufgrund von Kommentar- und Leerzeichen sehr schnell unübersichtlich ist, kann mit nachfolgendem Befehl, eine Ausgabe ohne Kommentar- und Leerzeilen erzeugt werden, welche dann nach der Grundinstallation des ClamAV-Update-Mechanismus wie folgt aussehen sollte:

# egrep -v '(^#|^$)' /etc/freshclam.conf

Die Konfigurationsdatei /etc/freshclam.conf ohne Kommentar- und Leerzeichen:

# egrep -v '(^#|^$)' /etc/freshclam.conf 
Example
LogSyslog yes
DatabaseMirror database.clamav.net

Nachfolgende Anpassungen müssen am Anfang der Konfigurationsdatei durchgeführt werden:

(Nur relevanter Ausschnitt)

##
## Example config file for freshclam
## Please read the freshclam.conf(5) manual before editing this file.
##
 
 
# Comment or remove the line below.
# Tachtler
# default: Example
# Example
...

Nachfolgende Änderungen wurden beispielhaft vorgenommen:

Verringerung der Update-Zeit von alle 3 Stunden auf alle 30 Minuten (Maximalwert):

  • Checks 48

Benachrichtigung des ClamAV ermöglichen:

  • NotifyClamd /etc/clamd.d/e2guardian.conf

Die Konfigurationsdatei /etc/freshclam.conf ohne Kommentar- und Leerzeichen inklusive der Änderungen, könnte dann wie folgt aussehen:

# egrep -v '(^#|^$)' /etc/freshclam.conf
LogSyslog yes
DatabaseMirror database.clamav.net
Checks 48
NotifyClamd /etc/clamd.d/e2guardian.conf

Variante 1: /etc/cron.d/clamav-update

Nachfolgender cron-Job wird standardmäßig: alle 3-Stunden ausgeführt und liefert so Updates für den Virenscanner ClamAV.

Dies kann ebenfalls auf den (Maximalwert = 30 Minuten) abgeändert werden, wie nachfolgende Anpassungen zeigen:

(Komplette Konfigurationsdatei)

## Adjust this line...
MAILTO=root
 
## It is ok to execute it as root; freshclam drops privileges and becomes
## user 'clamupdate' as soon as possible
# Tachtler
# default: 0  */3 * * * root /usr/share/clamav/freshclam-sleep
*/30  * * * * root /usr/share/clamav/freshclam-sleep

Variante 2: /usr/lib/systemd/system/clamd.freshclam.service

Alternativ kann auch der „freshclam“ als Daemon im Hintergrund gestartet werden, was durch erstellen einer systemdStart-Datei für den „freshclam“ wie nachfolgend gezeigt, durchgeführt werden kann:

# Run the freshclam as daemon
[Unit]
Description = freshclam update scanner daemon
After = network.target
 
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d
Restart = on-failure
PrivateTmp = true
 
[Install]
WantedBy=multi-user.target

Um die Änderungen wirksam werden zu lassen, muss nachfolgender Befehl ausgeführt werden:

# systemctl daemon-reload

Freshclam Dienst/Deamon-Start einrichten

Um den Virenscanner ClamAV-Update-Dienst/Daemon, welcher ebenfalls als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable clamd.freshclam.service
ln -s '/usr/lib/systemd/system/clamd.freshclam.service' '/etc/systemd/system/multi-user.target.wants/clamd.freshclam.service'

Eine Überprüfung, ob beim Neustart des Server der clamd.freshclam.-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e clamd.freshclam
clamd.freshclam.service               enabled

bzw.

# systemctl is-enabled clamd.freshclam.service
enabled

Erster Start clamd.freshclam

Um den ClamAV-Update-Mechanismus des E2guardian zu starten kann nachfolgender Befehl angewandt werden:

# systemctl start clamd.freshclam.service

Eine Überprüfung ob der Start des ClamAV-Update-Mechanismus des E2guardian erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:

# systemctl status clamd.freshclam.service
clamd.freshclam.service - freshclam update scanner daemon
   Loaded: loaded (/usr/lib/systemd/system/clamd.freshclam.service; enabled)
   Active: active (running) since Thu 2015-06-11 18:00:10 CEST; 2s ago
  Process: 1766 ExecStart=/usr/bin/freshclam -d (code=exited, status=0/SUCCESS)
 Main PID: 1767 (freshclam)
   CGroup: /system.slice/clamd.freshclam.service
           └─1767 /usr/bin/freshclam -d

Jun 11 18:00:10 server50.tachtler.net freshclam[1767]: main.cvd is up to...
Jun 11 18:00:10 server50.tachtler.net systemd[1]: Started freshclam upda...
Jun 11 18:00:12 server50.tachtler.net freshclam[1767]: getfile: daily-20...
Jun 11 18:00:12 server50..achtler.net freshclam[1767]: getpatch: Can't d...
Jun 11 18:00:12 server50.tachtler.net freshclam[1767]: getfile: daily-20...
Jun 11 18:00:12 server50.tachtler.net freshclam[1767]: getpatch: Can't d...
Jun 11 18:00:12 server50.tachtler.net freshclam[1767]: Trying host datab...
Jun 11 18:00:12 server50.tachtler.net freshclam[1767]: getfile: daily-20...
Jun 11 18:00:12 server50.tachtler.net freshclam[1767]: getpatch: Can't d...
Jun 11 18:00:12 server50.tachtler.net freshclam[1767]: Incremental updat...
Hint: Some lines were ellipsized, use -l to show in full.

bzw. mit nachfolgendem Befehl, ob der Dienst/Daemon in der Prozessliste erscheint:

# ps aux | grep freshclam
clamupd+  1824  7.8  0.1  69448  2732 ?        Ss   18:02   0:04 /usr/bin/freshclam -d
root      1833  0.0  0.0 112640   932 pts/0    S+   18:02   0:00 grep --color=auto freshclam

Ebenfalls kann anhand der LOG-Datei des „freshclam“ nachvollzogen werden, wie das Update der Viren-Pattern (Virus-Update-Informationen) verlaufen ist. Es sollte eine Ausgabe in etwa wie nachfolgende erscheinen:

Jun 12 12:11:22 server50 freshclam[2664]: Update process terminated
Jun 12 12:11:44 server50 freshclam[3209]: freshclam daemon 0.98.7 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Jun 12 12:11:44 server50 freshclam[3209]: ClamAV update process started at Fri Jun 12 12:11:44 2015
Jun 12 12:11:44 server50 freshclam[3209]: main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
Jun 12 12:12:15 server50 freshclam[3209]: Downloading daily.cvd [100%]
Jun 12 12:12:21 server50 freshclam[3209]: daily.cvd updated (version: 20563, sigs: 1423134, f-level: 63, builder: shurley)
Jun 12 12:12:22 server50 freshclam[3209]: Downloading bytecode.cvd [100%]
Jun 12 12:12:22 server50 freshclam[3209]: bytecode.cvd updated (version: 258, sigs: 47, f-level: 63, builder: anvilleg)
Jun 12 12:12:26 server50 freshclam[3209]: Database updated (3847406 signatures) from database.clamav.net (IP: 62.201.161.84)
Jun 12 12:12:26 server50 freshclam[3209]: Clamd successfully notified about the update.
Jun 12 12:12:26 server50 freshclam[3209]: --------------------------------------

Vor allem nachfolgende Zeile sollte erscheinen:

Jun 12 12:12:26 server50 freshclam[3209]: Clamd successfully notified about the update.

Blacklist-Konfiguration

E2guardian bietet die Möglichkeit sogenannte Blacklist einzubinden, diese Listen beinhalten meist Domains, welche in verschiedenen Kategorien unterteilt sind.

Herunterladen

Unter nachfolgendem externen Link kann für den persönlichen und privaten Gebrauch, kostenlos mit täglichen Updates, Blacklist bezogen werden:

Der Download kann direkt unter nachfolgendem Link gestartet werden:

Nachfolgender Befehl soll hier beispielhaft zum Download in das Verzeichnis /tmp genutzt werden:

# wget http://www.shallalist.de/Downloads/shallalist.tar.gz -P /tmp
--2015-06-12 14:58:34--  http://www.shallalist.de/Downloads/shallalist.tar.gz
Resolving www.shallalist.de (www.shallalist.de)... 46.4.77.203
Connecting to www.shallalist.de (www.shallalist.de)|46.4.77.203|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9897263 (9.4M) [application/x-gzip]
Saving to: ‘/tmp/shallalist.tar.gz’

100%[======================================>] 9,897,263   1.16MB/s   in 8.2s   

2015-06-12 14:58:43 (1.14 MB/s) - ‘/tmp/shallalist.tar.gz’ saved [9897263/9897263]

Installation

Nach dem erfolgreichen herunterladen der Datei shallalist.tar.gzin das Verzeichnis /tmp kann diese Datei mit nachfolgendem Befehl entpackt werden:

# tar xzfv /tmp/shallalist.tar.gz

Anschließend ist das Verzeichnis /tmp/BL entstanden, welches mit nachfolgendem Befehl in das Verzeichnis /etc/e2guardian/lists kopiert und gleichzeitig umbenannt werden kann:

# mv /tmp/BL /etc/e2guardian/lists/blacklists

Mit nachfolgendem Befehl, müssen noch die richtigen Besitzrechte gesetzt werden:

# chown -R root.root /etc/e2guardian/lists/blacklists

Mit nachfolgendem Befehle, müssen noch die richtigen Dateirechte gesetzt werden:

# chmod -R 755 /etc/e2guardian/lists/blacklists

Die Konfiguration bzw. das Einbinden der Domain-Listen aus den einzelnen Verzeichnissen geschieht in der Konfigurationsdatei

  • /etc/e2guardian/bannedsitelist

Hier ist ebenfalls schon eine etwas kleinere Liste enthalten, welche aber aufgrund des neuen und aktuelleren Umfangs ignoriert werden sollte, jedoch als Vorlage dienen kann, wie die einzelnen Domain-Listen eingebunden werden sollen.

Hier ein Konfigurationsbeispiel für das einbinden der Domain-Listen in die DansGuardian-Konfigurationsdatei /etc/e2guardian/lists/bannedsitelist

(Nur relevanter Ausschnitt):

...
# The squidGuard advert domain/URL lists are now included by default.
# To work with advanced ad blocking & the logadblocks option, advert
# phrase/site/URL lists should have the string "ADs" in their listcategory.
# .Include</etc/e2guardian/lists/blacklists/ads/domains>
 
#Remove the # from the following and edit as needed to use a stock
#squidGuard/urlblacklists collection.
#.Include</etc/e2guardian/lists/blacklists/adult/domains>
#.Include</etc/e2guardian/lists/blacklists/aggressive/domains>
#.Include</etc/e2guardian/lists/blacklists/artnudes/domains>
#.Include</etc/e2guardian/lists/blacklists/audio-video/domains>
#.Include</etc/e2guardian/lists/blacklists/beerliquorinfo/domains>
#.Include</etc/e2guardian/lists/blacklists/beerliquorsale/domains>
#.Include</etc/e2guardian/lists/blacklists/chat/domains>
#.Include</etc/e2guardian/lists/blacklists/childcare/domains>
#.Include</etc/e2guardian/lists/blacklists/clothing/domains>
#.Include</etc/e2guardian/lists/blacklists/culinary/domains>
#.Include</etc/e2guardian/lists/blacklists/dialers/domains>
#.Include</etc/e2guardian/lists/blacklists/drugs/domains>
#.Include</etc/e2guardian/lists/blacklists/entertainment/domains>
#.Include</etc/e2guardian/lists/blacklists/forums/domains>
#.Include</etc/e2guardian/lists/blacklists/frencheducation/domains>
#.Include</etc/e2guardian/lists/blacklists/gambling/domains>
#.Include</etc/e2guardian/lists/blacklists/government/domains>
#.Include</etc/e2guardian/lists/blacklists/hacking/domains>
#.Include</etc/e2guardian/lists/blacklists/homerepair/domains>
#.Include</etc/e2guardian/lists/blacklists/hygiene/domains>
#.Include</etc/e2guardian/lists/blacklists/jewelry/domains>
#.Include</etc/e2guardian/lists/blacklists/jobsearch/domains>
#.Include</etc/e2guardian/lists/blacklists/kidstimewasting/domains>
#.Include</etc/e2guardian/lists/blacklists/mail/domains>
#.Include</etc/e2guardian/lists/blacklists/news/domains>
#.Include</etc/e2guardian/lists/blacklists/onlineauctions/domains>
#.Include</etc/e2guardian/lists/blacklists/onlinegames/domains>
#.Include</etc/e2guardian/lists/blacklists/onlinepayment/domains>
#.Include</etc/e2guardian/lists/blacklists/personalfinance/domains>
#.Include</etc/e2guardian/lists/blacklists/pets/domains>
#.Include</etc/e2guardian/lists/blacklists/porn/domains>
#.Include</etc/e2guardian/lists/blacklists/proxy/domains>
#.Include</etc/e2guardian/lists/blacklists/publicite/domains>
#.Include</etc/e2guardian/lists/blacklists/redirector/domains>
#.Include</etc/e2guardian/lists/blacklists/ringtones/domains>
#.Include</etc/e2guardian/lists/blacklists/sportnews/domains>
#.Include</etc/e2guardian/lists/blacklists/sports/domains>
#.Include</etc/e2guardian/lists/blacklists/vacation/domains>
#.Include</etc/e2guardian/lists/blacklists/violence/domains>
#.Include</etc/e2guardian/lists/blacklists/virusinfected/domains>
#.Include</etc/e2guardian/lists/blacklists/warez/domains>

Nachfolgende ein Beispiel wie die Einträge durchgeführt werden können, OHNE alle Listen zu verwenden:

(Nur relevanter Ausschnitt):

# Tachtler - active blacklists -
.Include</etc/e2guardian/lists/blacklists/aggressive/domains>
.Include</etc/e2guardian/lists/blacklists/dating/domains>
.Include</etc/e2guardian/lists/blacklists/drugs/domains>
.Include</etc/e2guardian/lists/blacklists/fortunetelling/domains>
.Include</etc/e2guardian/lists/blacklists/gamble/domains>
.Include</etc/e2guardian/lists/blacklists/porn/domains>
.Include</etc/e2guardian/lists/blacklists/sex/education/domains>
.Include</etc/e2guardian/lists/blacklists/sex/lingerie/domains>
.Include</etc/e2guardian/lists/blacklists/spyware/domains>
.Include</etc/e2guardian/lists/blacklists/tracker/domains>
.Include</etc/e2guardian/lists/blacklists/weapons/domains>

Probleme nach dem einbinden der Blacklists

Evtl. kann es sein, dass auch ein Zugriff auf Google nicht mehr möglich ist. Die ist eine Resultat davon, dass es eine Blacklist gibt in der Suchmaschinen wie Google gelistet sind. Die Datei hat den Namen /etc/e2guardian/lists/blacklists/searchengines/domains.

Das Auffinden von evtl. erwünschten, jedoch gesperrten Seiten kann mit folgendem Befehl durchgeführt werden:

# grep -r google.de /etc/e2guardian/lists/blacklists/*
/etc/e2guardian/lists/blacklists/imagehosting/domains:images.google.de
/etc/e2guardian/lists/blacklists/movies/domains:video.google.de
/etc/e2guardian/lists/blacklists/news/domains:news.google.de
/etc/e2guardian/lists/blacklists/porn/urls:google.de/notebook/public/05160677075035842971/BDRkwSgoQ2Iiezpwj
/etc/e2guardian/lists/blacklists/porn/urls:google.de/notebook/public/09859990722265856606/BDSUCIwoQgKnn4Zwj
/etc/e2guardian/lists/blacklists/porn/domains:videogoogle.de
/etc/e2guardian/lists/blacklists/porn/domains.processed:videogoogle.de
/etc/e2guardian/lists/blacklists/searchengines/domains:google.de
/etc/e2guardian/lists/blacklists/shopping/urls:google.de/products
/etc/e2guardian/lists/blacklists/shopping/urls:www.google.de/froogle
/etc/e2guardian/lists/blacklists/tracker/domains:id.google.de
/etc/e2guardian/lists/blacklists/tracker/domains.processed:id.google.de

Abhilfe schafft hier das einfache Auskommentieren der entsprechenden Einträge in den entsprechenden Dateien, hier z.B. /etc/e2guardian/lists/blacklists/searchengines/domains, was wie folgt aussehen kann:

Vorher:

google.de

Nachher:

# google.de

Automatisches Update der Blacklists

Nachfolgendes Skript kann im Verzeichnis

  • /etc/cron.daily

hinterlegt werden und holt einmal pro Tag dann die aktuellen blacklist ab und bindet diese automatisch ein:

#!/bin/bash
 
##############################################################################
# Script-Name : update_shallalist.sh                                         # 
# Description : Download and Update shallalist.tar.gz from download site at  # 
#               http://www.shallalist.de/Downloads/shallalist.tar.gz         # 
#                                                                            # 
#                                                                            # 
# Last update : 07.07.2015                                                   # 
# Version     : 1.00                                                         # 
##############################################################################
 
##############################################################################
#                                H I S T O R Y                               # 
##############################################################################
# Version     : x.xx                                                         # 
# Description : <Description>                                                #
# -------------------------------------------------------------------------- # 
# Version     : x.xx                                                         # 
# Description : <Description>                                                #
# -------------------------------------------------------------------------- # 
##############################################################################
 
# Source function library.
. /etc/init.d/functions
 
# Variable declarations.
 
##############################################################################
# >>> Please edit following lines for personal command and/or repositorys. ! #
##############################################################################
 
# CUSTOM - Script-Name.
SCRIPT_NAME='update_shallalist.sh'
 
# CUSTOM - Command-Line.
WGET_CMDOPTS='-nH '
 
# CUSTOM - PATH/FILE variables.
SOURCE_URL="http://www.shallalist.de/Downloads"
SOURCE_FILE="shallalist.tar.gz"
TARGET_PATH="/etc/e2guardian/lists/blacklists"
 
# CUSTOM - Binary.
BINARY_NAME="e2guardian"
 
# CUSTOM - Mail-Recipient.
MAIL_RECIPIENT='root@tachtler.net'
 
# CUSTOM - Status-Mail [Y|N].
MAIL_STATUS='N'
 
##############################################################################
# >>> Normaly there is no need to change anything below this comment line. ! #
##############################################################################
 
# Variables.
WGET_COMMAND=`command -v wget`
TOUCH_COMMAND=`command -v touch`
RM_COMMAND=`command -v rm`
MV_COMMAND=`command -v mv`
CAT_COMMAND=`command -v cat`
DATE_COMMAND=`command -v date`
MKDIR_COMMAND=`command -v mkdir`
PROG_SENDMAIL=`command -v sendmail`
TAR_COMMAND=`command -v tar`
CHOWN_COMMAND=`command -v chown`
CHMOD_COMMAND=`command -v chmod`
SYSTEMCTL_COMMAND=`command -v systemctl`
FILE_LOCK='/tmp/'$SCRIPT_NAME'.lock'
FILE_LOG='/var/log/'$SCRIPT_NAME'.log'
FILE_LAST_LOG='/tmp/'$SCRIPT_NAME'.log'
FILE_MAIL='/tmp/'$SCRIPT_NAME'.mail'
VAR_HOSTNAME=`uname -n`
VAR_SENDER='root@'$VAR_HOSTNAME
VAR_EMAILDATE=`$DATE_COMMAND '+%a, %d %b %Y %H:%M:%S (%Z)'`
 
# Functions.
function log() {
        echo $1
        echo `$DATE_COMMAND '+%Y/%m/%d %H:%M:%S'` " INFO:" $1 >>${FILE_LAST_LOG}
}
 
function retval() {
if [ "$?" != "0" ]; then
        case "$?" in
        1)
                log "ERROR: Generic error code."
        ;;
        2)
                log "ERROR: Parse error---for instance, when parsing command-line options, the .wgetrc or .netrc..."
        ;;
        3)
                log "ERROR: File I/O error."
        ;;
        4)
                log "ERROR: Network failure."
        ;;
        5)
                log "ERROR: SSL verification failure."
        ;;
        6)
                log "ERROR: Username/password authentication failure."
        ;;
        7)
                log "ERROR: Protocol errors."
        ;;
        8)
                log "ERROR: Server issued an error response."
        ;;
        *)
                log "ERROR: Unknown error $?"
        ;;
        esac
fi
}
 
function movelog() {
        $CAT_COMMAND $FILE_LAST_LOG >> $FILE_LOG
        $RM_COMMAND -f $FILE_LAST_LOG
        $RM_COMMAND -f $FILE_LOCK
}
 
function sendmail() {
        case "$1" in
        'STATUS')
                MAIL_SUBJECT='Status execution '$SCRIPT_NAME' script.'
        ;;
        *)
                MAIL_SUBJECT='ERROR while execution '$SCRIPT_NAME' script !!!'
        ;;
        esac
 
$CAT_COMMAND <<MAIL >$FILE_MAIL
Subject: $MAIL_SUBJECT
Date: $VAR_EMAILDATE
From: $VAR_SENDER
To: $MAIL_RECIPIENT
 
MAIL
 
$CAT_COMMAND $FILE_LAST_LOG >> $FILE_MAIL
 
$PROG_SENDMAIL -f $VAR_SENDER -t $MAIL_RECIPIENT < $FILE_MAIL
 
$RM_COMMAND -f $FILE_MAIL
 
}
 
# Main.
log ""
log "+-----------------------------------------------------------------+"
log "| Start update blacklist from official server: www.shallalist.de. |"
log "+-----------------------------------------------------------------+"
log ""
log "Run script with following parameter:"
log ""
log "SCRIPT_NAME...: $SCRIPT_NAME"
log ""
log "SOURCE_URL....: $SOURCE_URL"
log "SOURCE_FILE...: $SOURCE_FILE"
log "TARGET_PATH...: $TARGET_PATH"
log ""
log "BINARY_NAME...: $BINARY_NAME"
log ""
log "MAIL_RECIPIENT: $MAIL_RECIPIENT"
log "MAIL_STATUS...: $MAIL_STATUS"
log ""
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$WGET_COMMAND" ]; then
        log "Check if command '$WGET_COMMAND' was found.....................[FAILED]"
        sendmail ERROR
	movelog
        exit 10
else
        log "Check if command '$WGET_COMMAND' was found.....................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$TOUCH_COMMAND" ]; then
        log "Check if command '$TOUCH_COMMAND' was found....................[FAILED]"
        sendmail ERROR
        movelog
        exit 11
else
        log "Check if command '$TOUCH_COMMAND' was found....................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$RM_COMMAND" ]; then
        log "Check if command '$RM_COMMAND' was found.......................[FAILED]"
        sendmail ERROR
	movelog
        exit 12
else
        log "Check if command '$RM_COMMAND' was found.......................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$MV_COMMAND" ]; then
        log "Check if command '$MV_COMMAND' was found.......................[FAILED]"
        sendmail ERROR
	movelog
        exit 13
else
        log "Check if command '$MV_COMMAND' was found.......................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$CAT_COMMAND" ]; then
        log "Check if command '$CAT_COMMAND' was found......................[FAILED]"
        sendmail ERROR
	movelog
        exit 14
else
        log "Check if command '$CAT_COMMAND' was found......................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$DATE_COMMAND" ]; then
        log "Check if command '$DATE_COMMAND' was found.....................[FAILED]"
        sendmail ERROR
	movelog
        exit 15
else
        log "Check if command '$DATE_COMMAND' was found.....................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$MKDIR_COMMAND" ]; then
        log "Check if command '$MKDIR_COMMAND' was found....................[FAILED]"
        sendmail ERROR
	movelog
        exit 16
else
        log "Check if command '$MKDIR_COMMAND' was found....................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$PROG_SENDMAIL" ]; then
        log "Check if command '$PROG_SENDMAIL' was found................[FAILED]"
        sendmail ERROR
	movelog
        exit 17
else
        log "Check if command '$PROG_SENDMAIL' was found................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$TAR_COMMAND" ]; then
        log "Check if command '$TAR_COMMAND' was found......................[FAILED]"
        sendmail ERROR
	movelog
        exit 18
else
        log "Check if command '$TAR_COMMAND' was found......................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$CHOWN_COMMAND" ]; then
        log "Check if command '$CHOWN_COMMAND' was found....................[FAILED]"
        sendmail ERROR
	movelog
        exit 19
else
        log "Check if command '$CHOWN_COMMAND' was found....................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$CHMOD_COMMAND" ]; then
        log "Check if command '$CHMOD_COMMAND' was found....................[FAILED]"
        sendmail ERROR
	movelog
        exit 20
else
        log "Check if command '$CHMOD_COMMAND' was found....................[  OK  ]"
fi
 
# Check if command (file) NOT exist OR IS empty.
if [ ! -s "$SYSTEMCTL_COMMAND" ]; then
        log "Check if command '$SYSTEMCTL_COMMAND' was found................[FAILED]"
        sendmail ERROR
	movelog
        exit 21
else
        log "Check if command '$SYSTEMCTL_COMMAND' was found................[  OK  ]"
fi
 
# Check if LOCK file NOT exist.
if [ ! -e "$FILE_LOCK" ]; then
        log "Check if script is NOT already runnig .....................[  OK  ]"
 
        $TOUCH_COMMAND $FILE_LOCK
else
        log "Check if script is NOT already runnig .....................[FAILED]"
        log ""
        log "ERROR: The script was already running, or LOCK file already exists!"
        log ""
        sendmail ERROR
	movelog
        exit 30
fi
 
# Start download.
log ""
log "+-----------------------------------------------------------------+"
log "| Run download from $SCRIPT_NAME ........................ |"
log "+-----------------------------------------------------------------+"
log ""
 
log "$WGET_COMMAND $WGET_CMDOPTS $SOURCE_URL/$SOURCE_FILE"
 
$WGET_COMMAND $WGET_CMDOPTS --append-output=$FILE_LAST_LOG --directory-prefix=/tmp $SOURCE_URL/$SOURCE_FILE
 
if [ "$?" != 0 ]; then
        retval $?
        log ""
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 50
else
        log ""
        log "+-----------------------------------------------------------------+"
	log "| End download from $SCRIPT_NAME ........................ |"
        log "+-----------------------------------------------------------------+"
        log ""
fi
 
# Unpack downloaded blacklist to 
log "+-----------------------------------------------------------------+"
log "| Unpack downloaded tar.gz to target directory................... |"
log "+-----------------------------------------------------------------+"
log ""
log "SOURCE_FILE...: $SOURCE_FILE"
log ""
 
$MKDIR_COMMAND -p /tmp/blacklists
 
if [ "$?" != 0 ]; then
        retval $?
        log "Make temp. directory '/tmp/blacklists' [FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 60
else
        log "Make temp. directory '/tmp/blacklists' [  OK  ]"
	log ""
fi
 
$TAR_COMMAND xzvf /tmp/$SOURCE_FILE -C /tmp/blacklists --strip-components=1
 
if [ "$?" != 0 ]; then
        retval $?
        log "Unpack of '$SOURCE_FILE' .............................[FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 61
else
	log ""
        log "Unpack of '$SOURCE_FILE' .............................[  OK  ]"
fi
 
$CHOWN_COMMAND -R root.root /tmp/blacklists
 
if [ "$?" != 0 ]; then
        retval $?
        log "Owner set '/tmp/blacklists' ...............................[FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 62
else
	log ""
        log "Owner set '/tmp/blacklists' ...............................[  OK  ]"
fi
 
$CHMOD_COMMAND -R 755 /tmp/blacklists
 
if [ "$?" != 0 ]; then
        retval $?
        log "Permission set '/tmp/blacklists' ..........................[FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 63
else
        log "Permission set '/tmp/blacklists' ..........................[  OK  ]"
fi
 
$SYSTEMCTL_COMMAND stop $BINARY_NAME
 
if [ "$?" != 0 ]; then
        retval $?
        log "Stop of '$BINARY_NAME' ......................................[FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 70
else
	log ""
        log "Stop of '$BINARY_NAME' ......................................[  OK  ]"
fi
 
$RM_COMMAND -rf $TARGET_PATH/*
 
if [ "$?" != 0 ]; then
        retval $?
        log "Delete of '$TARGET_PATH/*' ............[FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
        movelog
        exit 71
else
        log ""
        log "Delete of '$TARGET_PATH/*' ............[  OK  ]"
fi
 
$MV_COMMAND /tmp/blacklists/* $TARGET_PATH/
 
if [ "$?" != 0 ]; then
        retval $?
        log "Move '/tmp/blacklists' '$TARGET_PATH/' [FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 72
else
        log "Move '/tmp/blacklists' '$TARGET_PATH/' [  OK  ]"
fi
 
$SYSTEMCTL_COMMAND start $BINARY_NAME
 
if [ "$?" != 0 ]; then
        retval $?
        log "Start of '$BINARY_NAME' .....................................[FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 73
else
	log ""
        log "Start of '$BINARY_NAME' .....................................[  OK  ]"
fi
 
$RM_COMMAND /tmp/$SOURCE_FILE*
 
if [ "$?" != 0 ]; then
        retval $?
        log "Delete of '$SOURCE_FILE' .............................[FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 80
else
	log ""
        log "Delete of '$SOURCE_FILE' .............................[  OK  ]"
fi
 
$RM_COMMAND -rf /tmp/blacklists
 
if [ "$?" != 0 ]; then
        retval $?
        log "Delete of '/tmp/blacklists' ...............................[FAILED]"
        $RM_COMMAND -f $FILE_LOCK
        sendmail ERROR
	movelog
        exit 81
else
        log "Delete of '/tmp/blacklists' ...............................[  OK  ]"
fi
 
# Finish download.
log ""
log "+-----------------------------------------------------------------+"
log "| Finish......................................................... |"
log "+-----------------------------------------------------------------+"
log ""
 
# Status e-mail.
if [ $MAIL_STATUS = 'Y' ]; then
        sendmail STATUS
fi
# Move temporary log to permanent log
movelog
 
exit 0

Das oben gezeigte Skript führt nachfolgende Aktionen aus:

  1. Herunterladen der shallalist.tar.gz-Datei mit dem Befehl wget
  2. Entpacken der heruntergeladenen shallalist.tar.gz in das Verzeichnis /tmp/blacklist
  3. Setzen der richtigen Besitzrechte
  4. Setzen der richtigen Dateirechte
  5. Stoppen von E2guardian
  6. Löschen der alten blacklist unter /etc/e2guardian/lists/blacklists/*
  7. Verschieben der neuen blacklist von /tmp/blacklists/* nach /etc/e2guardian/lists/blacklists/*
  8. Starten von E2guardian
  9. Löschen des Verzeichnisses /tmp/blacklists
  10. Löschen der heruntergeladenen shallalist.tar.gz-Datei
  11. Benachrichtigung im Skript-Fehlerfall via e-Mail
  12. Benachrichtigung via e-Mail über eine erfolgreiche Ausführung, auf Wunsch ein-/ausschaltbar
  13. Erstellen einer LOG-Datei über die Skript-Ausführung in /var/log/<SKRIPT-NAME>

Optimierung-Konfiguration

Folgende Standard-Einstellungen in der Konfigurationsdatei /etc/e2guardian/e2guardian.conf führen zu einem durchaus ordentlichen RAM-Speicherverbrauch (nur relevanter Ausschnitt):

(Nur relevanter Ausschnitt)

...
# Fork pool options
 
# If on, this causes DG to write to the log file whenever child processes are
# created or destroyed (other than by crashes). This information can help in
# understanding and tuning the following parameters, but is not generally
# useful in production.
logchildprocesshandling = off
 
# sets the maximum number of processes to spawn to handle the incoming
# connections.  Max value usually 250 depending on OS.
# On large sites you might want to try 380.
# Tachtler
# default: maxchildren = 180
maxchildren = 80
 
 
# sets the minimum number of processes to spawn to handle the incoming connections.
# On large sites you might want to try 64.
# Tachtler
# default: minchildren = 20
minchildren = 4
 
 
# sets the minimum number of processes to be kept ready to handle connections.
# On large sites you might want to try 16.
# Tachtler
# default: minsparechildren = 16
minsparechildren = 2
 
 
# sets the minimum number of processes to spawn when it runs out
# On large sites you might want to try 20.
# Tachtler
# default: preforkchildren = 10
preforkchildren = 4
 
 
# sets the maximum number of processes to have doing nothing.
# When this many are spare it will cull some of them.
# On large sites you might want to try 64.
# Tachtler
# default: maxsparechildren = 32
maxsparechildren = 8
...

:!: Dies führte bei meinem System nach ein paar Tagen Laufzeit bis zu einer Belegung von

mit Leerlaufprozessen!

:!: Mit den durch # Tachtler gekennzeichneten Einstellungen, kann bei home-Systemen, wie ich eines betreibe, der Speicherverbrauch auf

mit Leerlaufprozessen gesenkt werden!

HTTPS - SSL MITM-Konfiguration

Der Einsatz eines E2guardian Content-Filter-Servers als „man-in-the-middle“ Entschlüsselungs- und Verschlüsselungs-Content-filter einer direkten oder transparent umgeleiteten HTTPS-Verbindung, kann durch den Einsatz einer eigenen CA umgesetzt werden.

Durch den Einsatz des E2guardian Content-Filter-Servers im Modus „man-in-the-middle“ als Entschlüsselungs- und Verschlüsselungs-Content-Filter, kann der Datenverkehr analysiert nach Viren und Schadsoftware untersucht und geblockt werden.

:!: WICHTIG - Das HTTPS Protokoll wurde dafür implementiert, dem Endbenutzer die Möglichkeit zu geben, sicher und unter der Wahrung seiner Privatsphäre Datenaustausch zu betreiben. Das aufbrechen eines HTTPS gesicherten Datenstroms (Tunnels) OHNE DIE ZUSTIMMUNG DES JEWEILIGEN ENDBENUTZERS, stellt eine ethische Verletzung der Persönlichkeitsrechte dar und ist auch in den meisten Ländern illegal und hat juristische Konsequenzen zur Folge !!!

:!: HINWEIS - Standardmäßig warnen viele Browser den Endbenutzer, über eine mögliche „man-in-the-middle“ Attacke!

Beschreibung Externer Link
Homepage http://e2guardian.org

Nachfolgende Skizze beschreibt vereinfacht die Funktionsweise des E2guardian Content-Filter-Servers mit SSL MITM-Konfiguration:

+--------------------------+       +--------------------------------------------------+       +---------+
|                          |       |                   e2guardian                     |       | Browser |
|                          |       |                                                  |       |         |
|                          |       | 1. e2guardian bekommt Anfrage vom Browser        | <-1-- | Anfrage | 
| https://www.tachtler.net | <-2-- | 2. e2guardian holt Zertifikat vom Ziel-Server    |       |         |
| https://www.tachtler.net | --3-> | 3. e2guardian bekommt das Ziel-Server Zertifikat |       |         |
|                          |       |                                                  |       |         |
|                          |       | !. e2guardian erstellt ein EIGENES ZERTIFIKAT    |       |         |
|                          |       |    mit den Daten aus dem geholten Zertifikat vom |       |         |
|                          |       |    Ziel-Server unter Zuhilfenahme seiner eigenen |       |         |
|                          |       |    Root-CA                                       |       |         |
|                          |       |                                                  |       |         |
|                          |       | 4. e2guardian gibt Anfrage an den Browser zurück | --4-> | Antwort |
|                          |       |                                                  |       |         |
+--------------------------+       +--------------------------------------------------+       +---------+

Root-CA erstellen

Damit der E2guardian Content-Filter-Server als „man-in-the-middle“ Entschlüsselungs- und Verschlüsselungs-Content-Filter einer direkten oder transparent umgeleiteten HTTPS-Verbindung agieren kann, muss eine eigenen CA erstellt werden, falls nicht schon eine eigene CA vorhanden ist.

Nachfolgende Befehle erstellen eine eigene CA zur Verwendung mit dem E2guardian Content-Filter-Server.

Nachfolgender Befehl erstellt zuerst zwei neue Verzeichnisse unterhalb des Verzeichnisses

  • /etc/pki

mit den Namen

  • /etc/pki/e2guardian/certs
  • /etc/pki/e2guardian/private
# mkdir -p /etc/pki/e2guardian/{certs,private}

Anschließend werden mit nachfolgenden Befehlen die Besitzrechte

# chown -R e2guardian:e2guardian /etc/pki/e2guardian/{certs,private}

und die Dateirechte

# chmod -R 700 /etc/pki/e2guardian/{certs,private}

entsprechend gesetzt.

Anschließend kann nun mit nachfolgendem Befehl

  • ein Schlüssel (Key)
  • ein Root-Zertifikat (Root-CA)

in den entsprechenden Verzeichnissen, mit bestimmten Ausprägungen erstellt werden:

# openssl req -new -newkey rsa:2048 -sha256 -days 3652 -nodes -x509 -keyout /etc/pki/e2guardian/private/e2guardianCA.key -out /etc/pki/e2guardian/certs/e2guardianCA.crt
Generating a 2048 bit RSA private key
..................+++
.................+++
writing new private key to '/etc/pki/e2guardian/private/e2guardianCA.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:DE
State or Province Name (full name) []:Bavaria (Bayern)
Locality Name (eg, city) [Default City]:Munich (Muenchen)
Organization Name (eg, company) [Default Company Ltd]:Klaus Tachtler
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:www.tachtler.net
Email Address []:hostmaster@tachtler.net

Erklärungen:

Es wird eine Schlüssel vom Typ rsa in der Länge von 2048 Byte verwendet, was aktuell den meisten Zertifikaten entspricht:

rsa:2048

Es kommt der Verschlüsselungsalgorithmus sha256 zum Einsatz, was ebenfalls aktuell den meisten Zertifikaten entspricht:

-sha256

Es wurde eine Laufzeit von ca. 10 Jahren gewählt, meist die Unterstützung für Betriebssysteme im „Long term support“ im „Enterprise“ Segment, wie z.B. bei CentOS.

-days 3652

Nachfolgend sind die Zertifikatsinformationen, wie

  • Land: DE
  • Bundesland: Bavaria (Bayern)
  • Name der Organisation: Klaus Tachtler
  • Weitere Organisationsbezeichnung (Abteilung usw.): . - (Punkt bedeutet keine Angabe!)
  • Name des Zertifikats, Hostname: www.tachtler.net
  • E-Mail-Adresse des Ansprachpartners: hostmaster@tachtler.net

genannt:

Country Name (2 letter code) [XX]:DE
State or Province Name (full name) []:Bavaria (Bayern)
Locality Name (eg, city) [Default City]:Munich (Muenchen)
Organization Name (eg, company) [Default Company Ltd]:Klaus Tachtler
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:www.tachtler.net
Email Address []:hostmaster@tachtler.net

Anschließend werden mit nachfolgenden Befehlen die Besitzrechte

# chown -R e2guardian:e2guardian /etc/pki/e2guardian/{certs,private}/e2guardianCA.*

und die Dateirechte

# chmod -R 400 /etc/pki/e2guardian/{certs,private}/e2guardianCA.*

für die Dateien entsprechend gesetzt.

Abschließend kann mit nachfolgendem Befehl überprüft werden, ob die Dateien richtig erstellt wurden, was eine Ausgabe, wie die nachfolgend gezeigte, zum Vorschein bringen sollte:

# ls -l /etc/pki/e2guardian/*
/etc/pki/e2guardian/certs:
total 4
-r-------- 1 e2guardian e2guardian 1476 Mar  5 09:30 e2guardianCA.crt

/etc/pki/squid/private:
total 4
-r-------- 1 e2guardian e2guardian 1704 Mar  5 09:30 e2guardianCA.key

Eine Überprüfung, ob das Zertifikat korrekt erstellt wurde, kann mit nachfolgendem Befehl durchgeführt werden:

# openssl x509 -noout -text -in /etc/pki/e2guardian/certs/e2guardianCA.crt
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 18351035949067543440 (0xfeabf9f7bc982390)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=DE, ST=Bavaria (Bayern), L=Munich (Muenchen), O=Klaus Tachtler, CN=www.tachtler.net/emailAddress=hostmaster@tachtler.net
        Validity
            Not Before: Mar  5 08:30:27 2015 GMT
            Not After : Mar  4 08:30:27 2025 GMT
        Subject: C=DE, ST=Bavaria (Bayern), L=Munich (Muenchen), O=Klaus Tachtler, CN=www.tachtler.net/emailAddress=hostmaster@tachtler.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:d2:73:76:c0:a6:c1:3a:d0:e6:9e:9a:62:6d:56:
                    a6:b0:99:22:dd:30:47:c6:dc:e7:2d:d6:8e:e2:15:
                    a6:09:10:35:73:97:88:29:e6:95:03:2a:8c:78:48:
                    22:4b:fc:ac:c6:8f:2c:20:cc:06:0b:f8:72:9d:e2:
                    b5:ff:37:52:27:63:f1:7f:04:c2:22:74:1f:16:fc:
                    f9:6d:95:67:cd:7b:c3:4e:5f:25:d4:6f:3c:d9:3e:
                    11:9a:c6:15:96:ed:7d:3c:76:aa:2f:93:f6:bc:fa:
                    4c:74:5d:25:98:99:61:ad:2a:8b:bd:b3:92:97:68:
                    eb:fa:e4:58:e9:33:36:93:3c:ed:ad:28:24:55:26:
                    68:b8:6c:e8:b8:c6:63:57:af:9a:c9:1c:96:99:7f:
                    2f:ec:ed:b3:e3:8a:01:5a:d5:b4:48:36:ec:55:12:
                    79:97:d5:93:28:df:3b:86:a1:0f:16:0d:c9:d0:4d:
                    58:8a:ea:a9:15:76:20:49:5a:07:41:01:4b:cb:0e:
                    a0:74:01:68:38:e5:07:a9:9e:a7:fe:ae:de:01:35:
                    36:43:2d:6d:4b:56:d4:be:4e:47:3e:a6:13:c7:f3:
                    f1:77:0b:37:1a:78:32:63:b9:14:b9:2a:69:80:ad:
                    59:28:ad:56:2c:4f:1d:5a:7c:fa:af:b0:dc:a1:25:
                    8b:5a
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                14:08:11:A4:ED:02:27:70:64:0C:18:4D:20:BE:04:DC:D7:A3:8E:58
            X509v3 Authority Key Identifier:
                keyid:14:08:11:A4:ED:02:27:70:64:0C:18:4D:20:BE:04:DC:D7:A3:8E:58

            X509v3 Basic Constraints:
                CA:TRUE
    Signature Algorithm: sha256WithRSAEncryption
         4a:9b:21:79:97:74:7a:e2:a0:84:32:af:aa:6d:c8:eb:81:7d:
         ea:1d:94:c8:c8:39:f3:3e:13:aa:f6:a3:05:9e:17:10:85:24:
         f8:cd:e7:3f:d3:bb:e2:51:b7:ad:21:75:50:48:fb:ca:8b:da:
         a0:78:59:df:57:82:86:54:ba:d2:ba:f1:b4:ab:ce:75:db:62:
         21:25:fb:74:74:cd:ae:50:ec:27:f6:5f:b6:65:9a:ce:ed:cc:
         ee:da:ca:0b:02:a1:bc:49:e9:96:68:37:6a:8e:6b:c9:b5:ec:
         a9:99:1e:bc:99:65:c4:c5:95:78:a6:54:bf:88:d1:f4:65:9e:
         02:c0:54:50:50:77:d5:3d:f0:6b:87:e1:de:68:37:fa:bb:46:
         fa:f2:a3:e4:23:d7:5b:f3:26:20:9e:2b:d1:a1:7f:38:05:e3:
         05:66:ed:3a:21:60:e0:8d:5b:ca:4d:f1:3e:61:dd:96:c4:dd:
         c4:8e:71:c8:58:cd:f7:d1:4c:71:20:78:8d:06:83:c7:4a:ff:
         24:4c:22:b4:0a:aa:3b:32:a3:6f:bb:8e:15:8b:56:10:70:04:
         1d:cf:b5:01:b2:94:d4:76:c8:ca:05:18:10:72:a3:5b:4c:84:
         be:b9:c6:e0:4b:e1:8a:83:ca:1d:8c:16:a7:94:34:4d:95:be:
         45:e2:59:7b

/etc/e2guardian/e2guardian.conf

Nachfolgende Ergänzungen sind in der Konfigurationsdatei

  • /etc/e2guardian/e2guardian.conf

notwendig, um die SSL MITM-Konifgurations Definitionen im E2guardian Content-Filter-Server einsetzen zu können:

(Nur relevanter Ausschnitt)

...
#SSL certificate checking path
#Path to CA certificates used to validate the certificates of https sites.
# if left blank openssl default ca certificate bundle will be used
#Leave as default unless you want to load non-default cert bundle
#sslcertificatepath = ''
 
#SSL man in the middle
#CA certificate path
#Path to the CA certificate to use as a signing certificate for 
#generated certificates.
# default is blank - required if ssl_mitm is enabled.
# Tachtler
# default: #cacertificatepath = '/home/stephen/dginstall/ca.pem'
cacertificatepath = '/etc/pki/e2guardian/certs/e2guardianCA.crt'
 
#CA private key path
#path to the private key that matches the public key in the CA certificate.
# default is blank - required if ssl_mitm is enabled.
# Tachtler
# default: #caprivatekeypath = '/home/stephen/dginstall/ca.key'
caprivatekeypath = '/etc/pki/e2guardian/private/e2guardianCA.key'
 
#Cert private key path
#The public / private key pair used by all generated certificates
# default is blank - required if ssl_mitm is enabled.
# Tachtler
# default: #certprivatekeypath = '/home/stephen/dginstall/cert.key'
certprivatekeypath = '/etc/pki/e2guardian/private/e2guardianCA.key'
 
#Generated cert path
#The location where generated certificates will be saved for future use.
#(must be writable by the dg user)
# default is blank - required if ssl_mitm is enabled.
# default: #generatedcertpath = '/home/stephen/dginstall/generatedcerts/'
generatedcertpath = '/var/lib/ssl_e2guardian'
 
#Warning: if you change the cert start/end time from default on a running 
#         system you will need to clear the generated certificate 
#         store and also may get problems on running client browsers
 
#Generated cert start time (in unix time) - optional
# defaults to 1417872951 = 6th Dec 2014
# generatedcertstart = 1417872951 
 
#Generated cert end time (in unix time) - optional
# defaults to generatedcertstart + 10 years
#genratedcertend =
# generatedcertstart =

Erklärungen:

Nachfolgende Erklärungen beschreiben die einzelnen Konfigurationsdirektiven zur SSL MITM-Konfiguration.

  • cacertificatepath = '/etc/pki/e2guardian/certs/e2guardianCA.crt'

Pfad zum ROOT-Zertifikat der eigenen CA

  • caprivatekeypath = '/etc/pki/e2guardian/private/e2guardianCA.key'

Pfad zum ROOT-Zertifikat-Schlüssel der eigenen CA

  • certprivatekeypath = '/etc/pki/e2guardian/private/e2guardianCA.key'

Pfad zum ROOT-Zertifikat-Schlüssel der eigenen CA. Hier könnte auch ein zusätzlicher eigener Schlüssel zur Erstellung der „on-the-fly“-Zertifikate verwendet werden.

  • generatedcertpath = '/var/lib/ssl_e2guardian'

Pfad zum Verzeichnis in dem zukünftig die „on-the-fly“-Generierten Zertifikate abgelegt werden.

/etc/e2guardian/e2guardianfX.conf

Nachfolgende Ergänzungen sind in der Konfigurationsdatei

  • /etc/e2guardian/e2guardianfX.conf - hier z.B. /etc/e2guardian/e2guardianf2.conf

notwendig, um die SSL MITM-Konifgurations Definitionen im E2guardian Content-Filter-Server einsetzen zu können:

(Nur relevanter Ausschnitt)

...
#SSL man in the middle
# Forge ssl certificates for all non-exception sites, decrypt the data then re encrypt it
# using a different private key. Used to filter ssl sites
# Tachtler
# default: sslmitm = off
sslmitm = on
 
#Limit SSL MITM to sites in greysslsitelist(s)
# ignored if  sslmitm is off
# SSL sites not matching greysslsitelist will be treat as if sslmitm is off.
onlymitmsslgrey = off
 
# Enable MITM site certificate checking
# ignored if  sslmitm is off
# default (recommended) is 'on'
# Tachtler
# default: mitmcheckcert = on
mitmcheckcert = off
...

Erklärungen:

Nachfolgende Erklärungen beschreiben die einzelnen Konfigurationsdirektiven zur SSL MITM-Konfiguration.

  • sslmitm = on

Aktivieren der SSL MITM-Konfiguration für diese Benutzergruppe

  • mitmcheckcert = off

Deaktivierung der Überprüfung von Zertifikaten, da sonst ggf. Probleme beim Aufruf von HTTPS-Seiten auftreten können.

Verzeichnis /var/lib/ssl_e2guardian einrichten

Nachdem die Konfiguration des E2guardian Content-Filter-Servers zur Nutzung mit SSL MITM erfolgreich abgeschlossen ist, ist es noch erforderlich nachfolgendes Verzeichnis, welche die „on-the-fly“ unter Zuhilfenahme der eigenen CA erstellten Zertifikate, aufnehmen soll einzurichten.

  • /var/lib/ssl_e2guardian

Nachfolgender Befehl erstellt das Verzeichnis

  • /var/lib/ssl_e2guardian
# mkdir /var/lib/ssl_e2guardian

Anschließend werden mit nachfolgendem Befehl die Besitzrechte

# chown -R e2guardian:e2guardian /var/lib/ssl_e2guardian

für das Verzeichnis und das darin enthaltene Unterverzeichnis und die Dateien entsprechend gesetzt.

Abschließend kann mit nachfolgendem Befehl überprüft werden, ob das Verzeichnis richtig erstellt wurden, was eine Ausgabe, wie die nachfolgend gezeigte, zum Vorschein bringen sollte:

# ls -l /var/lib/ssl_e2guardian
total 0

Neustart/Start e2guardian

Um den E2guardian neu zu starten oder kann nachfolgender Befehl angewandt werden:

# systemctl restart e2guardian.service

Eine Überprüfung ob der Start des E2guardian erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:

# systemctl status e2guardian.service
e2guardian.service - E2guardian Web filtering
   Loaded: loaded (/usr/lib/systemd/system/e2guardian.service; enabled)
   Active: active (running) since Wed 2015-06-10 16:00:53 CEST; 8s ago
  Process: 3815 ExecStart=/usr/sbin/e2guardian (code=exited, status=0/SUCCESS)
 Main PID: 3817 (e2guardian)
   CGroup: /system.slice/e2guardian.service
           ├─3817 /usr/sbin/e2guardian
           ├─3818 /usr/sbin/e2guardian
           ├─3819 /usr/sbin/e2guardian
           ├─3820 /usr/sbin/e2guardian
           ├─3821 /usr/sbin/e2guardian
           ├─3822 /usr/sbin/e2guardian
           └─3823 /usr/sbin/e2guardian

Jun 30 10:03:15 server50.tachtler.net systemd[1]: Started E2guardian Web filtering.
Jun 30 10:03:17 server50.tachtler.net e2guardian[2030]: Started sucessfully.

bzw. mit nachfolgendem Befehl, ob auf den entsprechende Netzwerkinterface gelauscht wird:

# netstat -tulpen | grep e2guardian
tcp        0      0 192.168.0.50:8080       0.0.0.0:*          LISTEN     399       53084     3817/e2guardian

Browser-Konfiguration

Nachfolgend soll die Konfiguration eines Browsers, in diesem Fall der Browser Mozilla Firefox Desktop Variante, durchgeführt werden.

Proxy-Konfiguration

Nachdem nachfolgende Konfiguration im Browser, hier am Beispiel eines Mozilla Firefox-Browsers, wie in nachfolgender Bildschirmkopie dargestellt, durchgeführt wurde, sollte mit dem Surfen, auch auf HTTPS gesicherte Seiten, über den E2guardian Content-Filter-Server nichts mehr im Wege stehen:

Mozilla Firefox Browser Einstellungen - Netzwerk - Manuelle Proxy-Einstellugnen - SSL Proxy

Nachfolgende Einstellungen sind im Mozilla Firefox-Browsers unter

  • Open Menu (Menü) | Preferences (Einstellungen) | Advanced (Erweitert) | Network (Netzwerk) | Settings… (Einstellungen…) | Manual proxy configuration (Manuelle Proxy-Konfiguration)

durchzuführen:

Einstellungen Standardwert Wert
HTTP Proxy [leer] 192.168.0.50 (IP des E2guardian Content-Filter-Servers)
Port [leer] 8080
SSL Proxy [leer] 192.168.0.50 (IP des E2guardian Content-Filter-Servers)
Port [leer] 8080

Browser HTTPS Aufruf

Anschließend sollte nun beim Aufruf einer Website wie z.B. https://www.google.de nachfolgendes Browser-Dialog-Fenster erscheinen und zur Eingabe eines Benutzernamens eines Passwortes auffordern, wie auf nachfolgender Bildschirm dargestellt:

Mozilla Firefox Browser - Authentifizierungs-Dialog-Fenster - HTTPS

Anschließend sollte, korrekterweise nachfolgende Reaktion des Mozilla Firefox-Browsers auf die „man-in-the-moddle“ Attacke, durch den E2guardian Content-Filter-Server erfolgen, wie in nachfolgender Bildschirmkopie dargestellt:

Mozilla Firefox Browser - This Connection is Untrusted

:!: HINWEIS - Diese Verhalten des Mozilla Firefox-Browsers auf die „man-in-the-moddle“ Attacke ist vollkommen korrekt !!!

Erklärung:

Was ist hier passiert? - Korrekterweise erkennt der Mozilla Firefox-Browsers, dass es sich hierbei um kein Zertifikat für https://www.google.de, welches von einer vertrauenswürdigen Root-CA ausgestellt wurde, handelt.

Nachfolgende Bildschirmkopien zeigen den Unterschied.

Als erstes kann im aktuellen Mozilla Firefox-Browser Fenster nun auf den Bereich

  • I Understand the Risks (Ich kenne das Risiko)

mit der linken Maustaste geklickt werden, wonach nachfolgende Erweiterung der aktuell dargestellten Fehlerseite erscheinen sollte:

Mozilla Firefox Browser - This Connection is Untrusted - I Understand the Risks

Anschließend kann nun mit der linken Maustaste auf die Schaltfläche [Add Exception…] ([Ausnahme hinzufügen…]) geklickt werden, woraufhin sich nachfolgendes zusätzliches Dialog-Fenster öffnet:

Mozilla Firefox Browser - This Connection is Untrusted - I Understand the Risks - Add Exception...

:!: WICHTIG - Hier sollte zuerst der Haken bei

  • Permanentliy store this exception (Diese Ausnahme dauerhaft speichern)

entfernt werden, um später keine verfälschten Ergebnisse zu erhalten!

Anschließend sollte mit der linken Maustaste auf die Schaltfläche [Get Certificate] ([Zertifikat herunterladen]) geklickt werden, um sich Details zum verwendeten Zertifikat anzeigen zu lassen, welches nachfolgendes weiteres Dialogfenster öffnen sollte:

Zertifikat aus „man-in-the-middle“ vom E2guardian Content-Filter-Server Zertifikat von der Original Web-Seite
Zertifikat eigene CA Zertifikat https://www.google.de

Der relevante Unterschied sind hier die Angaben bei: Issued by (Ausgestellt von)

Zertifikat aus „man-in-the-middle“ vom E2guardian Content-Filter-Server Zertifikat von der Original Web-Seite
Common Name (CN) www.tachtler.net Common Name (CN) Google Internet Authority G2
Organization (O) Klaus Tachtler Organization (O) Google Inc
Organizational Unit (OU) <Not Part Of Certificate> Organizational Unit (OU) <Not Part Of Certificate>

:!: HINWEIS - Hier zeigt sich, dass das Zertifikat vom E2guardian Content-Filter-Server beim Web-Seiten Aufruf „on-the-fly“ erstellt wurde!

Browser Root-Zertifikat importieren

Um das, wie unter nachfolgendem internen Link beschrieben Verhalten zu verhindern,

ist es erforderlich das Root-Zertifikat aus der eigenen CA welche, wie unter nachfolgendem internen Link dargestellt

erstellt wurde, in den jeweiligen Browser des Endbenutzers zu importieren!

Ausgehend davon, das die Root-Zertifikat aus der eigenen CA bereits heruntergeladen wurden und hier als Beispiel im Verzeichnis - /tmp/e2guardianCA.crt gespeichert wurden.

Nachfolgende Einstellungen sind im Mozilla Firefox-Browsers unter

  • Open Menu (Menü) | Preferences (Einstellungen) | Advanced (Erweitert) | Certificates (Zertifikate)

durchzuführen:

Browser - Firefox - Zertifikat importieren - Schritt 1

Anschließend sollte dann auf die Schaltfläche [View Certificates] ([Zertifikate anzeigen]) geklickt werden, damit sich nachfolgender Dialog öffnet und der [Reiter: Authorities (Zertifizierungsstellen)] ausgewählt sein sollte:

Browser - Firefox - Zertifikat importieren - Schritt 2

Durch anklicken der Schaltfläche [Import…] ([Importieren…]), kann dann im sich öffnenden Dialog-Fenster eine Zertifikatsdatei, hier

  • /tmp/e2guardianCA.crt

ausgewählt werden:

Browser - Firefox - Zertifikat importieren - Schritt 3

Durch drücken der Schaltfläche [Open] ([Speichern]) wird dann nachfolgendes Dialog-Fenster angezeigt, in dem der Rahmen festgelegt werden kann, in welchem Umfang dem Zertifikat vertraut wird. Nachfolgend wurden alle Haken entsprechend wie nachfolgend beschrieben gesetzt:

Browser - Firefox - Zertifikat importieren - Schritt 4

Haken Bezeichnung
Trust this CA to identify websites.
Trust this CA to identify email users.
Trust this CA to identify software developers.

Zum Abschluss und zum tatsächlichen Import muss dann die Schaltfläche [OK] angeklickt werden.

Anschließend kann dann in der Liste der importierten Zertifikate überprüft werden ob der jeweilig Importvorgang erfolgreich war und es sollte eine Anzeige wie die nachfolgende zur Anzeige kommen:

Browser - Firefox - Zertifikat importieren - Schritt 5

Anschließend sollte nun beim Aufruf einer Website wie z.B. https://www.google.de nachfolgendes Browser-Dialog-Fenster erscheinen und zur Eingabe eines Benutzernamens eines Passwortes auffordern, wie auf nachfolgender Bildschirm dargestellt:

Mozilla Firefox Browser - Authentifizierungs-Dialog-Fenster - HTTPS

Anschließend sollte nun im Mozilla Firefox-Browsers auf die „man-in-the-middle“ Attacke, durch den E2guardian Content-Filter-Server kein Zertifikats-Hinweis mehr erfolgen!

Log Analyzer for e2Guardian/DansGuardian

Als zusätzliches Add-on zum E2guardian kann unter folgender Adresse der „Log Analyzer for e2Guardian/DansGuardian“ kostenlos heruntergeladen werden. Auf dieser Seite sind auch Bildschirmkopien zu finden.

Download "Log Analyzer for e2Guardian/DansGuardian

Es handelt sich hier um ein Perl-Script welches wie ein CGI-Script durch einen Webserver wie z.B. Apache HTTP Webserver ausgeführt werden kann.

Zu beachten ist, das das Script in einem CGI-Verzeichnis oder einem Verzeichnis auf dem Apache HTTP Webserver zu erreichen sein muss. Evtl. kann auch ein eigener Virtueller Host im Apache HTTP Webserver dafür definiert werden.

Installation Log Analyzer for e2Guardian/DansGuardian

Zur Installation eines Download "Log Analyzer for e2Guardian/DansGuardian“ werden nachfolgende Pakete benötigt:

  • perl - ist im base-Repository von CentOS enthalten
  • perl-CGI - ist im base-Repository von CentOS enthalten
  • perl-Compress-Zlib - ist im base-Repository von CentOS enthalten

installiert werden.

Mit nachfolgendem Befehl, werden die Pakete perl-CGI und perl-IO-Compress installiert:

# yum install perl-CGI perl-IO-Compress
Loaded plugins: changelog, priorities
132 packages excluded due to repository priority protections
Package perl-IO-Compress-2.061-2.el7.noarch already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package perl-CGI.noarch 0:3.63-4.el7 will be installed
--> Processing Dependency: perl(FCGI) >= 0.67 for package: perl-CGI-3.63-4.el7.noarch
--> Running transaction check
---> Package perl-FCGI.x86_64 1:0.74-8.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package            Arch            Version                 Repository     Size
================================================================================
Installing:
 perl-CGI           noarch          3.63-4.el7              base          250 k
Installing for dependencies:
 perl-FCGI          x86_64          1:0.74-8.el7            base           42 k

Transaction Summary
================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 292 k
Installed size: 783 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): perl-CGI-3.63-4.el7.noarch.rpm                      | 250 kB   00:00     
(2/2): perl-FCGI-0.74-8.el7.x86_64.rpm                     |  42 kB   00:00     
--------------------------------------------------------------------------------
Total                                              790 kB/s | 292 kB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:perl-FCGI-0.74-8.el7.x86_64                                1/2 
  Installing : perl-CGI-3.63-4.el7.noarch                                   2/2 
  Verifying  : perl-CGI-3.63-4.el7.noarch                                   1/2 
  Verifying  : 1:perl-FCGI-0.74-8.el7.x86_64                                2/2 

Installed:
  perl-CGI.noarch 0:3.63-4.el7                                                  

Dependency Installed:
  perl-FCGI.x86_64 1:0.74-8.el7                                                 

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket perl-CGI installiert wurden.

# rpm -qil perl-CGI
Name        : perl-CGI
Version     : 3.63
Release     : 4.el7
Architecture: noarch
Install Date: Thu 02 Jul 2015 10:19:15 AM CEST
Group       : Development/Libraries
Size        : 716590
License     : (GPL+ or Artistic) and Artistic 2.0
Signature   : RSA/SHA256, Fri 04 Jul 2014 06:15:15 AM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : perl-CGI-3.63-4.el7.src.rpm
Build Date  : Mon 09 Jun 2014 09:31:20 PM CEST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://search.cpan.org/dist/CGI
Summary     : Handle Common Gateway Interface requests and responses
Description :
CGI.pm is a stable, complete and mature solution for processing and preparing
HTTP requests and responses. Major features including processing form
submissions, file uploads, reading and writing cookies, query string
generation and manipulation, and processing and preparing HTTP headers. Some
HTML generation utilities are included as well.

CGI.pm performs very well in in a vanilla CGI.pm environment and also comes
with built-in support for mod_perl and mod_perl2 as well as FastCGI.
/usr/share/doc/perl-CGI-3.63
/usr/share/doc/perl-CGI-3.63/Changes
/usr/share/doc/perl-CGI-3.63/README
/usr/share/doc/perl-CGI-3.63/cgi_docs.html
/usr/share/man/man3/CGI.3pm.gz
/usr/share/man/man3/CGI::Apache.3pm.gz
/usr/share/man/man3/CGI::Carp.3pm.gz
/usr/share/man/man3/CGI::Cookie.3pm.gz
/usr/share/man/man3/CGI::Fast.3pm.gz
/usr/share/man/man3/CGI::Pretty.3pm.gz
/usr/share/man/man3/CGI::Push.3pm.gz
/usr/share/man/man3/CGI::Switch.3pm.gz
/usr/share/man/man3/CGI::Util.3pm.gz
/usr/share/perl5/vendor_perl/CGI
/usr/share/perl5/vendor_perl/CGI.pm
/usr/share/perl5/vendor_perl/CGI/Apache.pm
/usr/share/perl5/vendor_perl/CGI/Carp.pm
/usr/share/perl5/vendor_perl/CGI/Cookie.pm
/usr/share/perl5/vendor_perl/CGI/Fast.pm
/usr/share/perl5/vendor_perl/CGI/Pretty.pm
/usr/share/perl5/vendor_perl/CGI/Push.pm
/usr/share/perl5/vendor_perl/CGI/Switch.pm
/usr/share/perl5/vendor_perl/CGI/Util.pm

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket perl-IO-Compress installiert wurden.

# rpm -qil perl-IO-Compress
Name        : perl-IO-Compress
Version     : 2.061
Release     : 2.el7
Architecture: noarch
Install Date: Wed 04 Feb 2015 03:32:08 PM CET
Group       : Development/Libraries
Size        : 814173
License     : GPL+ or Artistic
Signature   : RSA/SHA256, Fri 04 Jul 2014 06:19:23 AM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : perl-IO-Compress-2.061-2.el7.src.rpm
Build Date  : Tue 10 Jun 2014 03:54:10 AM CEST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://search.cpan.org/dist/IO-Compress/
Summary     : Read and write compressed data
Description :
This distribution provides a Perl interface to allow reading and writing of
compressed data created with the zlib and bzip2 libraries.

IO-Compress supports reading and writing of bzip2, RFC 1950, RFC 1951,
RFC 1952 (i.e. gzip) and zip files/buffers.

The following modules used to be distributed separately, but are now
included with the IO-Compress distribution:
* Compress-Zlib
* IO-Compress-Zlib
* IO-Compress-Bzip2
* IO-Compress-Base
/usr/bin/zipdetails
/usr/share/doc/perl-IO-Compress-2.061
/usr/share/doc/perl-IO-Compress-2.061/Changes
/usr/share/doc/perl-IO-Compress-2.061/README
/usr/share/doc/perl-IO-Compress-2.061/compress-zlib
/usr/share/doc/perl-IO-Compress-2.061/compress-zlib/filtdef
/usr/share/doc/perl-IO-Compress-2.061/compress-zlib/filtinf
/usr/share/doc/perl-IO-Compress-2.061/compress-zlib/gzcat
/usr/share/doc/perl-IO-Compress-2.061/compress-zlib/gzgrep
/usr/share/doc/perl-IO-Compress-2.061/compress-zlib/gzstream
/usr/share/doc/perl-IO-Compress-2.061/io
/usr/share/doc/perl-IO-Compress-2.061/io/anycat
/usr/share/doc/perl-IO-Compress-2.061/io/bzip2
/usr/share/doc/perl-IO-Compress-2.061/io/bzip2/bzcat
/usr/share/doc/perl-IO-Compress-2.061/io/bzip2/bzgrep
/usr/share/doc/perl-IO-Compress-2.061/io/bzip2/bzstream
/usr/share/doc/perl-IO-Compress-2.061/io/gzip
/usr/share/doc/perl-IO-Compress-2.061/io/gzip/gzappend
/usr/share/doc/perl-IO-Compress-2.061/io/gzip/gzcat
/usr/share/doc/perl-IO-Compress-2.061/io/gzip/gzgrep
/usr/share/doc/perl-IO-Compress-2.061/io/gzip/gzstream
/usr/share/man/man1/zipdetails.1.gz
/usr/share/man/man3/Compress::Zlib.3pm.gz
/usr/share/man/man3/File::GlobMapper.3pm.gz
/usr/share/man/man3/IO::Compress::Base.3pm.gz
/usr/share/man/man3/IO::Compress::Bzip2.3pm.gz
/usr/share/man/man3/IO::Compress::Deflate.3pm.gz
/usr/share/man/man3/IO::Compress::FAQ.3pm.gz
/usr/share/man/man3/IO::Compress::Gzip.3pm.gz
/usr/share/man/man3/IO::Compress::RawDeflate.3pm.gz
/usr/share/man/man3/IO::Compress::Zip.3pm.gz
/usr/share/man/man3/IO::Uncompress::AnyInflate.3pm.gz
/usr/share/man/man3/IO::Uncompress::AnyUncompress.3pm.gz
/usr/share/man/man3/IO::Uncompress::Base.3pm.gz
/usr/share/man/man3/IO::Uncompress::Bunzip2.3pm.gz
/usr/share/man/man3/IO::Uncompress::Gunzip.3pm.gz
/usr/share/man/man3/IO::Uncompress::Inflate.3pm.gz
/usr/share/man/man3/IO::Uncompress::RawInflate.3pm.gz
/usr/share/man/man3/IO::Uncompress::Unzip.3pm.gz
/usr/share/perl5/Compress
/usr/share/perl5/Compress/Zlib.pm
/usr/share/perl5/File
/usr/share/perl5/File/GlobMapper.pm
/usr/share/perl5/IO
/usr/share/perl5/IO/Compress
/usr/share/perl5/IO/Compress/Adapter
/usr/share/perl5/IO/Compress/Adapter/Bzip2.pm
/usr/share/perl5/IO/Compress/Adapter/Deflate.pm
/usr/share/perl5/IO/Compress/Adapter/Identity.pm
/usr/share/perl5/IO/Compress/Base
/usr/share/perl5/IO/Compress/Base.pm
/usr/share/perl5/IO/Compress/Base/Common.pm
/usr/share/perl5/IO/Compress/Bzip2.pm
/usr/share/perl5/IO/Compress/Deflate.pm
/usr/share/perl5/IO/Compress/FAQ.pod
/usr/share/perl5/IO/Compress/Gzip
/usr/share/perl5/IO/Compress/Gzip.pm
/usr/share/perl5/IO/Compress/Gzip/Constants.pm
/usr/share/perl5/IO/Compress/RawDeflate.pm
/usr/share/perl5/IO/Compress/Zip
/usr/share/perl5/IO/Compress/Zip.pm
/usr/share/perl5/IO/Compress/Zip/Constants.pm
/usr/share/perl5/IO/Compress/Zlib
/usr/share/perl5/IO/Compress/Zlib/Constants.pm
/usr/share/perl5/IO/Compress/Zlib/Extra.pm
/usr/share/perl5/IO/Uncompress
/usr/share/perl5/IO/Uncompress/Adapter
/usr/share/perl5/IO/Uncompress/Adapter/Bunzip2.pm
/usr/share/perl5/IO/Uncompress/Adapter/Identity.pm
/usr/share/perl5/IO/Uncompress/Adapter/Inflate.pm
/usr/share/perl5/IO/Uncompress/AnyInflate.pm
/usr/share/perl5/IO/Uncompress/AnyUncompress.pm
/usr/share/perl5/IO/Uncompress/Base.pm
/usr/share/perl5/IO/Uncompress/Bunzip2.pm
/usr/share/perl5/IO/Uncompress/Gunzip.pm
/usr/share/perl5/IO/Uncompress/Inflate.pm
/usr/share/perl5/IO/Uncompress/RawInflate.pm
/usr/share/perl5/IO/Uncompress/Unzip.pm

Apache VHOST für Log Analyzer for e2Guardian/DansGuardian

Nachstehend soll ein möglicher virtueller Host welcher unter dem Apache HTTP Server realisiert werden kann für den Web-Anwendungsbereich des Log Analyzer for DansGuardian als Beispiel dargestellt werden.

Nachfolgende Konfigurationsdatei in nachfolgendem Verzeichnis und mit nachfolgendem Namen

  • /etc/httpd/conf.d/e2guardian.conf

könnte wie folgt realisiert werden:

#
# e2loganalyzer.tachtler.net (Log Analyzer for e2Guardian/DansGuardian)
#
<VirtualHost _default_:80>
        ServerAdmin webmaster@tachtler.net
        ServerName e2loganalyzer.tachtler.net
        ServerAlias www.e2loganalyzer.tachtler.net
        ServerPath /
 
        AddHandler cgi-script .pl
 
        DocumentRoot "/var/www/e2loganalyzer"
        <Directory "/var/www/e2loganalyzer">
                Options -Indexes +FollowSymLinks +ExecCGI
                # Tachtler (enable for unlimited access)
                Require all granted
        </Directory>
 
        DirectoryIndex e2log.pl
 
        ErrorLog logs/e2loganalyzer_error.log
        CustomLog logs/e2loganalyzer_access.log combined 
</VirtualHost>

:!: Wichtig sind hier folgende Definitionen:

AddHandler cgi-script .pl

* Ausführbarkeit von Perl-Scripte für den Apache HTTP Webserver und

Options -Indexes +FollowSymLinks +ExecCGI

* Ausführen von CGI-Scripten für diesen virtuellen Host des Apache HTTP Webserver

DirectoryIndex e2log.pl

* Startdatei für den Apache HTTP Webserver, damit das Perl-Script beim Aufruf des Virtuellen Hosts gleich ausgeführt wird.

Wie in der Definition des Virtuellen Hosts dargestellt hat das Perl-Script den Namen e2log.pl.

Um das Perl-Script e2log.pl auch ausführen zu können, kann mit folgendem Befehl die Ausführung der Datei ermöglicht werden:

# chmod 755 e2log.pl

Ein Aufruf kann dann über die URL http://www.e2loganalyzer.tachtler.net erfolgen!

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/e2guardian_centos_7.txt · Zuletzt geändert: 2019/05/27 12:21 von klaus