PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : squid v2.6 stable als transparenten proxy



michaxyz
31.08.06, 15:17
Hallo,

ich habe auf Debian Sarge einen squid (Version s. oben) laufen. Zusätzlich soll noch squidguard zum Einsatz kommen. Ich habe eine ältere Squidversion (2.4?) auf einer Redhatmaschine laufen, die der s.6 ersetzen soll.
Naiv, wie ich bin, dachte ich, einfach die squid.conf übernehmen zu können. Leider klappte das nicht, diverse Einträge wurden bemängelt, die mit dem transparenten Proxy zu tun haben.
Mittlerweile habe ich einfach diese durch sowas wie
http_port 3128 transparent ... vport 80 ersetzt und eine Filterregel der Art
-t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT 3128
gesetzt. Dann versuche ich per Kommandozeile mittels wget diverse Sites. Ergebnis immer:

wget heise.de
--15:11:20-- http://heise.de/
=> `index.html'
Auflösen des Hostnamen »heise.de«.... 193.99.144.80
Verbindungsaufbau zu heise.de|193.99.144.80|:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 503 Service Unavailable
15:11:21 FEHLER 503: Service Unavailable.

Der Squidguard soll nicht jugendfreie Seiten filtern (Einsatz in einer Schule). Interessanterweise lifert wget sex.de:

root@natalia:~# wget sex.de
--15:12:48-- http://sex.de/
=> `index.html'
Auflösen des Hostnamen »sex.de«.... 62.214.73.93
Verbindungsaufbau zu sex.de|62.214.73.93|:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 302 Moved Temporarily
Platz: http://ratsgymnasium-pe.de/idesk/inet/block.php?grp=adult&url=http://sex.de/ [folge]
--15:12:50-- http://ratsgymnasium-pe.de/idesk/inet/block.php?grp=adult&url=http://sex.de/
=> `block.php?grp=adult&url=http:%2F%2Fsex.de%2F'
Auflösen des Hostnamen »ratsgymnasium-pe.de«.... 84.130.78.47
Verbindungsaufbau zu ratsgymnasium-pe.de|84.130.78.47|:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 503 Service Unavailable
15:12:50 FEHLER 503: Service Unavailable.

Erläuterung: ratsgymnasium-pe.de ist unsere Domain. Dies zeigt mir, dass der Guard reagiert, sex,de blocken will und dann die üblichen Probleme hat, die Seite zu bekommen.

Weiß jemand, woran das liegen kann?

Vielen Dank im Voraus für eure Unterstützung.

Mfg Michael

Anbei unsere squid.conf:



cat /etc/squid/squid.conf
# Squid v2.4.STABLE6-6.7.3 configuration for IServ

# Zugriff nur aus dem lokalen Netz erlauben
http_port 3128 transparent defaultsite=virtual vhost vport=80

# Cachegröße 100 MByte
cache_dir ufs /var/spool/squid 100 16 16

# Log wie Apache formatieren, nutzloses store.log deaktivieren
emulate_httpd_log on
cache_store_log none
access_log /var/log/squid/access.log

# Beliebig große Uploads
request_body_max_size 0

# Transparenter Proxy---------Dies sind ehemaligen und bemängelten Einträge
# httpd_accel_host virtual
# httpd_accel_port 80
# httpd_accel_with_proxy on
# httpd_accel_uses_host_header on

# Keine Wartezeit beim Beenden
shutdown_lifetime 0 seconds

# Dynamische Anfragen nicht cachen
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

# ACLs
# Cache-Verwaltung nur von localhost
acl localhost src 127.0.0.1/255.255.255.255
acl manager proto cache_object
http_access allow manager localhost
http_access deny manager

# Zugriffe auf unsichere Ports verbieten
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
http_access deny !Safe_ports

# SSL-Zugriffe auf nicht-SSL-Ports verbieten
acl CONNECT method CONNECT
acl SSL_ports port 443 563
http_access deny CONNECT !SSL_ports

# Den Rest erlauben
acl all src 0.0.0.0/0.0.0.0
http_access allow all
icp_access allow all

# SquidGuard einbinden
redirect_program /usr/bin/squidGuard
redirect_children 1

mbo
01.09.06, 09:51
Naiv ins Blaue geschossen:

Da Du alle Pak[!]ete an Port 80 nach 3128 redirectes und keinen Unterschied bei Quelle und Ziel machst, könnte das ein Loop sein?

Was sagt parallel dazu eigentlich die access.log von squid?

cu/2

centera
01.09.06, 10:32
IPTABLES:


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

SQUID-CONFIG (einfach die folgenden Werte anpassen)


* httpd_accel_host virtual
* httpd_accel_port 80
* httpd_accel_with_proxy on
* httpd_accel_uses_host_header on

mehr muss man nicht machen. Hab ich erste vor ein paar Tagen auf meiner Box gemacht und das klappt super!

Das Manual dazu findest du hier (http://www.tldp.org/HOWTO/TransparentProxy.html#toc4)

Du hast btw alle relevanten Settings in deiner Config auskommentiert ;)

michaxyz
12.09.06, 11:57
Hallo zusammen,

danke erst einmal für eure Antworten.

@centera:

Ich habe leider nicht die relevanten Einträge auskommentiert. Im posting schrieb ich, dass wir von 2.4 auf 2.6 rauf sind. Während diese Einträge bei 2.4 noch funktionierten, führten sie bei 2.6 zu Fehlermeldungen bzw. Warnungen. Trotzdem danke.

@mbo:

Hm, wir haben hier auch mal versucht, Pakete feiner zu filtern. Vielleicht mal zur Netzwerktopologie:
Internet kommt über DSL-Router rein, dahinter mehrere Switches/Clients. Die Anfragen kommen logischerweise aus dem LAN. Soll ich da also vielleicht mal die Pakete nach Herkunft (Lan) filtern? Also so was wie:
-t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT 3128
Allerdings kann ich mich daran erinnern, dass das irgendwie auch nicht geklappt hat... mal sehen, man kanns ja mal versuchen.
Also, die Quelle LAN hat keine Veränderung gebracht. Die Squid-Box auszunehmen auch nicht. Zur acces.log:
192.168.0.8 - - [HIER eine ZEITangabe] "GET http://heise.de" HTTP/1.0 503 1656 TCP_MISS:NONE
Das entspricht so in etwa der Rückgabe von wget, mit dem ich es über eine lokale Box versuche...
Sonst noch Vorschläge?

Achja, eine Sache noch: Sorry erst einmal dafür, dass ich mich so lange nicht gemeldet habe. Ist gerade recht stressig bei mir :-)

Mfg MIchael