Unterabschnitte

Das Squid-Paket

Ab Version 2.0.0 - Stand 16.12.2018

Einleitung

Squid ist ein caching HTTP-Proxy, d.h. er fungiert als Zwischeninstanz, die alle HTTP-Anforderungen entgegennimmt und gegebenenfalls weiterleitet. Er speichert häufig angefragte Inhalte auf der Festplatte zwischen und kann so das Surfen ungemein beschleunigen. Auch sind noch viele weitere Einstellungen möglich, mit denen der Webzugriff beschränkt werden kann (zeitabhängig, domainabhängig und viele Kriterien mehr), die aber von eisfair im Moment noch nicht unterstützt werden.

Anforderungen an den PC:

Um Squid nutzen zu können muss der PC eine Mindestgröße haben

Funktionen

Das Squid-Paket stellt folgende Funktionalität zur Verfügung:

Voraussetzungen

Dieses Paket benötigt in der Grundfunktion eine Reihe von weiteren Paketen (lib-Pakete). Es ist auch davon abhängig, dass eine aktuelle Version des Basis-Systems installiert ist. Squid mit aktiviertem squidGuard läßt sich nur auf einem Rechner betreiben, auf dem auch ein HTTP-Server (apache Paket) läuft. Für einige Formen der Authentifizierung werden zusätzlich andere Pakete benötigt (smb samba Paket; ncsa apache Paket).

Installation

Die Installation mit dem Menü sollte ohne Anfragen und Probleme ablaufen. Der Squid ist danach lauffähig, wenn die Variable START_SQUID auf 'yes' geändert wird. Man sollte allerdings die Konfigurationsdatei weiter bearbeiten, denn die Voreinstellungen sind nicht unbedingt der speziellen Situation vor Ort angepasst.

Das Squid Paket wird über das Setup-Menü im Untermenü ”Package administration” installiert.

Die Menüs des squid Paketes

Das squid Hauptmenü

Das squid Hauptmenü ist über den Menüpunkt ”Service administration” des Hauptmenüs im zentralen Setup-Programm zu erreichen. Es ist wie folgt aufgebaut:

Die meisten Menüpunkte dürften ohne weitere Erläuterung verständlich sein, da sie keinerlei weitere Eingaben erwarten. Zu ”Edit Configuration” siehe Abschnitt ”Änderung der Konfiguration”.

Die squid Untermenüs

Der Aufbau der Untermenüs ist wie folgt:

Advanced configuration file handling.

Diese Menüpunkte sind im allgemeinen Teil der Dokumentation zu eisfair beschrieben.

squidGuard administration

Änderung der Konfiguration

Die Konfiguration kann über den Menüpunkt ”Edit Configuration” geändert werden. Standardmässig wird dabei der Editor joe genutzt (siehe aber Variable EDITOR in der base configuration).

Nachdem der Editor beendet wurde wird die Konfiguration mit dem Programm eischk automatisch auf syntaktische und teilweise auch auf semantische Fehler geprüft. Werden Fehler festgestellt, so werden diese gemeldet und der Benutzer zur Korrektur aufgefordert. Wird eine solche Korrektur nicht durchgeführt, so kann es zu unvorhersehbaren Fehlfunktionen bei den Diensten kommen.

Es wird zusätzlich gefragt, ob die Konfiguration angewendet (aktiviert) werden soll. Wird dieses verneint, so unterbleibt die Aktivierung. ACHTUNG
Beim nächsten Boot-Vorgang kann es in diesem Fall zu unvorhersehbaren Fehlern kommen.


Wird die Aktivierung bestätigt, werden über ein Skript die durchgeführten Änderungen wirksam gemacht.

Die Konfigurationsdatei

Die Konfigurationsdatei (/etc/config.d/squid) enthält in einer Reihe von Abschnitten die Parameter, die den Squid selbst und SquidGuard konfigurieren.

General settings for squid

START_SQUID

Über START_SQUID wird mit den Werten yes bzw. no gesteuert, ob der HTTP-Proxy Squid beim Boot des Rechners automatisch gestartet werden soll. (Default ist no).

Gültige Werte: yes,no

SQUID_MANUAL_CONFIGURATION

