PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Squid + Firewall Problem



greywolve
30.05.07, 17:10
Hallo ...
ich habe ein Problem mit Squid - und zwar kann ich keine Seite öffnen ... die Verbindung zu Squid aber funktioniert.

Config:

PC mit 2 Netzwerkkarten ... eine Inet über statische Verbindung und eine LAN

Firewall Script - Arno-Iptables-Firewall
-> Transparenter Proxy eingestellt ... Port 3128 für LAN freigegeben

Squid.conf ist so eingestellt, dass alle Anfragen erlaubt sind ...

Ein Ping vom Client auf zb google.de geht raus ... mit Antwort

Als Fehlermeldung wird im Browser folgendes gezeigt:



FEHLER
Der angeforderte URL konnte nicht geholt werden

Während des Versuches, die Anfrage

GET / HTTP/1.1
Host: www.google.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PREF=ID=8608a320494a3730:TM=1162417135:LM=11624171 35:S=zX_LqB8HCz_m69Bq



zu verarbeiten, trat der folgende Fehler auf:

* Ungültige Anfrage

Ein Teil der HTTP-Anfrage ist ungültig. Mögliche Gründe:

* Fehlende oder unbekannte Anfrage-Methode (GET, POST)
* Fehlender URL
* Fehlender HTTP Identifier (HTTP/1.0)
* Anfrage ist zu groß
* Content-Length fehlt für POST- oder PUT-Anfragen
* Ungültige Zeichen im Hostnamen - z.B. Unterstriche ('_'), Umlaute und Kommata sind nicht erlaubt.

Ihr Cache Administrator ist mailbox@domainname.de.
Generated Wed, 30 May 2007 17:53:23 GMT by 2.MV-Server.mv-Server (squid/2.6.STABLE13)



Ich hoffe mir kann hierbei jemand helfen ... verzweifle da schon fast :)

Danke im Voraus!

Blade
02.06.07, 12:15
Welche Version von squid setzt Du ein, Betriebssystem?
Poste mal den Abschnitt ACCESS CONTROLS deiner squid.conf.

Noch eine Frage, wenn Du die Firewall ausschaltest, klappt die Verbindung dann?

greywolve
02.06.07, 16:29
Hi,

danke für die Antwort ... also als Betriebssystem nutze ich das neueste Debian ... dürfte 4.0 sein ...

Die config kann ich am Montag posten ... das mit der Firewall hab ich echt noch nicht getestet, da ich vor lauter Fehler nicht daran gedacht habe .... hätt ich ja gleich drauf kommen könn' :D werd ich auch gleich am Montag testen und dann poste ich das Resultat.

greywolve
04.06.07, 11:11
hi,

wenn ich die Firewall ausschalte, geht gar nix mehr ... muss da mal schaun ob ich Zeit habe meine eigene Ip-Tables Datei zu schreiben und diese erstma recht klein halte ...

und hier noch meine Squid.conf



