• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Routing vom Gateway an transparenten Proxy

amandla

Newbie
Hallo zusammen,
ich bin einer der Newbies hier und habe gleich einige spannende Fragen:
Wir haben in einen Schulnetz mit mehreren Subnetzen, diese entsprechen den Klassenräumen, ein Gateway zu installieren. Nun soll es ermöglicht werden, die Clients (IP) auf den Proxy Squid zu routen.
Distri: Suse 8.0

zur Zeit: Client ----> Proxy/Squid ----> Internet

nachher: Client -----> Gateway ----> Proxy/Squid ----> Internet

Meine Frage ist nun: Wie sieht die Syntax für das Routing der ClientIP aus, die Anfragen senden und erwarten. Ergo wie habe ich für Iptables vorzugehen? Ich danke für Eure Hilfe. :idea:
 

Martin Breidenbach

Ultimate Guru
Du brauchst eine DNAT Regel die die Ziel-IP für http auf den Proxy verbiegt und eine FORWARD Regel die die umgebogen Pakete auch durchläßt.

Bei der Konfiguration vom Squid das transparent Proxy Howto berücksichtigen.

Hier mal ein Codefragment das sowas macht:
Code:
$IPTABLES -t nat -A PREROUTING -i $LAN_IF  -p tcp --dport 80 -j DNAT --to $SQUID_IP_DMZ:3128
$IPTABLES -A FORWARD -i $LAN_IF  -m state --state NEW -d $SQUID_IP_DMZ -p tcp --dport 3128 -j ACCEPT
 
OP
A

amandla

Newbie
Hallo,
es hat ein wenig gedauert; der Job :)

Könnte dann das Routen für einen Client also so aussehen?:
$iptables -t nat PREROUTING -p tcp -s 192.168.210.1 --dport 3128 -j DNAT -to 192.168.125.135:3128
$IPTABLES -A FORWARD -i $eth0 -m state --state NEW -d $192.168.125.135 -p tcp --dport 3128 -j ACCEPT
 

Martin Breidenbach

Ultimate Guru
amandla schrieb:

Das sollte doch ein Transparenter Proxy werdern oder ? Dann muß man Pakete die von innen ins Internet an Zielport 80 gehen auf den Squid Zielport 3128 umleiten. Also muß hier dport 80 stehen.

amandla schrieb:

Das -s ist mir suspekt - das spezifiziert die Absenderadresse. Ist das beabsichtigt ?

amandla schrieb:

Da sollte man erwähnen daß das natürlich nur das erste Paket einer neuen Verbindung durchäßt. In dem Skript aus dem ich das Codeschnipsel entnommen habe gibt es eine Regel die ESTABLISHED und RELATED durchläßt (also Pakete bestehender Verbindungen und welche die 'dazugehören' wie z.B. bestimmte icmp Pakete).
 
OP
A

amandla

Newbie
Danke soweit, vielleicht habe ich mich mißverständlich ausgedrückt.
Der transparente Proxy ist derzeit die 192.168.125.11. Den haben die Clients derzeit eingetragen mit Port 3128.
Ich soll nun das Gateway 192.168.125.20 dazwischen setzen und die Anfragen auf Port 3128 routen.
Das ist mein Problem
 

Martin Breidenbach

Ultimate Guru
Ist der Proxy in einer DMZ ? Oder im internen Netz ? Wo kommt das 'gateway' dazwischen ?

Beschreibe doch mal die geplante Anordnung der Rechner.

Du weißt was einen 'transparenten' Proxy von einem 'Feld-Wald&Wiesen' Proxy unterscheidet ?
 
OP
A

amandla

Newbie
N'abend,

nach ein wenig Recherche:

Weder der Proxy/Squid noch der neue Proxy liegen in einer DMZ.
Es ist alles innerhalb einer Netzwerkstruktur.

Ich möchte jetzt, wie gesagt, Anfragen, z.B. eines Clients mit der IP X.X. 210.1, an das Internet über den neuen Proxy X.X.125.20 an den ProxySquid mit X.X.125.11:3128 routen.

CLientIP -> Proxy -> Squid -> Internet

Wichtig ist die Syntax für die IP und nicht für Netzbereiche.
Ich weiß, das ist viel Tipparbeit, aber nun mal Vorgabe.
 
OP
A

amandla

Newbie
amandla schrieb:

Das -s ist mir suspekt - das spezifiziert die Absenderadresse. Ist das beabsichtigt ?


Beabsichtigt ist das fürwahr, das ist ja die Crux an der Sache.
Oder bin ich auf dem falschen Weg?
 
OP
A

amandla

Newbie
Ich habe in den Subnetzen eine untreschiedliche Anzahl an Clients, jedoch möchte ich jeden Client der Subnetze per Ip routen.
 
OP
A

amandla

Newbie
Hallo noch einmal,

so sieht des nun für einen Client aus.

iptables -t nat -A PREROUTING -p tcp -s 192.168.210.1 --dport 3128 -j DNAT --to-destination 192.168.125.11:3128
iptables -A FORWARD -i eth0 -m state --state NEW,ESTABLISHED,RELATED -d 192.168.125.11 -p tcp --dport 3128 -j ACCEPT

Allerdings mit der Fehlermeldung Invalid Target Name ACCEPT

Woran könnte das nun noch liegen? Bitte um Hilfe. THX a Lot
 

Martin Breidenbach

Ultimate Guru
Der soll das doch auf dem internen Interface empfangen, verbiegen und wieder auf dem internen Interface senden.

Da mach doch ne Regel wie:

iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT

Damit ist intern rein intern raus schonmal für alles freigeschaltet. Ich sehe da kein Sicherheitsproblem drin - schließlich könnten Clients von intern ja den Proxy direkt anquatschen.

Dann müssen wir noch eingehend von intern mit Ziel Port 80 auf den Proxy Port 3128 umbiegen.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.125.11:3128
 
OP
A

amandla

Newbie
:D

Genau so hab ich es gemacht, mille grazie.
Nur wie kann ich die einzelnen Ip's der Subnetze X.X.210.X und
X.x.8.X ansprechen?
Jetzt leite ich ja ALLE Anfragen an eth0 weiter. Es sollen jedoch,
wie bereits erwähnt, die Clients geroutet werden.

Nochmals Danke.
 
Oben