Hier kann gesteuert werden, ob die Konfiguration des Squid und aller seiner Komponenten manuell (von Hand) vorgenommen werden soll. (Default ist no).

Gültige Werte: yes,no

SQUID_CACHE_MGR

Mailadresse des lokalen Cache Managers. (Default ist webmaster).

Gültige Werte: Mailadresse

Connection Settings for squid

SQUID_IP_ETH_N

Netzwerkkarte, dessen IP-Adresse, Netzwerk-Adresse und Netmask genutzt werden soll. Siehe Basiskonfiguration. Die Angabe 0 führt dazu, dass der Squid auf allen lokalen IP-Adressen 'lauscht'.

Gültige Werte: 1 bis IP_ETH_N (siehe Datei base)

SQUID_PORT

Gibt den Port an, auf dem der Squid ansprechbar sein soll.

Default: 3128

SQUID_PORT_OPTIONS

Angaben für die http_port option. In /etc/squid/squid.conf finden sich weitere Angaben.

SQUID_ADDITIONAL_SAFE_PORTS

Zusätzliche acl Safe_ports Portangaben.
Beispiel: SQUID_ADDITIONAL_SAFE_PORTS='445 22 3001'
Die Ports 445,22 und 3001 werden der Liste der sog. 'safe ports' hinzugefügt. In /etc/squid/squid.conf finden sich unter den Begriffen 'acl aclname port' und 'http_access deny' entsprechende Beschreibungen.

SQUID_ACL_HOME_SRC

Angabe für die Konfiguration der Acccess Control List home src. Diese Liste regelt, welche Clients den Squid benutzen dürfen. Im Standardfall wird diese Liste aus den über SQUID_IP_ETH_N referenzierten Werte der Basiskonfiguration erzeugt. Dazu muss SQUID_ACL_HOME_SRC=” gesetzt sein. In umfangreicheren, intern geteilten Netzwerken ist ggf. eine gesonderte Angabe notwendig.
Beispiel:
192.168.1.0/255.255.255.0 192.168.2.0/255.255.255.0
erlaubt Clients aus den Netzen
192.168.1.0 and 192.168.2.0.
die Benutzung des Squid.
Bitte /etc/squid/squid.conf für eine umfassende Erläuterung nutzen.

Language Settings for squid error messages

SQUID_DEFAULT_LANGUAGE

Auswahl der Sprache, in der Fehlermeldungen des Squid ausgegeben werden, wenn die Sprache nicht aus den Angaben des Web-Client entnommen werden kann oder die im Web-Client gewählte Sprache nicht verfügbar ist. (Default ist en_US).

Gültige Werte: de_DE,en_US,en_GB,fr_FR

Privacy Settings for squid

SQUID_FILL_FORWARDED_FOR

Gibt an, ob die IP-Adresse oder der Name des Systems in den weitergeleiteten HTTP-Requests eingesetzt wird.

Gültige Werte: yes,no

SNMP Settings for squid

SQUID_ALLOW_SNMP

Bei 'no' werden keine SNMP Meldungen angenommen. Bei 'yes' werden solche Meldungen auf Port 3401 angenommen.

Achtung: Der Default ist SQUID_ALLOW_SNMP='no'. Vor Version 1.5.0 wurde eine Konfiguration, die SQUID_ALLOW_SNMP='yes' entspricht generiert.

Gültige Werte: yes,no

ICP Settings for squid

SQUID_ALLOW_ICP

Gibt an, ob ICP Messages auf Port 3130 angenommen werden.

Gültige Werte: yes,no

Cache Settings for squid

SQUID_RAM_SIZE

Mit diesem Wert kann man dem Squid eine bestimmte Menge Hauptspeicher in MB zuteilen. Allerdings wird die eingestellte Menge im Normalfall um den Faktor 2 überschritten. Wenn man also 8 einstellt, wird der normale Speicherbedarf des Squid etwa 24 Megabyte betragen. Mit dieser Einstellung (und einem PC mit mindestens 32 MB RAM) kann man an einer DSL-Leitung ohne Probleme 5-10 Clients bedienen.

Gültige Werte: Zahl

SQUID_CACHE_SIZE

Gibt die Menge an Festplattenspeicher in MB an, die Squid für das Zwischenspeichern von häufig angeforderten Daten maximal belegen darf.

