ubuntuusers.de

User authentification in squid

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Fr3eMaN

Avatar von Fr3eMaN

Anmeldungsdatum:
27. Januar 2006

Beiträge: 118

Wohnort: /home

Hallo,
Ich arbeite im moment an einem Proxy server. Dafür verwende ich squid in Verbindung mit SquidGuard, der dann die Inhalte überprüfen soll.
erstmal die Configs :
squid.conf

redirect_program /usr/sbin/squidGuard -c /etc/squid/squidGuard.conf
http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache_mem 64 MB
memory_replacement_policy heap LFUDA
hosts_file /etc/hosts


auth_param basic program /usr/sbin/ncsa_auth /etc/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours


acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl users proxy_auth REQUIRED
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		# 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 freigegeben0 src 192.168.0.1-192.168.0.3
acl freigegeben1 src 192.168.1.1-192.168.1.3


http_access allow freigegeben0
http_access allow freigegeben1
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 deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
icp_access allow all
header_access X-Forwarded-For deny all

squidGuard.conf

dbhome /var/lib/squidguard/db
logdir /var/log/squid

#####
# Zu filternde Kategorien
#####

destination bl_audio-video {
}

destination bl_aggressive {
}


destination bl_gambling {
}

destination bl_hacking {
}

destination bl_suspect {
}

destination bl_spyware {
}

destination bl_warez {
}

destination bl_proxy {
}

destination bl_redirector {
}

destination bl_drugs {
}

destination bl_violence {
}

destination bl_porn {

}

destination bl_ads {
}


#####
# Gruppendefinitionen
#####
src super {
  user root
}
src normal {
  user server
}


#####
# Zugriffsbedingungen (ACLs)
#####
acl {
        super {
		pass !bl_audio-video !bl_aggressive !bl_gambling !bl_hacking !bl_suspect !bl_spyware !bl_warez !bl_proxy !bl_redirector !bl_drugs !bl_violence !in-addr
        }
        normal {
		pass !bl_audio-video !bl_aggressive !bl_gambling !bl_hacking !bl_suspect !bl_spyware !bl_warez !bl_proxy !bl_redirector !bl_drugs !bl_violence !bl_porn !bl_ads !in-addr
        }
	super {
		pass !bl_audio-video !bl_aggressive !bl_gambling !bl_hacking !bl_suspect !bl_spyware !bl_warez !bl_proxy !bl_redirector !bl_drugs !bl_violence !bl_porn !in-addr
                
        }
        default {
		pass !bl_audio-video !bl_aggressive !bl_gambling !bl_hacking !bl_suspect !bl_spyware !bl_warez !bl_proxy !bl_redirector !bl_drugs !bl_violence !bl_porn any
                
        }
}

Wie man an der Squid.conf sehen kann habe ich noch 2 weitere Verbindung, neben dem server. 192.168.1.* und 192.168.0.*. Das sollen Zugänge für andere Pc's werden,diese hängen aber noch nicht dran,bisher versuche ich alles auf den Pc an dem, der Proxy läuft zu testen. acl all src 0.0.0.0/0.0.0.0 bezieht sich doch auf den User der an dem Pc sitzt an dem der proxy läuft oder?

So, ich habe in Firefox unter Verbindungseinstellung als Proxy Adresse 127.0.0.1:3128 angegeben. Das scheint zu klappen. Allerdings kommt kein Anmeldefenster oder ähnliches. Somit funktioniert auchg das blocken diverser Seiten nicht. Ich denke es liegt daran das keine User Authentifikation stattfindet.
Wo liegt der Fehler?
Danke euch!

etc: nicht über die Pfade wundern, muss hier an nem Suse PC arbeiten, aber ich mag diese Comm.....

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

Also mit Squid habe ich mich lange nicht mehr beschäftigt, aber soviel dazu:

1.)
"localhost" den Zugriff nur per Anmeldung zu erlauben ist ziemlich dumm und auch sinnlos. Selbst zum testen würde ich einen 2. Rechner nehmen. Bei Fehlerseiten (z.B. von SquidGuard) könnte es Probleme geben, da diese "localhost" sind.
2.)
Für die Benutzerauthentisierung musst du ungefähr folgende Zeilen eintragen:

auth_param ...
auth_param basic children ...
acl password proxy_auth REQUIRED
...
http_access allow password


Das bringt natürlich nur dann was, wenn nicht zuvor irgendein Zugriff per "allow" schon erlaubt wurde wie im Fall von "localhost".

Ach ja, SquidGuard kann man im übrigen irgendwie getrennt testen, nur so zur Information. Bewahrt ein vor manch einem Fehler bei der Konfiguration. SquidGuard ist/war auch sehr genau. Ein Leerzeichen an der falschen Stelle und die Konfiguration ist ungültig. Hier lohnt es sich immer schön das Logfile anzuschauen.

Fr3eMaN

(Themenstarter)
Avatar von Fr3eMaN

Anmeldungsdatum:
27. Januar 2006

Beiträge: 118

Wohnort: /home

ok danke erstmal, ich gebe zu das ich mich nicht sonderlich gut mit squid auskenne, doch was gebe ich dann in den jeweiligen Browsern ein damit man den Proxy nutzen kann, zum Beispiel wenn ich jetzt einen anderen Rechner anschließe.

joadoor

Anmeldungsdatum:
29. April 2007

Beiträge: 19

hi,

also paß auf, wie ich das sehe hast du da einen logistischen fehler im system 😉

