2012-06-05 4 views
7

Ich habe ein Gerät, das eine Verbindung zu einem Internetdienst auf tcp: 80 herstellen muss, aber das Netzwerk hat keinen direkten Internetzugang. Also benutze ich einen Squid-Proxy, um das zu lösen.squid proxy - howto erlauben tcp connect - get TCP_DENIAL/400 mit ERR_INVALID_DOMAIN

Das Gerät erlaubt mir, Proxyserver, Port, Benutzername und Passwort einzugeben.

Ich fand heraus, dass das Gerät HTTP CONNECT anstelle von http GET verwendet (das funktioniert gut mit meinem Browser).

Wenn das Gerät versucht, eine Verbindung, wird es einen HTTP-Fehler 400 Der Tintenfisch access.log Das gibt mir nur:

1338885433.033  0 172.22.140.129 TCP_DENIED/400 1728 CONNECT :0 - NONE/- text/html 

So gefangen ich die Pakete wirklich, um zu sehen, was los ist:

Antrag Gerät:

 
CONNECT mydomain.com:0 HTTP/1.0 
User-agent: Sequencer/5.5.0.5539 

Antwort von Tintenfisch:

HTTP/1.0 400 Bad Request 
squid/2.7.STABLE9 
X-Squid-Error: ERR_INVALID_URL 0 
close 

Meine squid.conf:

 
auth_param basic program /usr/lib/squid/pam_auth 
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 

acl all src all 
acl manager proto cache_object 
acl localhost src 127.0.0.1/32 
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 

acl localnet src 10.0.0.0/8  # RFC1918 possible internal network 
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network 
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network 

acl SSL_ports port 443   # https 
acl SSL_ports port 563   # snews 
acl SSL_ports port 873   # rsync 

acl Safe_ports port 80   # http 
acl Safe_ports port 21   # ftp 
acl Safe_ports port 443   # https 
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 Safe_ports port 631   # cups 
acl Safe_ports port 873   # rsync 
acl Safe_ports port 901   # SWAT 

acl purge method PURGE 
acl CONNECT method CONNECT 
acl checkpw proxy_auth REQUIRED 

http_access allow manager localhost 
http_access deny manager 
http_access allow purge localhost 
http_access deny purge 
http_access deny !Safe_ports 
http_access allow CONNECT 
http_access allow localnet 
http_access allow localhost 
http_access allow checkpw all 
http_access deny all 

icp_access allow localnet 
icp_access deny all 

http_port 3128 

hierarchy_stoplist cgi-bin ? 

access_log /var/log/squid/access.log squid 

debug_options ALL,1 33,2 28,9 

refresh_pattern ^ftp:   1440 20%  10080 
refresh_pattern ^gopher:  1440 0%  1440 
refresh_pattern -i (/cgi-bin/|\?) 0  0%  0 
refresh_pattern (Release|Packages(.gz)*)$  0  20%  2880 
refresh_pattern .    0  20%  4320 

acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9] 

upgrade_http0.9 deny shoutcast 

acl apache rep_header Server ^Apache 

broken_vary_encoding allow apache 

extension_methods REPORT MERGE MKACTIVITY CHECKOUT 

hosts_file /etc/hosts 

forwarded_for off 

coredump_dir /var/spool/squid 

Gibt es eine Lösung erhalten von der ERR_INVALID_URL los? Habe ich das Konzept des Squid-Proxy missverstanden oder ist die Anfrage vom Gerät ungültig?

Bitte lassen Sie mich wissen, wenn weitere Informationen benötigt werden.

Vielen Dank im Voraus, Christian.

+1

Es gibt zwei Möglichkeiten, oder die Anwendung einen Fehler hat und es sendet Port 0 oder Sie den Port ersetzt haben Informationen zu verbergen, und Sie haben den ungültigen Port gewählt :) –

Antwort

1

Ich habe es mit der Produktunterstützung des Geräts gelöst.

Sie zeigten mir eine Möglichkeit, eine detailliertere Debug-Ansicht des Proxy-Verbindungsprozesses zu ermöglichen.

Es gab eine Zeile in der Log-Datei „keine Verbindung herstellen 0.0.0.0 Relais“

Also hat ich die DNS-Server-Einstellungen des Gerätes überprüft, eine war ein Tippfehler. Das ist es.

10

aufgelöst ich die gleichen Fehler aus dem Standard squid.conf Kommentierung aus: Nicht-SSL-Ports

# Deny CONNECT to other than secure SSL ports 
#http_access deny CONNECT !SSL_ports 

standardmäßig Squid eingerichtet ist, nicht CONNECT zu ermöglichen. Wenn Sie ohne SSL testen möchten, können Sie dies deaktivieren, indem Sie die obige Zeile auskommentieren.

+0

ich dies bereits getan hat, ist es immer noch nicht funktioniert (I hasse Tintenfisch). –