Axel Richter: Frage zu Linux Proxy Squid

Beitrag lesen

Hallo,

ich möchte testhalber einen Linux Proxy Server (Squid) konfigurieren. Die Konfiguration wird ja in der squid.conf vorgenommen. Im Rechner auf welchem Squid läuft hat es zwei Netzwerkkarten und das sieht dann so aus:

eth0           eth1
Intranet¦---192.168.1.10 ¦ PROXY ¦ 192.168.0.10 ---¦ADSL-Modem/Router

Dazu folgende Fragen:

  • Stimmt die Vergabe der IP-Adressen?

Ja, wenn Dein lokales Netz das Netz 192.168.1.0/24 ist und ADSL die Netzwerkkarte eth1 nutzt.
Das heißt alle Deine lokalen IPs sind im Bereich 192.168.1.x, das x steht für (1-254), und die Netzmaske ist 255.255.255.0.
Die ADSL-Konfiguration (pppoe?) ist so eingerichtet, dass sie eth1 nutzt. Die IP von eth1(192.168.0.10) wird dann nur gebraucht, damit beim booten nicht ewig nach einem DHCP-Server gesucht wird. Sie wird beim Start der ADSL-Verbindung vom Provider dynamisch zugeteilt.

  • Jetzt sollen ja eigentlich alle Anfragen die auf eth0 gelangen nach eth1 weitergeleitet werden.

Nein, warum? Wenn es für die Anfragen auf dem Server mit der IP 192.168.1.10 zuständige Dienste gibt, warum sollte er sie dann weiterleiten? Du meinst Anfragen an andere IPs außerhalb Deines Netzes sollen weitergeleitet werden? Das nennt man routing. Das legst Du bei der Netzwerkkonfiguration fest, indem Du festlegst dass default gateway für eth0 die eth1(192.168.0.10) ist. Zuständig ist das Kommando route. Je nach Linux-Distribution gibt es Konfigurationstools.

  • Damit man später auch noch z.B. mit Telnet oder per FTP ins Internet gelangen kann, müssen ja sämtliche Ports von eth0 auf eth1 umgeleitet werden, oder?

Nein. Zunächst mal wird das kein reines Umleiten, sondern ein maskiertes Umleiten. Informiere Dich über NAT (Network Address Translation) und/oder Masquerading und/oder Port Forwarding. Dann solltest Du aber _keinesfalls_ einfach alle IP-Pakete weiterleiten, sondern _nur_ die, welche Du benötigst und auch nicht alle IP-Pakete in alle Richtungn lassen (Firewalling).

Wie kann ich das festlegen damit ich nicht jeden einzelnen Port in der config aufführen muss? Oder muss ich das gar nicht in der squid.conf machen?

Nein. Squid ist ein HTTP-Proxy. Er kann _nur_ als Stellvetreter für HTTP- und FTP-Anforderungen arbeiten. Ein Proxy ist auch etwas anders als Port-Forwarding. Squid läuft als Dienst auf dem Server (default Port 3128). Der Client (Bei Dir ein Browser eines PCs im Netz 192.168.1.0/24) hat als Information, dass HTTP-Anforderungen über den Proxy (192.168.1.10:3128) gehen. Wenn also der Nutzer im Browser http://www.google.de/ anfordert, wird diese Anforderung stellvertretend vom Proxy-Dienst (squid) beantwortet. Dieser hat ja vom Server über das default Gateway Zugang zum Provider. Er kann sich also die Seite holen, zwischenspeichern und ausliefern. Hierbei wird _keine_ direkte Weiterleitung vom Client zum Provider erfolgen. Man kann alle benötigten Dienste über Proxys bedienen. Das wäre sehr sicher aber auch sehr aufwändig, weil für jeden weitern Dienst (Telnet, SSH, SMTP ...) weitere Proxy-Dienste erforderlich wären.

  • Ich habe das Gefühl, dass beim Linux-Rechner mit den beiden Netzwerkkarten nicht immer die gleiche Netzwerkkarte die gleiche IP bekommt. Kann das sein? (Ich habe statische IP's vergeben) Eth0 solle doch immer dieselbe Netzwerkkarte sein? Wie kann ich das sicherstellen?

Das Problem hatte ich bisher nur bei SuSE-Linux und, wenn beide Netzwerkkarten baugleich sind, und auch nur bis jede Netzwerkkarte einmal korrekt initialisiert war. Sprich: Es sollte sich nichts mehr ändern, wenn der Rechner einmal vom lokalen Netz erreichbar und zum ADSL verbunden war.

viele Grüße

Axel