Inhaltsverzeichnis
Wir verwenden Pound als verteilenden Proxy.
Installation
Pound ist als Debian-Paket verfügbar. Bei der kompilierten Version ist leider eine Option deaktiviert, die für die Verwendung mit Subversion benötigt wird. Falls du also keinen Subversion-Server hinter dem Proxy einrichten willst, dann genügt ein einfaches apt-get install pound.
Andernfalls kannst du folgendermaßen ein debian-Paket mit der aktivierten Option erstellen (idealerweise auf einem anderen Rechner, um keinen Compiler auf dem Server installieren zu müssen):
eventuell zur /etc/apt/sources.list eine deb-src-Quelle hinzufügen, also beispielsweise:
deb-src http://ftp.de.debian.org/debian testing main
nun geht es los:
apt-get update apt-get install apt-build libssl-dev apt-build source pound cd /var/cache/apt-build/build/pond-1.?.? # den Parameter, den wir fuer subversion brauchen, aktivieren sed -i "s#\(./configure -.*\)#\1 --enable-msdav#" debian/rules
das "sed" schreibt in "debian/rules" das enable-msdav ans ende der configure Zeile, falls was schief läuft geht das auch per vi
in die /etc/apt/apt-build.conf solltest du nun den Prozessortyp des Ziel-Servers eintragen (man gcc könnte dir weiterhelfen) - in unserem Fall:
mcpu = -mcpu=pentium2
jetzt kannst du das Paket bauen lassen:
dpkg-buildpackage
Dabei wurde neben einer Warnung, dass du das Paket nicht signieren konntest, das fertige Debian-Paket im darüberliegenden Verzeichnis erstellt. Das kannst du auf dem Server per dpkg -i pound-*.deb installieren.
- Das System auf dem du baust, sollte die gleichen Paketversionen haben wie das Serversystem (in unserem Fall also debian/stable). Insbesondere die libc6 usw. ergeben sonst bei der pound Installation Probleme.
Einrichtung
Um die verschlüsselten und unverschlüsselten Daten gut zu trennen, verwenden wir zwei Instanzen von pound. Dies lässt sich sehr einfach realisieren, indem du zwei Konfigurationsdateien unter /etc/pound/ erstellst.
Wir verwenden die beiden folgenden Dateien:
Für Subversion ist es wichtig, zwei Optionen zu aktivieren:
ExtendedHTTP 1 WebDAV 1
Den anhängigen Servern könnte folgende Option helfen:
HTTPSHeaders 0 "Front-End-Https: on"
Anschließend solltest du den Start von pound in der /etc/default/pound aktivieren.
Probleme
Web-Anwendungen verlangen SSL
Folgende Programme benötigen eine SSL-Verbindung, um vollständig zu funktionieren:
SquirrelMail für die Eingabe einer gpg-Passphrase
SqWebMail ebenfalls für die gpg-Passphrase
Mit der apache-Direktive SetEnv HTTPS on kannst du diesen Programmen eine SLL-Verbindung vorgaukeln. Dazu benötigst du das apache-Modul mod_env.
Umleitung von https nach http
Webserver senden eine 301-Umleitung, falls eine Adresse ohne abschließenden Schrägstrich angefordert wird, die auf ein Verzeichnis zeigt. Leider gehen die Webserver hinter dem pound-Proxy davon aus, dass sie per http und nicht per https erreicht werden können. Dies resultiert in einer Fehlermeldung 404 - not found.
Pound ist in der Lage, solche Umleitungen zu korrigieren (zumindest ab der Version 1.8). Diese Umsetzung findet jedoch nur statt, wenn die Webserver anstelle von systemausfall.org die internen Namen der UMLs verwenden. Dies lässt sich durch die apache-Direktiven UseCanonicalName und ServerName kontrollieren. Dabei ist es essentiell, dass diese beiden Direktiven vor allen anderen Statements gelesen werden. Ansonsten wird die Fehlersuche sehr unerfreulich
Details: siehe FaxeWebServer
Subversion weiterleiten
Die Verwendung eines selbstkompilierten Pound-Pakets (inklusive configure-Flag --enable-msdav) ist absolut notwendig (Details siehe oben). Andernfalls tritt beispielsweise folgende Fehlermeldung auf: {{{svn: PROPFIND Anfrage fehlgeschlagen auf '/svn/cryptobox' svn: PROPFIND von '/svn/cryptobox': Could not read status line: connection was closed by server.}}}