staging.inyokaproject.org

Systemweiter erzwungener Proxy mit Content-filter auf Workstation

Status: Gelöst | Ubuntu-Version: Xubuntu 9.10 (Karmic Koala)
Antworten |

coulomb

Anmeldungsdatum:
15. November 2009

Beiträge: Zähle...

Moin zusammen,

Ich komme mal gleich zur Sache. Und zwar möchte ich einen Rechner mehreren Leuten in einer kleinen Firma zur Verfügung stellen. Die Leute sollen über diesen Rechner nur bestimmte Anwendungen und Internetseiten aufrufen können (momentan 3 Seiten).

Als Inhaltsfilter habe ich einen (auf dem selben Rechner laufenden) lokalen Proxy (Squid als transparenter Proxy) mit DansGuardian installiert. Wenn ich im Webbrowser (Firefox) nun einen Proxy per Hand eintrage (127.0.0.1:8080) greifen die Filter einwandfrei und es funktioniert alles wie es soll.

Jetzt möchte ich allerdings die Proxy Einstellungen global im System definieren, damit ein Mitarbeiter nicht einfach die Browser-Einstellungen ändern oder einen anderen Browser (z.B. vom USB-Stick) nutzen und so den Proxy umgehen kann.

Eine oft vorgeschlagene Lösung dies beim Systemstart (über export Variablen) zu regeln funktioniert zum Beispiel mit dem Firefox nicht:

export https_proxy="http://127.0.0.1:8080/"
export ftp_proxy="http://127.0.0.1:8080/"
export http_proxy="http://127.0.0.1:8080/"

Eine andere Möglichkeit ist wohl sämtlichen ausgehenden Verkehr an Port 80 über Port 8080 mittels IPtables umzuleiten. Hierzu habe ich zunächst UFW eingeschaltet, folgende iptables Regel definiert:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

und IP_forwarding aktiviert:

sudo sysctl -w net.ipv4.ip_forward=1

Leider funktioniert auch das nicht, der Browser kann noch immer alle Seiten ungefiltert abrufen.

Hat vielleicht jemand eine Idee was da falsch läuft oder vielleicht einen Anstoß für einen anderen Denkansatz, über Hilfe wäre ich sehr dankbar!

P.S.: Es soll definitiv der Inhaltsfilter auf dem "Arbeits-Rechner" laufen und nicht z.B. auf dem Router implementiert werden?

coulomb

(Themenstarter)

Anmeldungsdatum:
15. November 2009

Beiträge: Zähle...

Erstmal Entschuldigung für diesen Doppelpost, aber ich muss ein kleines update nachschieben...

Nach erneuter Recherche scheint es schlicht nicht möglich zu sein über iptables (o.ä.) eine Port Umleitung einzurichten, sofern nicht geroutet werden soll oder das selbe Interface genutzt wird (Bsp. eth0:80 ⇐⇒ eth0:8080)...

Ein Workaround wäre in meinem Fall einfach sämtlichen ausgehenden Traffic zu port 80 verbieten, womit eine Änderung der Proxy-Einstellungen oder mitgebrachte Software ebenfalls keinen ungefilterten Internetzugang ermöglicht. Eine Frage stellt sich mir nur bei dieser Überlegung, und zwar, falls ich den Verkehr zu port 80 verbiete, müsste doch der auf dem selben Rechner laufende Proxy (bzw. Inhaltsfilter) ebenfalls keinen Zugriff auf das Internet zu Port 80 haben oder gibt es da eine Möglichkeit explizit nur diesen Diensten den Zugriff zu erlauben? Eine weitere Frage ist, wie ich sämtlichen ausgehenden Traffic zu port 80 überhaupt verbiete, eine entsprechende Regel wie z.B.:

sudo iptables -A OUTPUT -p tcp --dport 80 -j REJECT

hat keinen Effekt.

[EDIT]

Ok, den ausgehenden Verkehr habe ich mittlerweile mit:

sudo iptables -I OUTPUT -p tcp --dport 80 -j REJECT (oder DROP)

erfolgreich geblockt, allerdings tritt nun genau das ein, was ich vermutet habe, dass ebenfalls der Proxy nicht mehr das Internet erreicht.

Kann mir denn niemand bei meinem Problem wenigstens ansatzweise helfen ☹ ??? [/EDIT]

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

coulomb schrieb:

Eine oft vorgeschlagene Lösung dies beim Systemstart (über export Variablen) zu regeln funktioniert zum Beispiel mit dem Firefox nicht:

export https_proxy="http://127.0.0.1:8080/"
export ftp_proxy="http://127.0.0.1:8080/"
export http_proxy="http://127.0.0.1:8080/"

siehe Proxyserver (Abschnitt „Firefox-Mozilla“).

coulomb

(Themenstarter)

Anmeldungsdatum:
15. November 2009

Beiträge: 3

@aasche

danke, dass du dich zumindest bemüht hast, mir einen Hinweis auf eine mögliche Lösung zu geben, was bei einem über einem Jahr alten Thread ohne Antworten sicher nichts Selbstverständliches ist...

Dass was du ansprichst habe ich auch herausgefunden, du meinst sicher die von mir beschriebenen exports durch folgende zu ergänzen:

export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export FTP_PROXY=$ftp_proxy

Allerdings ist diese Methode auch nicht so ganz sauber und lässt sich sehr einfach durch andere exports umgehen.

Ich habe es im Endeffekt auch ohne eure Hilfe geschafft das ganze so ein zu richten, wie ursprünglich von mir angedacht. Der gesamte Verkehr wird per Paketfilter (IPtables) über Contentfilter (Dansguardian) und Proxy (Squid) geleitet...

Trotzdem vielen Dank für deinen Versuch, vielleicht hilft es ja anderen Usern weiter, ansonsten konntest du ja wenigstens deinen Beitragszähler um 1 erhöhen 😉

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

coulomb schrieb:

Dass was du ansprichst habe ich auch herausgefunden, du meinst sicher die von mir beschriebenen exports durch folgende zu ergänzen:

export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export FTP_PROXY=$ftp_proxy

Nein. Mein Vorschlag bezog sich auf Linux-Rechner bzw. Firefox unter Linux.

Antworten |