Update-Zweigstelle - Mac serviert Updates im LAN

Seite 6: Hilfs-Weiche

Inhaltsverzeichnis

Squid allein kann HTTP-Zugriffe aus dem LAN nicht zu einem anderen Webserver umleiten. Dafür kann man aber diverse Um­leitungsverfahren verwenden, die man über die Option „url_rewrite_program“ definiert. Ein solcher Umleiter ist das Perl-Skript „rewrite.pl“. Es lenkt Anfragen an die Apple Update-Server um, indem es die ursprüngliche Zieladresse gegen die lokale IP-Adresse gefolgt von einer Zeichenkette ersetzt – die Zeichenkette entspricht einer der Domains der drei Update-Server. Man findet sie im Pfad /Volumes/updates/apple wieder, weil sie wget per mirror-Option nachgebildet hat. Den Rest der angefragten URL belässt das Skript unverändert, denn diese Pfade liegen ja ebenfalls lokal vor.

Kopieren Sie das Perl-Redirection-Skript aus der heruntergeladenen Datei an seinen Platz und setzen Sie das Ausführungsbit:

sudo cp rewrite.pl /usr/local/bin/
sudo chmod +x /usr/local/bin/rewrite.pl

Öffnen Sie das Skript mit einem Editor und setzen Sie die IP-Adresse Ihres Proxy-Servers dort ein, wo die Beispieladresse 10.0.2.1 eingetragen ist (pico /usr/local/bin/rewrite.pl). Eine Beispielzeile sieht so aus:

s@http://swscan.apple.com@http://10.0.2.1/swscan.apple.com@;

Speichern Sie die Änderungen, legen Sie das Squid-Cache-Verzeichnis an und initialisieren und starten Sie Squid:

sudo mkdir -p /Volumes/updates/squid/cache
sudo chown -R squid:staff /Volumes/updates/
sudo squid -z
sudo port load squid3

Welche IP-Parameter das Internet- Sharing verwendet, führt unter anderem das System-Log auf. Auch ist dort ersichtlich, welche Schnittstelle und welchen Bereich der dafür gestartete DHCP-Server versorgt.

Mit den beiden ersten Zeilen erzeugt man das Cache-Verzeichnis und stellt die für Squid erforderlichen Zugriffsrechte ein. Letzteres ist notwendig, weil die Software sonst die erforderlichen Unterverzeichnisse nicht anlegen kann, was mit dem Kommando squid -z veranlasst wird. Mit „sudo port load squid3“ wird gewährleistet, dass Squid automatisch bei Neustarts geladen wird.

Falls Sie die Application Firewall eingeschaltet haben (empfehlenswert), dann wird sie beim ersten Start des Programms fragen, ob sie Squid eingehende Verbindungen erlauben soll. Erlauben Sie das. Prüfen Sie, ob Squid korrekt gestartet ist:

cat /opt/local/var/squid/logs/cache.log | grep -i accepting

Wenn der Befehl eine Zeile wie „Accepting intercepted HTTP connections at 0.0.0.0:3128, FD 28.“ liefert, dann läuft Squid, sammelt Daten von angefragten Websites und beantwortet aus dem LAN ausgehende HTTP-Anfragen aus dem eigenen Cache, wenn die angefragte Datei bereits darin enthalten ist.

Wenn der Befehl nicht das erwünschte Ergebnis liefert, prüfen Sie die Squid-Konfiguration: Gängige Fehlerursachen sind die Pfadangabe für das Cache-Verzeichnis und fehlende Zugriffsrechte. Damit Squid Korrekturen an der Konfiguration übernimmt, starten Sie das Programm neu:

sudo port unload squid3
sudo port load squid3