#/etc/squid/squid.conf
#Default:
# http_port 3128
http_port 3128
# Fuer cache_peer einen Proxy eintragen, der gegebenenfalls
# den eigenen Proxy mit dem Internet verbindet.
cache_peer [ip.ad.res.se] parent 8000 0 no-query default
#
# TAG: hierarchy_stoplist
# A list of words which, if found in a URL, cause the
# object to be handled directly by this cache. In
# other words, use this to not query neighbor caches
# for certain objects. You may list this option
# multiple times.
#We recommend you to use at least the following line.
# Naechste Zeile ist deaktiviert, weil sonst
# zum Beispiel keine Zugriffszaehler funktionieren
#hierarchy_stoplist cgi-bin ?
#
#We recommend you to use the following two lines.
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
#
#
#auth_param basic program <UNCOMMENT AND COMPLETE THIS LINE>
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
#
#
#Recommended minimum configuration:
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
# zusaetzlich eingetragene Zeilen Anfang
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # swat
acl purge method PURGE
# zusaetzlich eingetragene Zeilen Ende
acl CONNECT method CONNECT
#
# Verweis zu einer Datei, in der Ausdruecke genannt sind
# die in Webadressen gesperrt werden.
# Darin immer nur ein Wort je Zeile eintragen.
acl gesperrt url_regex -i "/etc/squid/gesperrt"
#
# ================================================== =====
# Hier die Computer eintragen, die sufen duerfen.
# Ich habe hier die Computernamen verwendet.
# Das ist noch keine Erlaubnis zum surfen!
# Die wird weiter unten gesondert erteilt!
acl computer001 src 192.168.0.1/255.255.255.255 # Hinweis
acl computer002 src 192.168.0.100/255.255.255.255 # Hinweis
# und so weiter. Als 'Hinweis' kann zum Beispiel der
# Name einer Benutzerin/eines Benutzers oder die
# Zimmernummer eingetragen werden.
# ================================================== =====
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
http_access allow Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
#
# We strongly recommend the following be uncommented to
# protect innocent web applications running on the proxy
# server who think the only one who can access services
# on "localhost" is a local user http_access
# deny to_localhost
# ================================================== =====
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS
# FROM YOUR CLIENTS
# In diesem Bereich die Erlaubnis zum Surfen erteilen
# und dabei die Kennungen von oben verwenden!
# Die naechste Zeile weist auf eine Datei, mit der
# bestimmte Inhalte gesperrt werden koennen.
# Datei in /etc/squid/gesperrt
# Liste der in der www-Adresse gesperrten Ausdruecke.
# Darin ein Wort je Zeile eintragen
http_access deny gesperrt
#
# Ab hier wird die Erlaubnis zum Surfen gegeben.
http_access allow computer001
http_access allow computer002
# und so weiter
# ================================================== =====
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where
# browsing should be allowed
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks
http_access allow localhost
#
# And finally deny all other access to this proxy
http_access deny all
#
# TAG: http_reply_access
#
# and finally allow by default
http_reply_access allow all
#
# TAG: icp_access
#Allow ICP queries from everyone
icp_access allow all
#
# ADMINISTRATIVE PARAMETERS
# ---------------------------------------------------------
#
# TAG: cache_mgr
# Email-address of local cache manager who will receive
# mail if the cache dies.
# The default is $quot;webmaster."
# Eine Emailadresse eintragen, die bei Fehlermeldungen
# angezeigt wird.
#Default:
# cache_mgr webmaster
cache_mgr mailbox@domainname.de
#
# MISCELLANEOUS
# ---------------------------------------------------------
#
# TAG: dns_testnames
# The DNS tests exit as soon as the first site is
# successfully looked up
#
# This test can be disabled with the -D
# command line option.
#Default:
# dns_testnames netscape.com internic.net
# nlanr.net microsoft.com
#
# TAG: logfile_rotate
#Default:
# logfile_rotate 0
logfile_rotate 5
#
# TAG: never_direct
#Default:
# none
#never_direct deny netzkah
never_direct allow all
#
# TAG: coredump_dir
# By default Squid leaves core files in the directory
# from where it was started. If you set 'coredump_dir'
# to a directory that exists, Squid will chdir() to
# that directory at startup and coredump files will
# be left there.
#
#Default:
# coredump_dir none
#
# Leave coredumps in the first cache dir
coredump_dir /var/cache/squid
#
# TAG: error_directory
# If you wish to create your own versions of the default
# (English) error files, either to customize them to suit
# your language or company copy the template English
# files to another directory and point this tag at them.
#
# Fehlermeldungen des Systems auf Deutsch stellen.
# Die Dateien koennen inhaltlich bearbeitet werden.
#Default:
# error_directory /usr/share/squid/errors/English
error_directory /usr/share/squid/errors/German
#

eule
04.06.07, 11:27
acl gesperrt url_regex -i "/etc/squid/gesperrt"
Nimm mal solche Sachen raus. Immer nur eine Einstellung zur Zeit machen und diese testen. Ansonsten verliert man schnell die Uebersicht und weiss nicht, welche Einstellung den Fehler verursacht.