die ACL 0.0.0.0/0 /bzw. 0.0.0.0 0.0.0.0 sind ALLE IP's.
dir fehlt die users ACL.
somit wird auch kein user/passw abgefragt.

die ACL die du aufbaust, wird ja der reihe nach abgearbeitet.

http_access allow freigegeben0 #das ist dein 192.168.0er netz
http_access allow freigegeben1 #das ist dein 192.168.1er netz
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 deny CONNECT !SSL_ports
http_access allow localhost #das ist alles was VON 127.0.0.1 kommt
http_access allow users # ←- die fehlt
http_access deny all

jetzt müssen alle, die nicht vor dieser zeile erlaubt wurden bzw. denied wurden ein passwort eingeben.
wenn du die passwort abfrage vom lokalen PC aus testen willst, musst due die "users"-zeile VOR die "allow localhost" zeile schieben.
bzw. "http_access allow to_locahost". weil dort alles erlaubt wird, was NACH 127.x.x.x will. ich weiß leider nicht, ob die anfrage vom localen pc auf den localen squid mit der source 127.0.0.1 kommt.

hoffentlich konnt ich dir etwas helfen.
(hoffe ich hab mich jetzt nicht vertan)

p.s.:
ob das dann mit der passwort-abfrage klappt kann ich jetzt nicht sagen, ich hab das etwas anders konfiguriert...
aber so müsste schonmal die ACL-config passen.............

+++++++++++++++++++++++++++++++++++++++++++++++++++++
so, was du jetzt in den jeweiligen clients eingeben musst hängt von dieser zeile ab:
http_port <zugriff>

also zum beispiel:
http_port 8080 (alles was auf alle lokalen adressen auf port 8080 zugreift)

wenn du das einschränken willst, kannst das so tun:

http_port 127.0.0.1:8080
oder
http_port 192.168.0.1:8080 (jetzt dürfen alle zugreifen, die die IP 127.0.0.1 oder 192.168.0.1 auf port 8080 ansprechen)

dann musst du halt in der browserconfig diese IP's und diesen port angeben......

usw. halt.
squid kann man ja bis zum excess konfigurieren 😉

Fr3eMaN

(Themenstarter)
Avatar von Fr3eMaN

Anmeldungsdatum:
27. Januar 2006

Beiträge: 118

Wohnort: /home

danke dir erstmal, hast mir sehr geholfen! Falls sich doch noch ein problem ergibt Frage ich dann

Fr3eMaN

(Themenstarter)
Avatar von Fr3eMaN

Anmeldungsdatum:
27. Januar 2006

Beiträge: 118

Wohnort: /home

ich muss mich doch noch mal melden.
Das ganze läuft jetz wunderbar auf dem pc, aufdem der proxy auch läuft. Habe jetzt mal zum testen einen laptop mit windows angeschlossen. Der Laptop hat die IP 192.168.0.2 und kann den PC anpingen ( 192.168.0.1 bzw. den gateway ins Internet). Internet läuft über routing vom PC auf dem der proxy läuft.
Hatte jetzt den http_port so gesetzt http_port 192.168.0.1:3128 . Auf dem ProxyPC läuft es prima, auch inhalte werden jetzt korrekt geblockt. Wenn ich jetzt aber z.B unter dem InternetExplorer ->Internetoptionen-> Verbindung->Lan Einstellungen die IP des Proxys eingebe (192.168.0.1:3128 ) dann komme ich mit dem Laptop nicht mehr ins Internet. Ohne Proxyeinstellungen aber sehr gut wegen dem routing.
Muss man da jetzt noch irgendeinen Befehl in der squid.conf hinzufügen oder woran liegt es. Ich vermute ja das es an den gewählten IP Bereichen liegt. Hat jemand eine Idee?
Danke

joadoor

Anmeldungsdatum:
29. April 2007

Beiträge: 19

...das kann jetzt fast nur noch an deiner ACL liegen.

ich weiss nicht, ob squid mit IP-ranges arbeiten kann...
acl freigegeben0 src 192.168.0.1-192.168.0.3
acl freigegeben1 src 192.168.1.1-192.168.1.3

probier's mal damit:
acl freigegeben0 src 192.168.0.0/30 ←- sind die IP's 192.168.0.1 und *.0.2
oder
acl freigegeben0 src 192.168.0.0/29 ←- sind dann von 192.168.0.1 bis *.0.7
oder
acl freigegeben0 src 192.168.0.0/25 ←- sind alle von *.0.1 bis *.0.127
oder
acl freigegeben0 src 192.168.0.128/25 ←- sind alle von *.0.129 bis *.0.254
oder
acl freigegeben0 src 192.168.0.0/24 ←- ist halt das ganze 192.168.0.* netz.

das alles natürlich dann analog für 192.168.1.x

wenn du das nicht im kopf rechnen kannst, such mal im internet nach "subnet calculator" 😉

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

Sehr hilfreich bei Fehlern sind die Logdateien. Schaue mal in "cache.log" und vor allem in "access.log" und poste die entsprechenden Einträge.

Fr3eMaN

(Themenstarter)
Avatar von Fr3eMaN

Anmeldungsdatum:
27. Januar 2006

Beiträge: 118

Wohnort: /home

so, jetzt geht wirklich alles. Ich danke euch sehr für eure Tipps und Hilfen !
Am ende lag es an der SuSe Firewall die etwas falsch konfiguriert war.

Antworten |