SQUID = Zugriff verweigert :-(

Lord_Icon

Member
Hi,

ich habe vorhin Squid über Yast (Suse 10.3) installiert.
In der Firewall hab ich Squid auf freigegeben.
Im Brower (Client = @home) hab ich dann meine IP vom Server eingetragen (im Proxy).

Der Config wurde von YAST bereits selbstständig gefüllt.
Laut Docs soll man es so lassen und seine eigenen Einstellungen hinzufügen.
Was ich auch gemacht habe.

Ich habe die MAC Addy von meiner Fritz.Box und von mein Client eingefügt, da ich nicht genau weiß, wer von den beiden auf den Server anfragt.
(Zeile 1+2)

Code:
acl mac arp 00:1C:13:46:48:77 00:1D:13:48:67:CF
http_access allow mac

#AB HIER UNVERÄNDERT (DEFAULT)
http_port 8080
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20 10080
refresh_pattern ^gopher: 1440 0 1440
refresh_pattern . 0 20 4320
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
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_access allow localhost
icp_access allow all
coredump_dir /var/cache/squid
cache_dir ufs /var/cache/squid 100 16 256
cache_log /var/log/squid/cache.log
cache_mem 8 MB
cache_mgr info@domain.de
cache_replacement_policy lru
cache_store_log /var/log/squid/store.log
cache_swap_high 95
cache_swap_low 90
client_lifetime 1 days
connect_timeout 2 minutes
emulate_httpd_log off
error_directory /usr/share/squid/errors/German
ftp_passive on
maximum_object_size 4096 KB
memory_replacement_policy lru
minimum_object_size 0 KB


DAS geht irgendwie nicht.

Trage ich aber ZUSÄTZLICH folgende 2 Zeilen hinzu, klappt alles:
Code:
acl ip src 88.xxx.197.xxx
http_access allow ip

Aber das is nicht wirklich das wahre, andauernd meine 24h IP rauszusuchen und die einzutragen.

Kann einer Helfen, warum meine MAC nicht gefressen wird ?
Hab ja schon beide eingetragen, die hierfür in Frage kommen könnten
 
Last edited by a moderator:
Ähm, eine MAC ist Layer2 - nicht Layer3.
Du müßtest die MAC des letzten Routers vor Deinem Server eintragen.
 
hmm... da wird es jetzt wohl schwierig.

Denn der Server steht ja im Rechenzentrum. Da kenne ich nur meine eigene Struktur.
Meine Server sind an ein Switch angebunden. Da dieser mein Eigentum ist, könnte ich da die MAC noch rausbekommen.

Ein Router wird aber das RZ selbst sicherlich auch "unterhalten"... hier wird es dann wohl kaum möglich sein, dessen MAC Addy rauszubekommen.
(hmmm... kann Wireshark da was reißen ?)

Reicht auch der Switch oder muß es der letzte Router sein ?
 
Moin

Vergiss das ganz schnell. Das kommt in jedem Fall ein Open-Proxy bei raus.

Entweder Du besorgst Dir eine statische IP für deinen Zugang oder Du verwendest ein VPN zwischen deinem Netz/Rechner und dem Server.

OpenVPN läßt sich schnell und sicher einrichten und Du musst den Squid nicht auf der öffentlichen IP lauschen lassen. Du kannst dann in der squid.conf einfach die lokale IP deines Rechners freigeben.
 
ahja.... oki. Danke für den Hinweis.
DAS wollte ich dann natürlich nicht. (Open-Proxy)

Eine VPN ist mir aber zu aufwendig, da ich mich mit dieser Materie erstmal beschäftigen muß.

Eine andere Idee, die ich gestern beim durchstöbern diverse HowTo's gekommen bin ist das mit dem Passwort Schutz.

Allerdings sind die Anleitungen alle aus den Jahren 2000 - 2004.
ergo mit passwd... und heute müßte es passwd2 lauten.
Aber das hab ich noch hinbekommen.

Allerings stimmen die Einträge in der squid.conf nicht.
Zumindest wird nach kein PAsswort gefragt :-(

Hat da einer ein Hinweiss oder kann mir seine conf mal posten?
ggf. ein aktuelles Howto ?
 
Code:
auth_param basic program /usr/sbin/ncsa_auth /etc/squid/squid.passwd
auth_param basic children 2
auth_param basic realm Internetzugang Mitarbeiter
auth_param basic credentialsttl 2 hours

acl valid-password proxy_auth REQUIRED

http_access allow src-net-trusted
http_access allow src-net-other valid-password

src-net-trusted ist ohne Paßwort, das andere mit.

Falls Dein Heimrechner einen DynDNS-Namen hat, könnte man auch über den authentifizieren.

Top-Lösung wäre natürlich ein VPN.
 
Danke Whistler.... damit komme ich schon ein Stück weiter.

Hab auch schon ein paar Parameter nachgeschlagen.
Allerdings mußt du was vergessen haben.

Shutting down WWW-proxy squid 2009/07/14 15:48:44| ACL name 'src-net-other' not defined!
FATAL: Bungled squid.conf line 8: http_access allow src-net-other valid-password

Gut... dachte ich mir, das <src-net-other> der Username ist, die ich mit passwd2 erstellt habe. Ergo... geändert nach mein Username.

Sieht jetzt so aus:
Code:
auth_param basic program /usr/sbin/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 2
#auth_param basic realm Internetzugang Mitarbeiter
auth_param basic credentialsttl 2 hours

acl valid-password proxy_auth REQUIRED

http_access allow test valid-password

Aber leider ist bleibt das Problem bestehen.


Wofür steht denn eigendlich:
Code:
auth_param basic realm Internetzugang Mitarbeiter

Ich finde im Web nur diverse conf Beispiele... meist so:
Code:
auth_param basic realm AUTH Squid Proxy Server - please login for internet access

Scheint ja so ein Hinweisstext zu sein... also wenn die Passwortabfrage kommt.


EDIT: wo ist denn dein ACL für <src-net-other>.
 
Last edited by a moderator:
Die ACLs mußt Du natürlich passend für Deine Bedürfnisse definieren :confused:

Zum Beispiel:
Code:
acl src-net-trusted src 192.168.1.0/255.255.255.0
acl src-net-other src 192.168.2.0/255.255.255.0
 
Stimmt... diesbezüglich hab ich was in den Howto's gelesen.

Aber für mein Vorhaben nicht unbedingt, da 24Stunden IP.

Kann ich denn ein ACL nicht ohne eine Bedingung deklarieren?


Ziel ist es, das ALLES gespeert ist, ausser man hat en Username + Passwort.
 
Dafür gibt es (in der Default-Deispielkonfiguration vom Squid) die ACL "all".

Code:
acl all src 0.0.0.0/0.0.0.0
http_access allow all valid-password

Wie schon angedeutet kannst Du auch auf einen Host- bzw. Domainnamen matchen, der z.B. mit DynDNS auf Deine aktuelle IP zeigt.
Das ist aber unsicher, falls Dir die IP "wegfliegt" und Du sie bei DynDNS nicht mehr aktualisieren kannst.
Alternativ eben OpenVPN, wobei Squid dann nur auf den serverseitigen Tunnelendpunkt reagiert.
 
SUPER... DAS WORKS...

Ich hab jetzt folgendes zusätzlich zur Default Einstellung drin.

Code:
auth_param basic program /usr/sbin/ncsa_auth /etc/squid/squid_passwd
auth_param basic children 2
auth_param basic realm Squid proxy-caching web server
auth_param basic realm Bitte Benutzername und Passwort eingeben:
auth_param basic credentialsttl 2 hours

acl valid-password proxy_auth REQUIRED
acl all src 0.0.0.0/0.0.0.0
http_access allow all valid-password

Es wird beim Seitenaufruf jetzt auch nach Passwort + Username gefragt.
Also so wie ich es wollte.

ICh danke dir zwar für den zusätzlichen Tipp mit der VPN und DynDNS Möglichkeit... aber du hast das jetzt in jeden Posting erwähnt, das ich nun denke, das das ein wichtiger Hinweiss sein soll. Ggf. Sogar ein Sicherheitshinweis.

Prinzipiell sollte der Proxy doch jetzt "dicht" sein und Hackern nicht erlauben diesen zu Mißbrauchen. Zumindest nicht ohne Passwort. Und das ist 12 Stellig... und somit recht sicher.

Mittels <sarg> werd ich auch den anfallen Traffic regelmässig prüfen.
SOLLTE doch soweit alles im grünen Bereich sein. Oder sieht das jm. anders ?
 
SOLLTE doch soweit alles im grünen Bereich sein. Oder sieht das jm. anders ?
Da das Passwort im Klartext übertragen wird, bin ich auf jeden Fall anderer Meinung.

Das mit dem VPN ist grundsätzlich eine gute Idee, da Du darüber dann alle Zugriffe auf deinen Root sicher leiten kannst. Desbalb der Hinweis mit dem VPN.

Wenn Dir das zu kompliziert ist (kann ich eigentlich kaum glauben), dann gibt es auch einfachere Möglichkeiten, die nur eine bestimmte Verbindung herstellen.

Port-Forwarding mit SSH - SSH müsstest Du ja eh drauf haben.
Code:
[FONT=Arial,Helvetica,sans-serif]ssh2 -L 3128:localhost:[/FONT][FONT=Arial,Helvetica,sans-serif]3128[/FONT][FONT=Arial,Helvetica,sans-serif] username@host[/FONT]
Dann einfach als Proxy localhost:3128 im Browser eintragen und im squid nur den Zugriff über localhost erlauben.

weitere Alternativen:
STUNNEL
Ist aber nicht besser als SSH-Forwarding.
 
Back
Top