SelfLinux Internet World Wide Web Proxies Der Web-Proxy Squid Abschnitt 6 | SelfLinux-0.13.0

| Der Web-Proxy Squid | Autor Formatierung GPL

#### 7 Squid aus Quellen kompilieren

Selbst kompilieren hat mehrere Vorteile:

1. Es können zusätzliche Funktionen aktiviert oder zur Stabilitätserhöhung ungenutzte Funktionen deaktiviert werden
2. Die aktuellsten Versionen sind meist nur als Quellen verfügbar
3. Das kompilierte Programm ist optimal an die Umgebung angepasst, wie z.B. Prozessortyp und Bibliotheken.

Der Nachteil ist, dass die Installation erheblich aufwendiger ist.

#### 7.1 Kompilieren und Installation

Zunächst sollten die neuesten Squid-Quellen geholt werden unter www.squid-cache.org (am besten die jeweils aktuellste STABLE-Version wählen).

Anschließend sind diese auszupacken mit:

root@linux # cd /usr/local/src root@linux /usr/local/src# tar xvjf squid-<Version>.tar.bz2

Mit dem configure-Kommando können Parameter übergeben werden, um Squid den eigenen Anforderungen anzupassen. Die möglichen Parameter sind zu erfahren mit:

root@linux # cd squid-<Version> root@linux # ./configure --help

Anschließend kann kompiliert und installiert werden.

Soll Squid beispielsweise mit Zugriffsmöglichkeiten auf eine Windows-NT-Domäne installiert werden, kann der Aufruf von configure z. B. folgendermaßen aussehen:

root@linux # ./configure --enable-auth="ntlm,basic" --enable-external-acl-helpers="wbinfo_group" root@linux # make all root@linux # make install

#### 7.2 Konfiguration

Die Konfigurationsdatei squid.conf liegt standardmäßig nach dem Kompilieren unter /usr/local/squid/etc/squid.conf. Der Übersicht und Einheitlichkeit halber sollte folgender Link erzeugt werden:

root@linux # ln -s /usr/local/squid/etc/squid.conf /etc/squid.conf

Vor dem ersten Start ist die Cache-Verzeichnisstruktur und deren Rechte anzulegen mit:

root@linux # mkdir -p /usr/local/squid/var/cache root@linux # mkdir -p /usr/local/squid/var/logs root@linux # chown -R nobody /usr/local/squid/var/cache root@linux # chown -R nobody /usr/local/squid/var/logs root@linux # /usr/local/squid/sbin/squid -z

Die Konfiguration über die Datei squid.conf ist identisch mit der von RPM- oder DEB-Paket-Installationen.

#### 7.3 Installation kontrollieren

Der Squid kann im Debug-Modus gestartet werden, um mögliche Fehler gleich auf dem Terminal zu sehen (siehe Squid-Daemon starten).

#### 7.4 Squid starten mit Startskript

Läuft der Squid im Testlauf ohne Probleme, sollte ein Startskript erstellt werden. Über dieses kann der Squid bei einem Neustart des Systems automatisch hochgefahren werden.

Zu beachten ist, dass der Squid bei noch aktiven Verbindungen längere Zeit braucht, bis er gestoppt ist. Deshalb ist hier für den Stop-Fall eine Schleife einzubauen, die das Skript erst dann beendet, wenn der Daemon wirklich gestorben ist, da ansonsten ein erneuter Start mit Fehlern abgebrochen wird.

    #!/bin/bash

    squid=/usr/local/squid/sbin/squid
    test -x $squid || exit 0

    case "$1" in
    start)
            echo "Starting squid"
            $squid -D -sYC
            sleep 1
            $0 status
    ;;
    stop)
            echo "Stopping squid"
            $squid -k shutdown
            n=0
            while $squid -k check && [ $n -lt 120 ]; do
                    sleep 1
                    echo -n .
                    n=`/usr/bin/expr $n + 1`
            done
            $0 status
    ;;
    status)
            $squid -k check
            /bin/ps aux | /bin/grep squid | /bin/grep -v -e "status" -e "grep"
    ;;
    reload)
            $squid -k reconfigure
    ;;
    restart)
            $0 stop && $0 start
    ;;
    *)
            echo "Usage: $0 {start|stop|reload|restart|status|}" >&2
    ;;
    esac

Dieses Skript ist als /etc/init.d/squid anzulegen und ausführbar zu machen.

Um einen automatischen Start des Squid nach einem Neustart zu erreichen, müssen die entsprechenden Links in den rc-Verzeichnissen auf /etc/init.d/squid gesetzt werden. Da sich die einzelnen Linux-Distributionen hier leider sehr unterscheiden, ist hierfür kein einfaches Beispiel möglich.