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

[gelöst] Squid läuft nicht als Transparenter Proxy?

Hi und Hallo,
also ich hab mir einen Proxy eingerichtet. Wenn ich bei meinem Clienten die zugangsdaten manuell eingebe, dann ist das alles kein Problem. Aber sobalt ich den Clienten umstelle auf "Automatische Suche der Einstellungen" also auf den Transparenten Proxy umschalte, kommt immer die Fehlermeldung von Squid.

------------------<Anfang Squid Fehlermeldung>-----------------

ERROR
The requested URL could not be retrieved

--------------------------------------------------------------------------------

While trying to retrieve the URL: http://www.gmx.de/

The following error was encountered:

Connection Failed
The system returned:

(111) Connection refusedThe remote host or network may be down. Please try the request again.

Your cache administrator is webmaster.



--------------------------------------------------------------------------------

Generated Mon, 01 Dec 2003 07:34:55 GMT by lserver.susega (squid/2.5.STABLE3)

------------------<Ende Squid Fehlermeldung>-----------------

und ich weiß einfach nicht warum... ich sitze an diesem problem schon über 1 Woche.

Also ich benutze:
Suse 9.0 Proffesional und Squid 2.5.STABLE3

ich lasse meine Internetpackete mit dem Befehl
-iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
umleiten.

Meine Squidconfig sieht so aus:

------------------<Anfang der Squid.conf>-----------------

# Http -Port freigabe
http_port 3128
# Verhindert SSL Shutdown fehler bei MSI
ssl_unclean_shutdown off
# Freigabe der ICP Nummer
icp_port 3130
# Freigabe des htcp Ports
htcp_port 0
# Angaben zum ICP Protokoll
udp_incoming_address 0.0.0.0
udp_outgoing_address 255.255.255.255
icp_query_timeout 0
maximum_icp_query_timeout 2000
mcast_icp_query_timeout 2000
dead_peer_timeout 10 seconds
# Eine Liste mit Wörter die direkt durch den Pufferspeicher behandelt werden
hierarchy_stoplist cgi-bin ?
# Dateien mit Wörter die nicht im Cache gelagert werden
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
# Chache Angaben
cache_mem 8 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
cache_replacement_policy lru
memory_replacement_policy lru
memory_replacement_policy lru

# Angabe der Logdateien (z.B. Speicherorts der Logdateien)
cache_access_log /benutzer/proxyserver/logfiles/access.log
cache_log /benutzer/proxyserver/logfiles/cache.log
cache_store_log /benutzer/proxyserver/logfiles/store.log
emulate_httpd_log off
log_ip_on_direct on
mime_table /etc/squid/mime.conf

log_mime_hdrs off
pid_filename /var/run/squid.pid
debug_options ALL,1
log_fqdn off
client_netmask 255.255.255.255
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
authenticate_ip_ttl 60 seconds
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

# Definition der einzelnen Benutzer
acl itsen src 192.168.10.76-192.168.10.89/255.255.255.255
acl rinke src 192.168.10.2/255.255.255.255
acl komm src 192.168.10.31-192.168.10.34/255.255.255.255
acl multi src 192.168.10.140/255.255.255.255
acl all src 0.0.0.0/0.0.0.0


acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
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
acl CONNECT method CONNECT

# Internetfreigabe der einzelnen Gruppen
http_access allow rinke
http_access allow itsen
http_access allow komm
http_access allow multi
http_access deny all

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_reply_access allow all
icp_access allow all

# Angaben für den Transparenten Proxy
httpd_accel_host lserver.susega
httpd_accel_port 0
httpd_accel_single_host on
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
coredump_dir /var/cache/squid
dns_nameservers 192.168.10.99

------------------<Ende der Squid.conf>-----------------

Ich habe auch noch einen DNS-Server eingerichtet der hat die Einstellungen:

directory "/var/lib/named"
dump-file "var/log/named_dump.db"
forwarders {212.185.253.136; 192.168.10.99}
listen-on-v6 {any}
notify no
statistics-file "var/log/named.stats"

So ich hoffe hier kann mir jemand helfen, oder zumindest sagen, wie er einen Transparenten Proxy eingerichtet hat.

Cu Klaus
 

moenk

Administrator
Teammitglied
Da liegt mir vor ein Verständnisproblem vor: Transparenter Proxy heisst dass im Browser gar nichts eingestellt werden muss. Der Squid wird dann von der Firewall angesprochen, der User versucht aus seiner Sicht ohne Proxy ins Internet zu gehen. Dazu ist der Proxy-Server mit seiner IP als Gateway eingestellt.
Das mit der automatischen Suche verwendet ein PAC-File, das ist etwas anderes, hab ich aber noch nie ausprobiert.
 

Rotznase

Member
Hallo,
und genau da ist mein Problem. Ich habe heute mal versucht (nachdem ich dies hier gelesen hatte) den squid als transparenten Proxy laufen zu lassen, weil es ja sonst blödsinn ist. Jeder User kann ja dann de Browser umstellen und dann ist die tolle Blacklist auch fürn Ar.....

Ich bin nach dem Adminhandbuch von SL 8.2 vorgegangen, hab in der squid .conf die Sachen eingestellt und mich dann an die config der Firewall2 gemacht. Dort bekam ich dann die Probleme.
Der Abschnitt "15" hat mich dann doch schon sehr verwirrt.

Ich hab hier nur einen Computer den ich mit squid als lokalen, transparenten proxy laufen lassen möchte. Wie ich dies jedoch im Abschnitt 15 einstellen soll ist mir noch ein wenig zu hoch.

Kann mir da mal bitte einer helfen, der sich da besser auskennt als ich? Dankeschön...

