# Squid auf Rechner --> gleichzeitig Router

## Tinitus

Hallo,

ich habe einen Rechner, der über eth0 mit einem Router ans Internet angeschlossen ist.

Über br0 (also die 2. Netzwerkkarte) will ich nun squid transparent freigeben.

Mein Problem: Wie verhindere ich den Zugriff von local und vom lokalen Netz am Proxy vorbei? 

Das Problem müßte ja mit IPTABLES zu lösen sein..bloß wie?

Wie geht das Portforwarding einzuschalten für IPV6?

G. Roland

----------

## slick

 *Tinitus wrote:*   

> Wie verhindere ich den Zugriff [...] vom lokalen Netz am Proxy vorbei?

 

ungetestet aus dem Kopf (alle geforwardeten Pakete aus dem LAN auf externen Zielport 80 verwerfen)

```
iptables -A FORWARD -o eth0 -p tcp --dport 80 -j DROP
```

(Schöner ist ... -j REJECT wenn der Kernel das hergibt)

Von local aus wirds was kniffliger, weil da nicht die FORWARD Chain durchlaufen wird. Es gab mal einen Owner-Match der hier geholfen hätte, aber der ist wohl nicht mehr in aktuellen Kerneln. (IMHO) Aber evt. findest mit diesem Hinweis etwas.

http://www.linux-noob.com/forums/index.php?/topic/1180-how-to-block-local-users-ports-and-ips/

http://blog.remoteshell-security.com/index.php?/archives/23-Der-Owner-Match-von-Iptables-Staerken-und-Schwaechen.html

Logischer Ablauf müßte sein:

- gib Traffic auf externen Port 80 von Prozess o. User "squid" frei

- sperre externen Port 80 für den Rest

----------

## bbgermany

Hi,

besserer Ansatz ist der Transparente Proxy:

Squid <2.7 Konfiguration:

```

httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_with_proxy on

httpd_accel_uses_host_header on

```

Squid >=2.7 Konfiguration:

```

http_port 3128 transparent

```

Und dann iptables:

```

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

```

Wenn du dann einen speziellen Rechner rausnehmen möchtest, dann kannst du den auch noch in die Regel mit:

```

--source ! <ip-adresse>

```

einfügen.

Lokal sollte es dann ähnlich gehen.

MfG. Stefan

----------

