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

iptables REDIRECT geht nicht

theme

Newbie
Hallo zusammen,

ich möchte eigentlich einen transparenten Proxy aufsetzen, scheitere aber an der Aufgabe, den Port-80-Verkehr auf Port 3128 umzuleiten.
Das Problem ist, dass meine User auf dem Server selbst arbeiten, so dass es keine Clients im eigentlichen Sinne gibt. Wende ich die Regeln
-------------------- SNIP
# Regeln nach Anleitung aus dem Linux-Forum
# Squid mit Port 80 nach drauÃen lassen
iptables -t nat -A OUTPUT -m owner --uid-owner squid -p tcp --dport 80 -j ACCEPT
iptables -t nat -A OUTPUT -m owner --uid-owner squid -p tcp --dport 3128 -j ACCEPT
# Port 80 Traffic für alle umleiten
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3128
------------------- SNIP
an, die immer in den Foren empfohlen werden, können die User trotzdem immer noch direkt ins Internet, auch wenn squid abgeschaltet ist.
Anscheinend funktioniert eben der redirect nicht richtig.
Auf meinem PC muss gar keine Firewall im eigentlichen Sinne installiert werden, da das erstmal schon ein externer Router erledigt. Im Prinzip liegt hier also ein Einzelplatzrechner mit einer Netzwerkkarte vor. IP-Forwarding hab ich auch deaktiviert.
Tja, weiß da jemand Rat?
Ich hoffe nicht, dass man nach der Eingabe der iptables Befehle noch irgendeinen Dienst (neu)starten muss, sonst wäre das echt peinlich und ihr dürft mich steinigen. Aber ansonsten bastel ich da schon eine Woche dran rum und krieg es einfach nicht hin. Ich brauch doch nur den redirect, sonst nichts. Das kann doch alles nicht so schwer sein!
Danke schon mal,

Frank

Achso:
iptables -L -t nat meldet

---------------- SNIP
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere OWNER UID match squid tcp dpt:http
ACCEPT tcp -- anywhere anywhere OWNER UID match squid tcp dpt:ndl-aas
REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3128
-------------- SNIP
 
OP
T

theme

Newbie
Redirect geht immer noch nicht. Aber immerhin hab ich jetzt den Port 80 dicht, bis auf den squid:
---------- SNIP
iptables -A OUTPUT -p tcp --dport 80 -m owner --uid-owner squid -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j DROP
---------- SNIP
Das reicht mir an sich auch schon.
Das Redirect geht anscheinend nur auf der nat-Tabelle?!
Für weitere Kommentare bin ich dankbar.
Grüße,

Frank
 

Stefan Staeglich

Advanced Hacker
Hier aus einem anderen Thread der werten Person (gleiches Problem):

theme schrieb:
Hallo zusammen,

ich weiß, dass es das Thema schon (oft) hier gab, aber ich schaffe es trotzdem nicht, einen transparenten squid-Proxy einzurichten.
Mein Hauptproblem ist, dass die immer beschrieben iptables-Richtlinie zum Redirect aller Port 80-Pakete auf den Port 3128 nicht greift.
Wenn ich squid abschalte, haben die Schüler immer noch die Möglichkeit, direkt zu surfen. Anscheinden (SEHR wahrscheinlich!) liegt es daran, dass sie auf der gleichen Maschine arbeiten, auf der auch squid läuft (wg pxes bzw. ltsp). Nochmal genau: squidd ist aus, doch der direkt Zugang ist trotzdem möglich.
Ich habe schon folgendes probiert (alles unabhängig voneinander):
1. iptables-Befehl -> keine Wirkung
2. SuSEfirewall2 mit Position 15, nix
3. SuSEfirewall2, um den ganzen Verkehr auf Port 80 zu blocken
Ich hab auch schon ein Posting gelesen, bei dem es ein ähnliches Problem (mit Lösung) gab, aber das hat bei mir auch nicht funktioniert.
Warum klappt der redirect nicht? Warum nur...
Unten Details zum System. Kann mir bitte, bitte jemand helfen?

Danke, Frank

________________________
SuSE 9.1, squid, eine Netzwerkkarte, kein port-forwarding, externer Router mit entsprechendem Eintrag als default-Route, pxes,

Frankie777 schrieb:
Wie lauten denn Deine iptables Befehle zum redirect?

Ralf Weinert schrieb:
also ich hatte da folgendes gemacht:

die dateien in denen der proxy eingestellt wurde (beim konquerer und bei firefox) gesucht und in ein home an die richtige stelle gelegt (oder gelassen). dann die rechte auf lesen "rrr" setzen.
an passender stelle im skel-verzeichnis einen link setzen auf diese dateien.

beim anlegen der benutzer erhalten nun allen die passenden daten - könne diese aber nicht verändern.

ist ein sehr "böser" eingriff, denn die schüler können an den configurationen der browser nun nicht (oder wenig?) mehr verändern.

jengelh schrieb:
Code:
iptables -t nat -A PREROUTING ! -d 192.168.222.1 -p tcp --dport 3128 -j DNAT --to-destination 192.168.222.1:3128
iptables -t nat -A OUTPUT ! -d 192.168.222.1 -p tcp --dport 3128 -m owner ! --uid-owner squid -j REDIRECT --to-ports 3128

Den anderen Thread habe ich jetzt gelöscht.
 
Oben