# Transparenter Proxy ohne Router



## iptabler (27. August 2009)

Hallo zusammen,

ich möchte für einen Benutzer auf einer Linux Box mittel iptables einen transparenten Proxy betreiben. D.h. auf der Maschine läuft ein Squid Proxy und ich möchte, dass der Benutzer keinen Proxy innerhalb des Browsers angeben muß und die Anfragen anstelle von Port 80 auf 3128 umgeleitet werden. Der Rechner ist über WLAN mit dem Internet verbunden. 

Die Konfiguration von Squid dahingehend habe ich schon hinbekommen. Was noch fehlt sind die Firewall Regeln.  Port 80 kann ich aber nicht so einfach dicht machen, da der Proxy über den Port nach draussen geht.

Da ich zu genau so einem Anwendungsfall keine spezielle Konfiguration gefunden habe, möchte ich Euch um Hilfe bitten, um eine Firewall Konfiguration zu finden. Jemand eine Idee, wie ich sowas mit iptables konfigurieren kann?

Also nochmal zusammengefasst:
 Linux Desktop ohne Lan
 Internet über WLan (wlan0)
 transparenter Proxy mit Squid
 Port 80 für alle ausser dem Proxy geschlossen

Danke für Eure Hilfe!

Gruß
iPtabler


----------



## iptabler (29. August 2009)

Also ich bin ein bisschen weiter:


```
iptables -F
iptables -F -t nat
iptables -t nat -A output -j LOG

iptables -t nat -A OUTPUT -m owner ! --uid-owner proxy -m state --state NEW -p tcp --dport 80 -j REDIRECT --to-port 3128
```

Allerdings bekommt anscheinend das Paket nach dem Durchlaufen von Squid keine neue owner id.  Das klappt also nicht.

Auch das State funktioniert anders, als ich das annehme. Nach der Weiterleitung zum Proxy hat das Paket anscheinend immer noch den Status NEW. Ich komme also nicht durch die Firewall.

Was mache ich noch falsch?

Gruß
iptabler


----------



## iptabler (30. August 2009)

```
iptables -t nat -A OUTPUT -m owner ! --uid-owner proxy -p tcp --dport 80 -j REDIRECT --to-port 3128
```

Ich mußte zusätzlich lediglich noch ACLs für Squid hinzufügen. Localhost alleine reichte nicht mehr.


```
http_access allow localnet
acl localnet src 192.168.0.0/16
```

Gruß
iptabler


----------

