tonisoft
Goto Top

Internetsperre mit Squid realisieren

Benutzergruppen dynamisch Zugriff auf das Internet mit dem Squid Proxy sperren

Ich werde für meine Schule Teile der Netzwerkinfrastruktur in den Informatikräumen installieren. Es ist gewünscht, dass das neue System eine Möglichkeit bietet, den Internetzugriff in einem Raum für alle Schüler zu sperren. Dazu werde ich einen Linux-Server aufsetzen und den Squid Proxy betreiben, üben den die Schüler dann ins Internet gelangen.

Lehrer sollen über eine Administrtionsoberfläche die Möglichkeit haben, den Internetzugriff mit einem Klick zu sperren und wieder freizugeben. Ich werde den Squid-Proxy an den Windows Server 2008 Domain Controller anbinden, über den die Rollenzuweisung aufgelöst werden soll, spricht wenn ein Schüler eine Internetseite aufrufen möchte, dann soll der Squid-Proxy über den Windows Server 2008 je nach Rolle des jeweiligen Benutzers in der Active Directory entweder den Internetzugriff sperren oder freigeben.

Die Anbindung an den Windows Server 2008 werde ich mittels Postings wie Authentifizierung fuer Squid mit LDAP an MS Active Directory versuchen umzusetzen.

Dabei habe ich folgendes Problem: Wie kann man im Squid-Proxy zur Laufzeit am Beste ohne Änderungen an der Konfigurationsdatei einzelne acl's freigeben mit http_access allow und auch wieder sperren?

Mein Ziel ist es, mittels ASP.NET eine Web-Interface zu entwickeln, mit dem der Lehrer das Internet dynamisch freigeben kann. Dabei wäre es wünschenswert, wenn man die Squid-Konfigurationsdatei nicht andauernd ändern müsste. Am besten wäre es, wenn der Squid-Proxy jede Anfrage nach .htm, html, php, aspx, etc. Dateien an meine Webanwendung redirected und diese dann Prüft, ob der Nutzer, der die Internetseite angefragt hat, diese auch öffnen darf oder ob das Internet gesperrt ist.


Oder: Gibt es eine Möglichkeit, einen laufenden Squid-Proxy mittels Komandozeilenparametern neue acl's temporär beizubringen? (die können nach einem Neustart des Squid-Caches auch ruhig verloen gehen)

Content-Key: 109105

Url: https://administrator.de/contentid/109105

Printed on: April 26, 2024 at 08:04 o'clock

Mitglied: 45877
45877 Feb 16, 2009 at 10:16:50 (UTC)
Goto Top
nimm ipcop mit advanced proxy und classroom extension. da ist alles schon fertig zu haben
Member: problemsolver
problemsolver Feb 16, 2009 at 12:35:01 (UTC)
Goto Top
Hallo ToniSoft,

die squid.conf immer zur Laufzeit zu verändern ist nicht so gut... da gebe ich Dir Recht. Wie wäre es denn mal mit einem Eintrag ála
acl sperre url_regex -i "/etc/squid/acl/sperre"  
mit dem Inhalt ".*" (ohne die Anführungsstriche) und
http_access deny blacklist

Die http_access Regel sollte relativ weit oben in der squid.conf stehen. Dann bearbeitest Du nur noch die Datei "sperre" via php oder wg. mir mit ASP.NET wie folgt:
Internet Erlauben:
#.*

Internet Verbieten:
.*
Wie Du siehst... nur die Raute erlaubt oder verbietet hier das Internet... face-smile (einfach ausgedrückt...)

Du solltest jedoch dem Lehrer entweder eine Regel zur Squid Konf hinzufügen, die ihm den Zugriff zu jeder Zeit gestattet oder er müsste seinen Browser so konfigurieren, dass er ohne Proxy surft. (sonst kann er selbst nichts mehr über den Proxy aufrufen.)
Desweiteren sollte man noch erwähnen, dass man eine Proxy Authentifizierung mit Benutzern bzw. IP-Adressen bei einer Klasse bevorzugen sollte.

Alles in allem gibt es sicherlich noch viel mehr zu erwähnen, aber das sollte erstmal ein Anfang sein... (wenn man sich näher damit beschäftigen möchte)

Ansonsten würde ich chewbakka zustimmen und auf etwas Vorgefertigtes zurückgreifen.

Gruß und noch viel Erfolg!

Markus
Member: ToniSoft
ToniSoft Feb 16, 2009 at 20:21:20 (UTC)
Goto Top
Danke für die beiden Antworten!

Ich habe mir mal die vorgefertigte Lösung angesehen und war überrascht von der Konfigurationsmöglichkeit mittels Webfrontend. Ich denke mal, das der Advanced Proxy wirklich gut geeignet ist und mir auch viel Arbeit erspart.

Allerdings wäre es schön, wenn ich die Internetsperre trotzdem in eine Webanwendung einbauen könnte, da der Lehrer dann Zugriff auf alle wichtigen Funktionen in einem einfachen Webinterface bekommen könnte. Vielleicht kann man ja beides miteinander verbinden.

Vielen Dank nochmal!

Toni
Member: maretz
maretz Feb 25, 2009 at 09:05:36 (UTC)
Goto Top
Eine weitere Lösung ist squidGuard. Diese bietet auch einiges an Filter-Möglichkeiten (und auch vorgefertigte Listen - ich vermute mal das z.B. die p0rn-Seiten generell gesperrt werden können/dürfen/sollen.)

Ein Webfrontend wäre mir dafür derzeit nicht bekannt, wäre aber sicherlich in PHP o.ä. nicht allzuschwer zu bauen.

Weiterhin spielt das ding problemlos auch mit Squid zusammen (ich verwende den hier in der Firma schon seid jahren - mit sehr guten Ergebnissen).

Dazu noch passend: Sarg (Squid Analyses Report Generator) -> da hat man auch gleich noch eine Übersicht welche Seiten denn so aufgerufen wurden, auf Wunsch auch so dargestellt das die Auflistung rel. Anonym ist (d.h. Datenschutzkonform).
Member: crashzero2000
crashzero2000 Feb 12, 2010 at 11:47:21 (UTC)
Goto Top
Moinsen,

da bietet Collax was an.

http://www.collax.com/produkte/detail/produkt/Die-Komplettloesung-fuer- ...

Ist Linux mit Squid , Firewall und alles was dazugehört [Eierlegende Wollmilchsau].
Dort ist unter anderem auch eine Web-Gui integriert.

Irgendwo dort gibts auch nen kostenlosen Download für 5 User.