Cisco PIX/ASA Firewall mit transparentem squid Proxy

squidEine Cisco PIX/ASA Firewall bietet die Möglichkeit das HTTP Protokoll transparent an einen Proxy Server weiterzuleiten. Die Anbindung an einen Proxy Server wird mit WCCP (Web Cache Communication Protocol) und einem gre (Generic Routing Encapsulation) Tunnel realisiert. Damit das mit einem squid Proxy funktioniert sind einige Vorbereitungen notwendig.

Aufbau Netzwerk

Für die Einrichtung wird folgender Aufbau angenommen:

pix/asa_squid
pix/asa_squid

Die Cisco PIX/ASA Firewall hat am internen Interface (inside) die IP Adresse 192.168.0.254. Der squid Proxy Server läuft auf einem linux System mit der IP Adresse 192.168.0.253. Die Clients befinden sich auf dem selben Netzwerksegment wie der Proxy Server.

Einstellungen linux

gre Tunnel

Für den gre Tunnel Aufbau muss das Modul ip_gre geladen sein. Da die Netzwerkpakete verpackt werden, kann es zu Problemen mit zu großen Paketen im Tunnel kommen. Um dies zu vermeiden setzen wir die MTU auf den Schnittstellen herunter.

modprobe ip_gre
iptunnel add gre0 mode gre remote 192.168.0.254 \
        local 192.168.0.253 dev eth0
ifconfig gre0 192.168.0.253/32 up
 
ifconfig eth0 mtu 1472
ifconfig gre0 mtu 1472

iptables Regel

Auf dem Tunnel Interface aktivieren wir mit iptables eine Umleitung für alle Netzwerkpakete mit Zielport 80, an den lokalen squid Server Port 3128.

iptables -A INPUT -i gre0 -j ACCEPT
iptables -t nat -A PREROUTING -i gre0 -d 0/0 -p tcp --dport 80 \
                -j DNAT --to-destination 192.168.0.253:3128

Routing und Filter Einstellungen

Wir aktivieren routing und zusätzlich deaktivieren wir auf den genutzten Netzwerkschnittstellen die rp filter und tcp windows scaling.

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "0" > /proc/sys/net/ipv4/tcp_window_scaling
echo "0" > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/gre0/rp_filter

Das linux System ist nun bereit den Webtraffic von der Cisco PIX/ASA an den squid weiterzuleiten.

Einstellungen squid

In der Konfigurationsdatei muss noch der transparente Proxy an dem Port 3128 aktiviert werden. Zusätzlich müssen wir noch die Adresse des wccp2 Routers angeben.

http_port 3128 transparent
wccp2_router 192.168.0.254

Einstellungen PIX/ASA

Gruppe der Proxy Server

Der Proxy Server wird in einer access-list z.B. WEB_CACHES definiert.

access-list WEB_CACHES extended permit ip host 192.168.0.253 any

Weitere Proxy Server können durch ergänzen der access-list hinzugefügt werden.

Weiterleitungsregeln

Damit der Webtraffic an den Proxy Server weitergeleitet wird, definieren wir in einer zweiten access-list z.B. WEB_CACHE_ACCESS den Typ Pakete der weitergeleitet werden soll. Hierbei machen wir eine Ausnahme für die eingesetzten Proxy Server.

access-list WEB_CACHE_ACCESS extended deny ip host 192.168.0.253 any
access-list WEB_CACHE_ACCESS extended permit tcp any any eq www

Web Cache Communication Protocol

Zuguterletzt aktivieren wir das wccp Protokoll zum Proxy Server.

wccp web-cache redirect-list WEB_CACHE_ACCESS group-list WEB_CACHES
wccp interface inside web-cache redirect in

Die Cisco PIX/ASA leitet nun bei Verfügbarkeit der Proxy Server, den gesamten Verkehr zu Port 80 an den squid Proxy Server weiter.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.