Raspberry PI spielt Proxy

Heute widmen wir uns dem Thema „Wie erstelle ich einen Proxy mit den Raspberry PI“
Die Wahl fält in auf den in der Linux Welt recht beliebten Cache-Proxy squid3.

Bei den Besitzern eines Raspberry PI’s muss man glaub ich nicht mehr auf Grundlagen
„Wie verbinde ich mich zum RasPi via SSH“ eingehen, deswegen gehts gleich zur Sache.

Als Basisimage dient uns das „Soft-float Debian wheezy“ welches ihr ganz bequem von http://www.raspberrypi.org/downloads herunterladen könnt.

Zur Vereinfachung der Installation und Konfiguration wechsle ich gleich am Beginn mittels sudo -s dauerhaft zum root User. Wer sich das nicht traut: vor jeden Befehl ein sudo setzen.

Mittels folgenden Befehl wird dir automatisch die richtige Version heruntergeladen und installiert:

Nach ein paar Minuten warten können wir uns schon an die erste Konfiguration wagen.
Wir wechseln nun in das Verzeichnis wo sich die Konfigurationsdateien befinden:

In diesen Ordner finden wie die squid.conf Datei vor. Da ich mich persönlich nicht mit den überfüllten Beispieldateien anfreunden kann starte ich hier mit einer neuen leeren squid.conf .
Zuerst widmen wir und der Basiskonfiguration:

  • http_port
    definiert auf welcher IP/Port der Proxy hören muss.
  • cache_mem
    regelt wie viel der Proxy max. in den RAM cached
  • maximum_object_size
    wie der Name schon sagt: max. Größe cacheder Dateien
  • maximum_object_size_in_memory
    maximalste Größte einer Datei im RAM
  • cache_replacement_policy
    memory_replacement_policy
    Hier wird es komplex: Ich zitiere aus dem Ubuntuusers.de Wiki:

Wenn der Cache voll ist, muss entschieden werden, welche Daten gelöscht werden sollen und welche nicht. Dafür gibt es drei Strategien:

  • LRU behält die zuletzt angefragten Objekte im Cache, unabhängig von Größe und Alter der Objekte (wird als Standard verwendet, wenn man nichts angibt).
  • heap GDSF optimiert die Objekt-Hitrate. Kleine, häufig angefragte Objekte werden auf Kosten großer, weniger häufig angefragter Objekte im Cache gehalten. Damit wird die Wahrscheinlichkeit eines Objekt-Hit gesteigert.
  • heap LFUDA optimiert die Byte-Hitrate. Häufig angefragte Objekte werden im Cache gehalten, selten angefragte werden freigegeben, unabhängig von deren Größe. Damit wird ein häufiger angefragtes, großes Objekt ggf. auf Kosten vieler kleiner Objekte im Cache gehalten. Damit steigt die Byte-Hitrate auf Kosten der Objekt-Hitrate.

Man kann Strategien auch mischen. Es bietet sich an, für Objekte im Ram heap GDSF zu verwenden und für Objekte im Festplatten-Cache head LFUDA. So wird ein ausgewogener Kompromiss zwischen schnellen Reaktionszeiten und Traffic sparen erreicht:

Als nächstes widmen wir uns in der selben Datei der Anonymisierung der Clients

  • via
    Nach RFC2616 ist es vorgeschrieben das ein Proxy seine Version im Header mitsendet. via off und alles ist gut 🙂
  • forwarded_for
    Der Proxy sendet per default die IP des Clients im HTTP Header mit.
    Mittels forwarded_for off schalten wir dies ab.

Nun zum komplexesten Teil den wir hier nur kurz streifen : ACL

In der ersten Zeile definieren wir das alle Clients die über das Subnet 192.168.1.0/24 kommen ab jetzt im squid als silvercloud behandelt werden.
Als nächstes erlauben wir silvercloud den ganzen HTTP Traffic.
Die einfachste aller Regeln besagt nun das Clients aus 192.168.1.0 uneingeschränkt ins Internet dürfen. Weiter gehen wir hier nicht ein da dies den Artikel sprengen würden.

Die ganze Konfig zum kopieren:

Wagen wir uns an den ersten Start:

Nun auf einen Client den RasPi als PRoxy in den Verbindungseinstellungen des Browsers einrichten und wenn alles gut gegangen ist währe das Thema fürs erste erledigt.

Wer auch noch interessiert ist welche URL’s vom Browser aufgerufen werden findet diese in folgender Datei: einfach mit den Editor eurer Wahl öffnen .

In diesem Sinne viel Spaß mit euren Proxy und beim austesten verschiedenster Konfigurationen.

Gute Lektüre findet ihr unter:

http://wiki.ubuntuusers.de/Squid
http://www.squid-handbuch.de/hb/

blog.active = true

Und hier mit wollen wir mit unserem Blog nun „Produktiv“ gehen.
Kurz zu dem Blog, es soll wie der Name schon sagt ein Tech-Blog werden, mit dem Schwerpunkt IT.

Kurz zu uns,wir sind beide beruflich in diesem Sektor tätig aber was uns am meisten dazu bewegte ist das die IT auch unser Hobby ist. Und wir immer öfter an Grenzen stoßen wo es keine Lösungen seitens Google & Co gibt.

Genaue Ziele wo es hin gehen soll mit unserem Blog haben wir nicht,

jedenfalls sind wir in flogenden Themen zu Hause: Windows Clients & Sever, VMware sowohl Client und auch Server seitig, Mobile Devices, Skripts und etwas Code (VB.net), Linux Server & Clients, Microsoft Server Produkte wie Exchange, WSUS, Lync, Sharepoint, Monitoring Tools, Haustechnik, Hardware, Netzwerk……..

WTF da fällt mir erst auf in wievielen Bereichen wir tätig sind 😀

In diesem Sinne viel Spaß beim lesen.