Open Source im professionellen Einsatz
Linux-Magazin 02/2012
© cydonna, photocase.com

© cydonna, photocase.com

Netzwerktricks mit Proxys, Routern und VPNs

Szenenwechsel

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.

516

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.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Kein Ausweg

    Firewalls schützen vor Angriffen von außen. Aber auch die eigenen Benutzer sind gefährlich, wenn sie absichtlich oder aus Unwissenheit Tunnel durch die Firewall öffnen. Dagegen hilft verborgene SSH-, OpenVPN- und Skype-Verbindungen anhand ihres Fingerabdrucks aufzuspüren und zu unterbinden.

  • Experella-Proxy routet in SOA

    Die IT-Abteilung der Job-Website Experteer.de hat Experella, einen Proxy für service-orientierte Architekturen (SOA), unter Open-Source-Lizenz veröffentlicht.

  • Perl-Snapshot

    Gibt es kein API für das Einsammeln von Webinformationen, hilft oft Perl mit der Brechstange des Screenscraping. Seit Neuestem überwindet es dabei sogar die Hürde Javascript.

  • Superhirn

    Webproxys mit Caching-Funktion prahlen mit ihrer Gedächtnisleistung: Statt bei wiederholten Anfragen beim Originalserver zu spicken, liefern sie den Inhalt Zeit und Geld sparend selber aus. Die cleversten Vertreter der Gattung entfernen nebenbei gefährliche Inhalte und arbeiten als unauffällige Bridge.

  • Apache Webserver: Fehler in "mod_proxy_ajp" ermöglicht Denial of Service
comments powered by Disqus

Ausgabe 07/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.