IPTables/Masquerading Hilfe gesucht

CPU

Lieutenant
Dabei seit
Jan. 2006
Beiträge
704
Hallo,

ich habe einen Server, der hinter einen anderen Server hängt. Nun möchte ich mittels IPTables Masquerading betreiben. Wenn also ein Client meines Netzwerks ins Internet möchte, so soll der Server das durch-routen und zum Proxy-Server hinter meinem Rechner schicken!

Die Theorie habe ich verstanden, aber nicht wie man nun diese Regeln erstellt. Gibts irgendwo ein Tutorial, oder vllt. schon die Regeln fertig formuliert (sodass ich mir die Musterlösung anschauen kann und dann sehe: "Aha, das macht man ja so ...?")?

CPU :(
 

mensch183

Captain
Dabei seit
Jan. 2008
Beiträge
3.640
Mußt für das Interface, was von dir aus zum Internet führt, Masquerading aktivieren und dem Kernel noch sagen, daß er IP routen soll. Angenommen ppp0 ist dein Interface zum Internet:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Mehr ist nicht nötig.
 

CPU

Lieutenant
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
704
Und was muss dafür alles in den Kernel einkompiliert sein?
 

Sug82

Lt. Commander
Dabei seit
Juni 2005
Beiträge
1.754
networking support, netfilter mit Zusatzmodulen, falls welche gebraucht werden.
 

CPU

Lieutenant
Ersteller dieses Themas
Dabei seit
Jan. 2006
Beiträge
704
Eingegeben klappt :).

Nun hänge ich aber hinter einem Squid (HTTP-Proxy). Wenn die Clienten im Browser über die richtige IP und den richtigen Port gehen kommen sie auch ins Internet. Nun möchte ich das aber so abändern, dass die Clients garkeinen Proxy festlegen müssen.
Dazu muss ich in meinem Server vermutlich den Server mit dem Squid als Gateway eintragen. Aber wie muss ich die IPTables-Regeln abändern?

CPU
 

mensch183

Captain
Dabei seit
Jan. 2008
Beiträge
3.640
Ich gehe mal davon aus, daß der squid auf dem anderen Server (der vor deinem Server) läuft. Du erreichst also den anderen Server (sonst würde das Surfen über den squid nicht klappen), aber den Rest des Internets erreichst du nicht auf direktem Weg? Was kommt denn für eine Fehlermeldung, wenn du versuchst was ins weite Internet zu schicken? Mach mal als Test "telnet www.x.org 80". Kommt da "no route to host" oder was geht schief?

Im ersten Fall fehlt auf deinem Server eine Route. Dann dürfte "route add default gw 1.2.3.4" auf deinem Server helfen, wobei 1.2.3.4 die IP-Adresse des DIR ZUGEWANDTEN Interfaces des anderen Servers ist.

Mal als Bild:

[client]A-------B[dein_server]C------D[anderer_server]E------internet

A bis E sind die IP-Adressen an den jeweiligen Stellen. An Stelle C passiert dein Masquerading. In oben genannten Route-Befehl mußt du die IP-Adresse der Stelle D einsetzen.

Falls es damit nicht läuft, schreib mal auf welchem Rechner der squid läuft und schicke uns die Ausgaben folgender Kommandos von deinem Server:
ifconfig -a
route -n
 
Zuletzt bearbeitet:
Top