gunnar
 

Triton

Member
youareright schrieb:
Hi und Hallo,
also ich hab mir einen Proxy eingerichtet. Wenn ich bei meinem Clienten die zugangsdaten manuell eingebe, dann ist das alles kein Problem. Aber sobalt ich den Clienten umstelle auf "Automatische Suche der Einstellungen" also auf den Transparenten Proxy umschalte, kommt immer die Fehlermeldung von Squid.
Cu Klaus

Diese Einstellung kann mit Squid nicht funktionieren.
Damit Du dieses Feature benutzen kannst brauchst Du einen Microsoft Windows ISA-Server. Der ISA-Server enthält einen Windows Proxy-Server und der schickt dann per SMB-Calls ins Netz wer der Windows Proxy ist.

Das hat nichts "Squid als Transparenter Proxy" zu tun.
Der Squid läuft immer transpartent was die Kommunikation vom Browser zum Zielrechner angeht, nicht die Konfiguration vom Browser.

Warum reicht die manuelle Einstellung im Browser denn nicht aus?

Gruss
 

Triton

Member
moenk schrieb:
Das mit der automatischen Suche verwendet ein PAC-File, das ist etwas anderes, hab ich aber noch nie ausprobiert.

Dann speichern unter :

/srv/www/htdocs/proxy.pac - Apache muss lokal laufen
Dann im Browser eintragen http://localhost/proxy.pac .

function FindProxyForURL(url, host)
{
if (url.substring(0, 4) == "urn:")
return "PROXY 192.168.1.1:3128";
if (url.substring(0, 5) == "http:")
return "PROXY 192.168.1.1:3128";
if (url.substring(0, 6) == "https:")
return "PROXY 192.168.1.1:3128";
if (url.substring(0, 4) == "ftp:")
return "PROXY 192.168.1.1:3128";
if (isPlainHostName (host))
return "DIRECT";

Der 192.168.1.1 ist dann der Proxy-Server Squid etc. der auf Port 3128 hört.

Gruss
 

Rotznase

Member
Hallo,
also wenn man im Browser den Proxy einstellt dann dauert es nicht lange und die Einstellung ist gleich wieder raus wenn z.B ein Schüler vor dem PC hockt.
Squid läuft transparent = unsichtbar wenn der User nicht bemerkt, dass er über einen Proxy surft. Deshalb auch der Name.

Und um Squid transparent laufen lassen zu können muß man eigentlich nur sein Admin Handuch von SuSE nehmen und das was drinsteht auch umsetzen (können ;-).


himmst
 

moenk

Administrator
Teammitglied
Was muss denn nun für einen transparenten Proxy zu den Firewall-Regeln, die in der SuSEFirewall2 schon auskommentiert drin stehen noch gemacht werden?
Code:
#  TAG: httpd_accel_uses_host_header	on|off
#	HTTP/1.1 requests include a Host: header which is basically the
#	hostname from the URL.  The Host: header is used for domain based
#	virutal hosts. If your accelerator needs to provide domain based
#	virtual hosts on the same IP address then you will need to turn this
#	on.
#
#	Note that Squid does NOT check the value of the Host header matches
#	any of your accelerated server, so it may open a big security hole
#	unless you take care to set up access controls proper.  We recommend
#	that this option remain disabled unless you are sure of what you
#	are doing.
#
#	However, you will need to enable this option if you run Squid
#	as a transparent proxy.  Otherwise, virtual servers which
#	require the Host: header will not be properly cached.
#
#Default:
# httpd_accel_uses_host_header off
Erscheint mir aber nicht so wichtig. Dann:
Code:
#  TAG: ie_refresh	on|off
#	Microsoft Internet Explorer up until version 5.5 Service
#	Pack 1 has an issue with transparent proxies, wherein it
#	is impossible to force a refresh.  Turning this on provides
#	a partial fix to the problem, by causing all IMS-REFRESH
#	requests from older IE versions to check the origin server
#	for fresh content.  This reduces hit ratio by some amount
#	(~10% in my experience), but allows users to actually get
#	fresh content when they want it.  Note that because Squid
#	cannot tell if the user is using 5.5 or 5.5SP1, the behavior
#	of 5.5 is unchanged from old versions of Squid (i.e. a
#	forced refresh is impossible).  Newer versions of IE will,
#	hopefully, continue to have the new behavior and will be
#	handled based on that assumption.  This option defaults to
#	the old Squid behavior, which is better for hit ratios but
#	worse for clients using IE, if they need to be able to
#	force fresh content.
#
#Default:
# ie_refresh off
Dazu kein Kommentar ;-)
Also muss das doch im Prinzip so direkt laufen, so wie der Proxy es immer tut. Ich brauch sowas die nächsten Tage, dann werd ichs wissen.
 

wenf

Hacker
habe hier auch einen squid - proxy am start
natürlich hidden

(bei den clients steht nichts in der Konfiguration des Browsers)
automatische suche ist deaktiviert (braucht mann auch nicht)

meine Firewall am gateway (welches liebevoll STARGATE genannt wird) hat folgende Regel

$IPTABLES -t nat -A PREROUTING -i $INTIF -p TCP --sport $p_high --dport 80 -j DNAT --to-destination ${SQUIDSERVER}:3128


und das funst wunderbar

nur bei https muß man aufpassen, denn da würde ein hidden proxy ein man-in-the-middle Angriff darstellen und deswegen muß man bei clients für https den Proxy -Server einstellen
 

moenk

Administrator
Teammitglied
Läuft bei mir nun auch prima. Dabei hat mir dies hier geholfen: http://mitglied.lycos.de/willy_94/proxy.htm
 
Oben