Gültige Werte: Zahl

SQUID_CACHE_DIR

Gibt den Pfad zu dem Verzeichniss an, in das der Squid seine temporären Dateien (den Cache) anlegen darf. Die Voreinstellung sollte man nach Möglichkeit belassen.

Gültige Werte: Verzeichnis

SQUID_MAX_OBJECT_SIZE

Gibt die maximale Größe von Objekten an die auf der Platte gespeichert werden. Die Angabe ist in KiloByte.

Default: 4096

Log Settings for squid

SQUID_LOG_ACCESS

In diese Datei werden die Anfragen der Clients geloggt. Hier sollte die Voreinstellung genutzt werden.

SQUID_LOG_ACCESS='none' deaktiviert das Logging.
SQUID_LOG_ACCESS='syslog' schaltet das Logging über den Syslog Daemon ein. Hierzu bitte die SYSLOGD Parameter der Base-Konfiguration beachten.

Gültige Werte: Dateiname,none,syslog

SQUID_LOGFORMAT

Format des Access-Logs. Die Datei /etc/squid/squid.conf enthält eine detaillierte Beschreibung der einzelnen Formate. Das Format 'eissquid' ist wie das Format 'squid', nur die Angabe des Zeitstemples ist im Format (tl) anstelle der Angabe 'time since epoche'.

Gültige Werte: squid,squidmime,common,combined,eissquid,referrer,useragent

Default: squid

SQUID_LOG_CACHE

In diese Datei werden Angaben über den Cache geloggt. Auch diese Voreinstellung sollte man belassen.

SQUID_LOG_CACHE='none' deaktiviert das Logging.

Gültige Werte: Dateiname,none

SQUID_MESSAGE_TIME

Angabe, welches Zeitformat in den Fehlermeldungen des Squid genutzt werden soll.

Gültige Werte: UTC,local

Log Rotate Settings for Squid

SQUID_LOG_ROTATE

Gibt an, ob die Logdateien des Squid über die Funktionalität logrotate verkleinert und archiviert werden sollen.

Gültige Werte: yes,no

SQUID_MAX_LOGSIZE

Größe, aber der die Logdateien mittels logrotate verkleinert und archiviert werden sollen.
Es sind folgende Anagben möglich:
xxx Angabe in Bytes
xxxk Angabe in Kilo-Bytes
xxxM Angabe in Mega-Bytes

Authentication Settings for squid

SQUID_AUTH

Über den Wert dieser Variablen (yes oder no) wird geregelt, ob der Zugriff über den Squid-Proxy durch ein Authentifizierungs verfahren (Benutzer- und Passwortabfrage) geregelt werden soll.

Gültige Werte: yes,no

SQUID_SCHEME

Authentifizierungs-Schema, welches genutzt werden soll.
ncsa : NCSA-Authentication
Es wird eine spezielle Passwort-Datei genutzt. Diese muss mittels des Programms /usr/local/apache2/bin/htpasswd oder /usr/bin/htpasswd (Teil des Apache Paketes) angelegt werden und die Benutzer/Passworte dort abgelegt. Damit können spezielle User unabhängig von den Unix-Usern berechtigt werden den Squid-Proxy zu nutzen.
pam : PAM-Authentication
Die Standard-Unix Authentifizierung wird genutzt. Nur echte Unix-User sind berechtigt den Squid-Proxy zu nutzen.
smb : SMB-Authentication
Die Authentifizierung geschieht über einen SMB-Server, also einen Windows-NT Server oder einen SAMBA-Server. Zur Nutzung dieser Authentifizierung muss das Paket Samba installiert sein, und ein sog. Domain Controller verfügbar sein.

Gültige Werte: ncsa,pam,smb

SQUID_AUTH_PFILE

nur bei SQUID_SCHEME='ncsa'. Dateiname der Passwort-Datei, die für NCSA-Authentication genutzt werden soll. Diese Datei muss mit dem Befehl /usr/local/apache2/bin/htpasswd bzw. /usr/bin/htpasswd angelegt werden. Ein Aufruf des Befehls htpasswd mit dem Parameter --help gibt Auskunft über den Befehl. Die erzeugte Datei muss den Benutzer squid und der Gruppe squid zugeordnet sein. Dies kann über ”chown squid:squid /var/squid/squidpasswd” erreicht werden. Siehe auch SQUID_INSTALL_CHPASSWD.