greywolve
04.06.07, 15:40
ich weiss auch nicht woran das liegen mag ...
denke aber, daß es ein Firewall Problem ist, da ich ja ohne Proxy surfen kann über standard Port 80 ... hmm

Blade
04.06.07, 17:22
http_access deny !Safe_ports
http_access allow Safe_ports
Den Eintrag verstehe ich nicht. Lösche mal http_access allow Safe_ports ganz weg.

Trage dies Erlaubnis:


http_access allow computer001
http_access allow computer002 vor den allow-Eintrag:

http_access allow manager localhost ein.

Noch ein Hinweis zum Schluss, wenn Du die Config von squid geändert hast startest Du squid neu oder nutzt den Befehl "-k reconfigure", so dass die Modifikationen von squid auch genutzt werden.

greywolve
05.06.07, 20:09
hab ich geändert ... aber keine Auswirkung ...

welche Ports muss ich denn eigentlich alles freigeben?
Habe bisher Port 53 freigegeben für DNS LAN und WAN
Port 113 für auth LAN und WAN und Port 3128 für Proxy LAN

hab ich da was vergessen? Will bisher nur den HTTP Traffic erlauben.

bla!zilla
05.06.07, 20:13
53 und 113 musst du nicht über den Proxy freigeben. Normalerweise sollte nur der Server DNS Anfragen nach außen stellen dürfen, die Clients sollen einfach nur den Proxy nutzen und müssen keinen externen DNS fragen können.

greywolve
05.06.07, 20:17
ich frag mich nur wieso der squid nicht die Anfrage verarbeiten kann ...
Also ohne Transparenten Proxy ... nur per Gateway funktioniert ja alles ... zum verzweifeln

Blade
05.06.07, 20:25
Du hast zu viele Veränderungen an der Cofig vorgenommen, da ist es schwer das Problem einzukreisen.

Mein Tipp: Nimm ne ganz jungfräuliche Config und ändere sie Schritt für Schritt ab und lass Testphasen darüber ablaufen.

greywolve
05.06.07, 20:28
hmm ... kann ich nicht einfach ne eigene squid.conf schreiben, in der ich nur den http_port und die Authentifizierung reinschreibe? oder brauch der da mehr angaben ... ansonsten würd ich das einfach so probieren ... Port angeben und Authentifizierung -> alle erlauben ... sollte ja dann funktionieren???

greywolve
05.06.07, 20:56
so ... ein kleiner Erfolg ...
Ich denke, es liegt an der Firewall oder ähnlichen ... hab jetzt mir mal schnell ein iptables-script gebastelt, in dem ich Masquerading erlaube und den Port 80 intern auf 3128 umleite

als Resultat hierbei: Ich kann google öffnen, per google suchen etc ... aber: keine andere Seite öffnen ... nur google ... ansonsten kommt wieder der besagte Fehler ... hmm :(

greywolve
12.06.07, 13:39
so bin mal wieder ein kleines Stück weiter gekommen.
Also der Squid funktioniert ... nur das mit dem Redirect Port von 80 auf 3128 scheint dem Squid oder sonst wem Probleme zu bereiten.

1. Wenn ich im Browser den Proxy direkt angebe 192.168.1.1 Port 3128
funktioniert alles wunderbar....
2. Wenn ich den Squid als Transparenten Proxy einstelle (über die Firewall per Redirect Port 80 auf 3128 von 192.168.1.0/24) kommt die oben gepostete Fehlermeldung....

Ich weiss nur nicht was ich noch einstellen kann oder muss ...

greywolve
12.06.07, 16:17
so .. Problem gelöst! ... endlich

hab irgendwie die Option in der squid.conf übersehen ...

hatte "http_port 3128"

und es muss "http_port 3128 transparent"
heißen.

Jedenfalls geht es endlich ...

Dann nochmals Danke für die Hilfe!!!

Gruß
B.Braun