Update-Zweigstelle - Mac serviert Updates im LAN
Seite 3: Durchlauferhitzer
Im ersten Teil geht es um die Einrichtung des Routers und der Umleitungsregel. Anschließend stoßen Sie den Download der Updates an und richten Squid und Apache ein. Diese Reihenfolge empfiehlt sich, weil die Umleitung einen Neustart erfordert. Danach kann der Router-Mac durchlaufen und während der übrigen Schritte schon mal die Updates holen.
Falls Sie also Ihren Mac noch nicht als Router betreiben: Das Internet-Sharing schalten Sie über die Systemeinstellungen im Bereich „Freigaben“ ein – wählen Sie im Menü „Verbindung freigeben“ den Ethernet-Port aus, der auf Ihrem Mac die Internet-Verbindung aufbaut (WAN-Port) und klicken Sie dann in der Auswahlliste darunter den Port an, an dem Ihr LAN angeschlossen ist. Damit werden automatisch der Dienst natd und der DHCP-Server eingeschaltet. So teilt der Mac LAN-Stationen IP-Adressen aus dem Bereich 192.168.x.x zu und bringt sie mittels der Network Address Translation ins Internet.
Stellen Sie sicher, dass IP-Forwarding eingeschaltet ist:
sysctl net.inet.ip.forwarding
Der Befehl sollte diese Antwort liefern: sysctl net.inet.ip.forwarding=1. Falls nicht: Schalten Sie das Internet-Sharing ab, booten Sie den Mac neu und schalten Sie es erneut ein.
Schalten Sie dann die Kerneloption ScopedÂRoute ab. In dieser Einstellung wählt der Kernel das Default Gateway automatisch, wenn mehr als ein WAN-Port eingerichtet ist. Beim Internet-Sharing mit Portumleitung wĂĽrde diese Funktion aber stören:
sudo bash -c "echo net.inet.ip.scopedroute=0 \
>> /etc/sysctl.conf"
Man könnte diese Einstellung auch per sysctl-Kommando zur Laufzeit des Rechners eingeben, aber die Option funktioniert nur dann korrekt, wenn der Mac-Proxy neu startet. Wenn Sie das getan haben, können Sie die Einstellung so prüfen:
sudo sysctl net.inet.ip.scopedroute
Testen Sie nun die Umleitung, indem Sie auf dem Router-Mac ein zweites Terminalfenster öffnen. Geben Sie im ersten diese Befehle ein:
sudo ipfw add fwd 127.0.0.1,1234 \
tcp from any to any 81
nc -l 1234
Damit legen Sie testweise eine Umleitung fĂĽr den Port 81 auf Port 1234 an, wo das Kommando netcat auf eingehende Verbindungen wartet (nc -l 1234).
Geben Sie im zweiten Terminal den Befehl „telnet localhost 81“ ein und tippen Sie beliebigen Text. Wenn die Umleitung funktioniert, sollte der Text auch im ersten Terminal erscheinen. Wenn das klappt, beenden Sie netcat per CTRL-C; die Telnet-Verbindung und Telnet selbst werden damit gleichfalls beendet. Falls der Text nicht im ersten Terminalfenster erscheint: prĂĽfen Sie die Firewall- und die ScopedRoute-Einstellungen. Wie eingangs erwähnt, funktioniert die Umleitung auf aktuellen Macs mit Mac OS X 10.7.2 derzeit nicht, obgleich man dafĂĽr die ScopedÂRoute-Option ebenfalls abschalten kann (wenn auch etwas umständlicher als auf Snow Leopard).
Wenn die Umleitung funktioniert, stellen Sie die für den transparenten Proxy-Betrieb erforderlichen Firewall-Regeln ein. Das sind zunächst die Regeln für eingehenden und ausgehenden HTTP-Verkehr auf dem TCP-Port 80 (die ersten drei Zeilen). Die entscheidende Regel, die den auf en1 eingehenden Port-80-Verkehr auf den von Squid verwendeten Port 3128 umlenkt, steht in der vierten Zeile:
ipfw add 1010 allow tcp from any to me 80 in
ipfw add 1011 allow tcp from any 80 to any out
ipfw add 1012 allow tcp from me to any dst-port 80 out
ipfw add 1013 fwd 127.0.0.1,3128 tcp from any to any 80 recv en1
Wir haben ein einfaches Skript bereitgestellt, das, mit Administrator-Rechten gestartet, alle vier Regeln auf einen Schlag einträgt. So richten Sie es auf Ihrem Mac ein:
sudo cp \
~/Desktop/Proxy-Mac-Skripte/fw4proxy \
/usr/local/bin
chmod +x /usr/local/bin/fw4proxy
Damit ist die Umleitung des TCP-Port 80 vorbereitet. Scharf geschaltet wird sie aber erst, wenn der Port-80-Verkehr von Squid und Apache angenommen werden kann.