SQUID_CACHEMGR_PASSWD

Passwort für die Nutzung des Programms cachemgr.cgi. Das Passwort 'disable' verhindert jeglichen Zugriff auf das Programm cachemgr.cgi.

SQUID_CREDENTIALS_TTL

Über diese Angabe kann gesteuert werden, wie lange squid die Kombination Username:Passwort für gültig hält, mit anderen Worten, über diesen Parameter wird gesteuert, wie oft squid das externe Programm zur überprüfung Authentifizierung aufruft. Hier sind Angaben der Form '10 seconds', '1 minute', '5 minutes' oder '1 hour' gültig. Default ist '2 hours'.

Cache Peer Settings for squid

SQUID_CACHE_PEER

Angabe eines andere Caches in einer Cache Hierarchie In /etc/squid/squid.conf befinden sich detaillierte Angabe und eine Reihe von Beispielen.

SQUID_CACHE_PEER_N

Zusätzliche cache_peer Angaben. Hier kann die Anzahl der zusätzlichen Angaben festgelegt werden.

Gültige Werte: Zahl

SQUID_CACHE_PEER_1

Erste zusätzliche Angabe.

SQUID_CACHE_PEER_2

Zweite zusätzliche Angabe.

CGI Programm Settings for squid

SQUID_INSTALL_CHPASSWD

Über die Angaben 'yes' bzw. 'no' wird gesteuert, ob das Programm chpasswd.cgi installiert wird. chpasswd.cgi erlaubt die Änderung von Passwörtern bei Nutzung von NCSA-Authentication.

ACHTUNG: Es werden keine Passwörter unterstützt, die 'nur' mit MD5 encryption codiert sind. Es sollte bcrypt encryption gewählt werden.

Gültige Werte: yes,no

SQUID_INSTALL_CACHEMGR

Über die Angaben 'yes' bzw. 'no' wird gesteuert, ob das Programm cachemgr.cgi installiert wird. Über cachemgr.cgi lassen sich eine große Anzahl Informationen über den Squid auslesen.
Aufruf via:
http://<your eisserver>/cgi-bin/cachemgr.cgi
Eingaben:
   'Cache Host' Name des eisservers
   'Cache Port' siehe SQUID_PORT
   'Manager name' Namensteil von SQUID_CACHE_MGR
   'Password' siehe SQUID_CACHEMGR_PASSWD

SQUID_INSTALL_CHPASSWD='yes' und SQUID_INSTALL_CACHEMGR='yes werden ignoriert, wenn das Paket Apache nicht installiert ist.

SQUID_INSTALL_CHPASSWD='yes' erfordert SQUID_AUTH='yes' und SQUID_SCHEME='ncsa'

Gültige Werte: yes,no

Generation of Proxy Autoconfiguration File

SQUID_GEN_PACFILE

Generierung einer proxy autoconfiguration Datei. Über die Angabe 'yes' oder 'no' wird gesteuert, ob eine sog. .pac-Datei mit dem Namen squid.pac generiert werden soll. Bei 'yes' wird diese Datei im Verzeichnis /var/www/htdocs erzeugt. Bei 'no' wird eine ggf. existierende Datei nicht verändert. So ist es möglich sich diese Datei zunächst generieren zu lassen, dann SQUID_GEN_PACFILE auf 'no' umzustellen und die Datei den entsprechenden Bedürfnissen anzupassen.
Ggf. muss noch folgende Zeile
application/x-ns-proxy-autoconfig pac
in der Datei /usr/local/apache/conf/mime.types bzw. /etc/apache2/mime.types ergänzt werden.
Die Konfiguration des Webbrowser der Clients muss ebenfalls geändert werden, wenn die .pac-Datei wirksam werden soll.

Gültige Werte: yes,no

squidGuard

