Open Source im professionellen Einsatz
Linux-Magazin 07/2010
© Thomas Max Müller, Pixelio.de

© Thomas Max Müller, Pixelio.de

Perl-Skript tunnelt Mailverkehr auf Zuruf

Schöner schicken

Eigentlich brauchen lokale Mailclients nur während des Sendens einen sicheren Weg zum SMTP-Server. Ein in Perl selbst gebauter Daemon bohrt darum nur temporär einen SSH-Tunnel.

 

445

Das Hin- und Herschaufeln von Datenpaketen erledigt mein Internetprovider normalerweise zufriedenstellend. Fällt allerdings etwas aus, dann sehe ich mich in der Hotline oft mit Text-ablesenden Nichtswissern konfrontiert, die unter Umgehung elementarer logischer Prinzipien die Schuld auf den Anwender zu schieben versuchen. Sie sollten lieber den in dem Höllenladen ebenfalls arbeitenden geschulten Systemadministratoren Bescheid sagen, damit sie die offensichtlich auf ihrer Seite liegenden Probleme beheben.

Als ich einmal anrief, um die Trägheit des DNS-Servers zu bemängeln, fragte mich der freundliche Herr am anderen Ende der Leitung doch tatsächlich, ob mein DSL-Modem auf dem Boden oder im Regal stünde.

Im Spam-Zeitalter

Kürzlich hatte ich Probleme mit dem SMTP-Server und wollte mir einen erneuten Anruf ersparen. Viel E-Mail sendet mein heimischer Desktop-Rechner zwar nicht, aber wenn, dann sollte sie schon ankommen. Fällt etwa der Strom aus, springt meine USV an, was Nagios bemerkt und mir schnell noch eine E-Mail schickt.

Ich könnte natürlich den SMTP-Server meines relativ zuverlässigen Hostingproviders nutzen, doch nimmt der im Spam-Zeitalter natürlich keine Mails von wildfremden IPs an. Aber da der Hoster einen SSH-Zugang anbietet, ließe sich zum Beispiel mit

ssh -L 1025:localhost:25 mschilli@host.U
provider.com

ein Tunnel vom lokalen Port 1025 zum SMTP-Port 25 des gehosteten Rechners bohren. Für den beim Hoster stationierten Rechner sähe es dann so aus, als käme der Request vom gemieteten Shared-Host-Webserver.

Dynamisch bohren

Da ein Billighoster eventuell nicht möchte, dass irgendwelche Geizhälse Tag und Nacht SSH-Tunnel offenhalten, ohne auf ihren gemieteten Webseiten herumzutippen, bietet sich eine dynamische Lösung an: Ein in Perl selbst gebauter Daemon »minimail« lauscht auf dem lokalen SMTP-Port 25 auf Anfragen lokaler Mailclients, die nichts von der dahinter steckenden Komplexität ahnen.

Der Daemon nimmt den Request entgegen, baut den Tunnel zum Hoster auf und trödelt anschließend so lange herum, bis die Verbindung steht. Für den lokalen Mailclient sieht dass so aus, als hätte er nur einen etwas langsameren Mailserver vor sich. Der Daemon schaufelt dann die Request-Zeilen des Clients (lokaler Port 25) auf den lokalen Port 1025 weiter, also den Eingang des Tunnels, an dessen anderem Ende Port 25 beim Hoster liegt (Abbildung 1). Aus dem Tunnel zurückkommende Protokollzeilen gibt der Daemon weiter an den lokalen Client, für den es so aussieht, als spräche er mit einem lokalen SMTP-Server.

Kommen mehrere Requests zum E-Mail-Senden schnell hintereinander, wäre ein Ab- und wieder Aufbauen des Tunnels wenig effizient, und so lässt der Daemon den Tunnel nach dem Abkoppeln des letzten Clients noch 10 Sekunden bestehen. Damit das Ganze in den Hosterlogs menschlich aussieht, addiert das Skript zur Wartezeit in Sekunden eine Zufallszahl zwischen 0 und 25.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 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

  • Tunnel-Blick

    Die Secure Shell nutzt ihr Protokoll nicht nur für eigene Dienste, sie leitet auch beliebige andere TCP-Verbindungen durch einen sicheren Tunnel. Damit SSH tatsächlich sicher ist, müssen die Schlüssellänge und die Softwareversion stimmen - im Zusammenspiel mit Firewalls ist auch einiges zu beachten.

  • Das Log als Ohrwurm

    Statt eingehende Requests nur in der Logdatei des Webservers zu verfolgen, macht ein Soundserver sie für den Systemadministrator hörbar. Nun kann man die Surfer nebenbei belauschen.

  • Offener Tunnel

    Der einfach zu konfigurierende OpenVPN-Daemon nutzt das Tun-Device und arbeitet selbst im Userspace. Das UDP-Protokoll verwendet TLS-Verfahren zur Authentifizierung und kann damit als sehr sicher gelten.

  • Dunkle Einfahrt

    Mit dem Poptop-Daemon spricht Linux auch die umstrittene Microsoft-VPN-Sprache PPTP. Ist er mit einem zusätzlichen Kernelmodul und einem aktuellen »pppd« ausgerüstet, bindet Poptop im heterogenen Netz Microsoft- und Linux-Clients gleichzeitig an.

  • Daten-Unterführung

    Firewalls sind oft so vermauert, dass gerade noch der alltäglichen Surf-Betrieb möglich ist. Ein IRC- oder Streaming-Server findet keinen Weg mehr - es sei denn, OpenVPN untergräbt die Firewall.

comments powered by Disqus

Ausgabe 06/2017

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