Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2012  »  02  »  Perl-Snapshot  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

© cydonna, photocase.com

Netzwerktricks mit Proxys, Routern und VPNs

Szenenwechsel

von Michael Schilli
Erschienen im Linux-Magazin 2012/02

Wer die Ethernet-Leitung oder den Wireless-Router kontrolliert, jubelt den angeschlossenen Geräten neue Inhalte unter oder gaukelt ihnen vor, sie stünden am anderen Ende der Welt. Besonders eindrucksvoll ist der Effekt, wenn diese sich erst einmal zugeknöpft geben.

Meinen Schreibtisch ziert seit einem Jahr ein Chumby ([2], Abbildung 1), ein kleiner, Radiowecker-ähnlicher Kasten, auf dem konfigurierbare Apps Schlagzeilen, das Wetter, Börsenkurse und die News aus der Welt der Programmierung durchtickern. Der Zweitbildschirm im Augenwinkel nervt weniger als ein Widget auf dem Hauptschirm und ich lese Klatsch aus Silicon Valley oder erlebe bahnbrechende Neuheiten der Gadget-Industrie.


Abbildung 1: Der Chumby zeigt die neuesten Schlagzeilen auf Ihackernews.com an.

Defcon-2 dank Werbung

Vor einigen Wochen hielt es eine offenbar vom schnöden Werbemammon geblendete Person der Chumby-Zentrale für nötig, zwischen meinen Kanälen eine zehn Sekunden dauernde Werbung für eine Autoversicherung einzublenden (Abbildung 2). Ich schaltete auf Defcon-2 [3] und untersuchte, ob die Chumby-Einstellungen einen HTTP-Proxy erlauben, um die lästige Werbung abzufangen, bevor sie auf dem Chumby eintrifft.


Abbildung 2: Die Reklamehexe hat sich ungefragt zwischen die Chumby-Kanäle gedrängt.

Im Forum erfuhr ich, dass Chumby keinen HTTP-Proxy unterstützt, man aber einen USB-Stick einstöpseln kann, auf dem in einer Datei userhook0 im Rootverzeichnis die Proxy-Einstellungen von Abbildung 3 stehen. Damit gebootet schleust das Gerät HTTP-Requests durch den Proxyserver, der die URLs ansehen und eventuell manipulieren kann.


Abbildung 3: Steckt im Chumby ein USB-Stick mit einer Datei userhook0, übernimmt das Gerät während des Bootvorgangs die dort eingestellten Proxy-Parameter.

Squid oder handgestrickt

Als Proxyserver eignet sich Squid [4], aber wer gerne bastelt, zimmert sich wie in Listing 1 mit dem CPAN-Modul HTTP::Proxy schnell einen loggenden Proxy zusammen. Zeile 21 startet den Proxyserver, der auf Port 9999 des Hosts 192.168.1.123 lauscht, die HTTP-Requests des Chumby entgegennimmt und die Inhalte aus dem Internet holt. Der ab Zeile 10 eingeschobene request-Filter sieht sich einen eintreffenden HTTP-Request an, fieselt die URL heraus und gibt sie mit print aus.

Listing 1

proxy-logger

01 #!/usr/local/bin/perl -w
02 use strict;
03 use HTTP::Proxy;
04 use HTTP::Proxy::HeaderFilter::simple;
05
06 my $proxy = HTTP::Proxy->new(
07     host => "192.168.1.123",
08     port => 9999 );
09
10 $proxy->push_filter(
11   request =>
12     HTTP::Proxy::HeaderFilter::simple->new(
13       sub {
14         my( $self ) = @_;
15         print $self->proxy->request->uri(),
16               "\n";
17       }
18     )
19 );
20
21 $proxy->start;

Mit diesem Spion in der Leitung zeigt Abbildung 4, was der Chumby so alles treibt. Um der unerwünschten Werbung den Teppich unter den Füßen wegzuziehen, ändert Listing 2 die Methode push_filter() so, dass sie die URL des Requests umschreibt, falls Chumby ursprünglich den berühmten Eviladserver.com verlangt hat.

Listing 2

proxy-adkiller

01 #!/usr/local/bin/perl -w
02 use strict;
03 use HTTP::Proxy;
04 use HTTP::Proxy::HeaderFilter::simple;
05 use HTTP::Request::Common;
06
07 my $proxy = HTTP::Proxy->new(
08     host => "192.168.1.123",
09     port => 9999 );
10
11 my $repl = "http://perlmeister.com/test/" .
12            "sandy-beach.jpg";
13
14 $proxy->push_filter(
15   request =>
16     HTTP::Proxy::HeaderFilter::simple->new(
17       sub {
18         my( $self, $headers, $req ) = @_;
19
20         if( $req->uri() =~
21                 /eviladserver\.com/ ) {
22           $_[2] = GET $repl;
23         }
24       }
25     )
26 );
27
28 $proxy->start;

Statt nervender Werbung erscheint dann ein Bild vom Sandy Beach auf meiner Lieblingsinsel Oahu auf Hawaii, in dessen Brandung es erfahrene Bodysurfer in einer zusammenbrechenden Welle sauber umherbeutelt.


Abbildung 4: Der loggende Proxy schreibt die vom Chumby aufgerufenen URLs mit.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Whitepaper
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)