squidGuard bietet eine Zugriffskontrolle für das Internet. Über die Möglichkeiten und insbesondere die Grenzen einer solchen Zugriffskontrolle informiert die Home-Page von squidGuard (http://www.squidguard.org/).

squidGuard benötigt die Pakete apache und perl.

SQUID_INSTALL_SQUIDGUARD

Über die Angaben 'yes' bzw. 'no' wird gesteuert, ob das Programm squidGuard installiert wird.

Gültige Werte: yes,no

SQUID_GUARD_HTTP_PORT

Port, der für interne HTTP Verbindungen genutzt wird. z.B. Meldungen und Images von squidGuard.

Default: 80

SQUID_GUARD_NOTBLOCKED_USER

In SQUID_GUARD_NOTBLOCKED_USER kann eine Liste von Benutzern (z.B. 'master admin') angegeben werden, deren Seitenaufrufe nicht von squidGuard überprüft und daher auch ggf. nicht blockiert werden. SQUID_GUARD_NOTBLOCKED_USER kann nur funktionieren, wenn eine entsprechende Authentifizierung SQUID_AUTH='yes' eingeschaltet ist.

SQUID_GUARD_BLACKLIST_ACTIVE

Angabe der Blacklist aus der folgenden Liste, die genutzt werden soll.

Default: 1

SQUID_GUARD_BLACKLIST_N

SQUID_GUARD_BLACKLIST_N definiert einen URL, FILENAME und TYPE müssen entsprechend gesetzt werden.

SQUID_GUARD_BLACKLIST_#_URL:
  URL, der für den Download genutzt werden soll.
SQUID_GUARD_BLACKLIST_#_FILENAME:
  Name der Datei, die heruntergeladen werden soll.
  Wenn leer, so wird der Name aus dem URL ermittelt.
SQUID_GUARD_BLACKLIST_#_TYPE:
  Typ der Blacklist.
  'diff' die Blacklist. enthält sog. .diff-Dateien.
  Mittels dieser .diff-Dateien können die vorbereiteten Datenbanken
  via Update geändert werden.
  'full' Blacklist ist ein kompletter Update.
SQUID_GUARD_BLACKLIST_#_OPTION=”
  Option 'strip1' oder ”.
  Diese Option dient dazu unkonventionelle Blacklists zu behandeln.
  Ist die Option 'strip1' gesetzt, so wird die Blacklist-Datei direkt
  im Verzeichnis /usr/local/squidGuard/db/blacklists entpackt.
  Der erste Pfad aller Dateinamen wird entfernt.

Die Konfigurationsdatei enthält fünf Beispiele für Blacklist-URLS. Diese fünf Beispiele wurden getestet.

ACHTUNG: SQUID_GUARD_BLACKLIST_5_URL
ist eine kommerziell verwaltete Blacklist.
Bitte http://urlblacklist.com/ besuchen, um die Blacklist ggf. zu bestellen.

SQUID_GUARD_CRON

Verwende cron für den Blacklist-Update 'yes' oder 'no'.

Default: no

Gültige Werte: yes,no

SQUID_GUARD_CRON_SCHEDULE

Cron Konfigurationszeile.

Default: 15 0 * * *
Blacklist-Update jeden Tag um 00:15.

SQUID_GUARD_BUILD_DB

Über 'yes' bzw. 'no' wird festgelegt, ob aus den Domainslists und Urllists des squidGuard sog. Datenbanken erstellt werden sollen. Diese vorbereiteten Datenbanken lassen die squidGuard Prozesse erheblich schneller starten.

Gültige Werte: yes,no

SQUID_GUARD_TR_LOG

Legt fest, ob für die sog. Translation, d.h. für die Fälle, in denen der Zugriff auf Seiten im Internet verboten wurden, Einträge in Logfiles geschrieben werden 'yes' oder nicht 'no'.
Für jede Klasse wird ein Extralogfile angelegt. Für die Klasse drugs heißt das Logfile /usr/local/squidGuard/log/tr_drugs.log. Die Logfiles werden zurückgesetzt, wenn squidGuard gestartet wird.

Gültige Werte: yes,no

SQUID_GUARD_ANONYMOUS_LOGGING

Wenn SQUID_GUARD_ANONYMOUS_LOGGING auf 'yes' gesetzt wird, so werden die Benutzernamen von Benutzern, die eine gesperrte Seite aufrufen nicht mehr geloggt. Steht SQUID_GUARD_ANONYMOUS_LOGGING auf 'no', so werden die entsprechenden Benutzernamen im Logfile mitgeschrieben.

Default: yes

SQUID_GUARD_REDIRECT_CHILDREN

Anzahl der sog. redirect children. Der Default 4 sollte im Normalfall ausreichend sein.

Gültige Werte: Zahl

SQUID_GUARD_CLASS

squidGuard kennt eine Reihe von sog. Klassen, die blockiert werden können.
Die Angabe 'all' blockiert alle Klassen. Es kann auch eine Liste von Klassen angegeben werden. Wird z.B. SQUID_GUARD_CLASS mit 'drugs porn' besetzt, so werden Zugriffe der Klasse 'drugs' (Drogen) und 'porn' (Pornographie) blockiert.
In der Klasse 'individual' können individuelle Angaben gemacht werden.
Dazu müssen in den Dateien domains, expressions bzw. urls entsprechende Zeilen eingetragen werden. Zum Format und Inhalt dieser Dateien siehe http://www.squidguard.org/. Nach Änderung einer der Dateien muss der Squid neu gestartet werden.

Einige Blacklists benutzen Unterverzeichnisse. Die zugehörigen Klassen werden in der Form dir_subdir benannt, also z.B. recreation_travel für das Verzeichniss recreation/travel. Es ist möglich die Klasse 'recreation' zu nutzen, um alle Unter- verzeichnisse mit ihren entsprechenden Klassen zu aktivieren.

Klassenangaben mit einem führenden Minuszeichen (z.B. -hobby) führen dazu, dass diese Klassen (bzw. Verzeicnisse/Unterverzeichnisse) nicht genutzt werden. Beispiel: 'all -hobby' aktiviert alle Klassen außer Hobby.

Default: all

SQUID_GUARD_SPECS

squidGuard kennt folgende Spezifikationstypen: domains urls expressions. In den zugehörigen Dateien gleichen Namens stehen die entsprechenden Angaben. Wird SQUID_GUARD_SPECS='all' gesetzt, so werden alle Dateien genutzt. Eine Angabe SQUID_GUARD_SPECS='domains' führt dazu, dass nur die Datei domains der jeweiligen Klasse genutzt wird.

Default: all

SQUID_GUARD_AUTOCONFIG

Über 'yes' bzw. 'no' wird gesteuert, ob die Konfigurationsdatei mit dem Namen /usr/local/squidGuard/squidGuard.conf generiert wird. Bei Angabe von 'yes' wird die Datei unter Zuhilfenahme der Angaben bei SQUID_GUARD_CLASS und SQUID_GUARD_SPECS generiert. Bei Angabe von 'no' wird erwartet, dass eine korrekte Konfigurationsdatei existiert.
Bitte diese Angabe nur ändern, wenn Sie über entsprechende Kenntnisse verfügen.

Gültige Werte: yes,no

SQUID_GUARD_CGIAUTOCONFIG

Über 'yes' bzw. 'no' wird gesteuert, ob das entsprechende CGI-Skript squidGuard-simple.cgi in das Verzeichnis /var/www/cgi-bin kopiert und vorher entsprechend angepasst wird. Über dieses CGI-Skript wird die Fehlerseite erzeugt, wenn die Originalseite blockiert wird. Bitte diese Angabe nur ändern, wenn Sie über entsprechende Kenntnisse verfügen.

Gültige Werte: yes,no

Einstellungen beim Übersetzen der Paketes

Mit folgenden Einstellungen wurden die einzelnen Programme übersetzt:

squid
          --sysconfdir=/etc/squid
          --datarootdir=/usr/share/squid
          --libexecdir=/usr/lib/squid
          --prefix=/usr
          --enable-delay-pools
          --enable-snmp
          --enable-ssl
          --disable-loadable-modules
          --enable-linux-netfilter
          --disable-arch-native
          --with-large-files
          --enable-auth-basic
chpasswd.cgi
          --sysconfdir=/etc/squid
          --prefix=/etc/squid
          --enable-cgidir=/var/www/cgi-bin
squidGuard
          --with-sg-config=/usr/squidGuard/squidGuard.conf
          --with-sg-logdir=/usr/squidGuard/log
          --with-sg-dbhome=/usr/squidGuard/db