SSh Client updaten

Mein Linux Mint ist mittlerweile recht antiquiert und ebenso die Software die mitkommt. Auf ein Distupgrade habe ich keine Lust, da die / Partition voll ist und mein Rechner mit 4 Jahren bald ersetzt wird.
Mit Linux Mint 17 bekommt man openssh in der Version 6.6 aber ich brauche das super coole Feature Proxy Jump. Der Spaß ist recht schnell kompiliert:

wget http://mirror.exonetric.net/pub/OpenBSD/OpenSSH/portable/openssh-7.5p1.tar.gz
tar -zxvf openssh-7.5p1.tar.gz
 cd openssh-7.5p1/
./configure
make

Da ich nur den ssh client benötige mache ich statt

sudo make install

einfach

sudo cp ssh /usr/bin/

Fertig.

ms@w530~/Downloads/openssh-7.5p1$ ssh -V
OpenSSH_7.5p1, OpenSSL 1.0.2l  25 May 2017

Click’N’Load per Tunnelbau an die Pyload Maschine weiterleiten

Wer ab und an bei Sharehostern Dateien lädt kennt sicherlich Click’n’Load. Nach dem Klick auf einen Button im Browser füllt sich die Queue des Downloadmanagers mit neuen Files. Dabei werden Informationen zu Dateien per Http POST vom lokal laufenden Download Programm wie jDownloader oder PyLoad entegengenommen. Dies geschieht durch einen kleinen Webserver der auf dem Port 9666 lauscht. Wenn der Downloadmanager nicht lokal läuft funktioniert der Mechanismus leider nicht.

Mit einem SSH-Tunnel kann man den POST Request an einen anderen Rechner weitleiten. Dort muß neben dem Downloadmanager auch ein SSH-Server laufen.

In meinem kleinen Beispiel läuft Pyload auf einem Pi mit der Ip 192.168.0.110. Um den Tunnel nachzubauen mußt Du also nur die Ip anpassen:

ms@debian:/home/ms# ssh -L 127.0.0.1:9666:192.168.0.110:9666  pi@192.168.0.110 -N

Den Tunnel kannst du mit diesem Link testen.

Nachtrag 21.06.2014
Die Arbeit mit ssh kann man sich generell einfacher machen wenn man ein Configfile für das Tool benutzt. Dort kann man Aliase für Server definieren, deklarieren auf welchem Port sshd läuft oder welcher Key zur Authentifizierung genutzt werden soll. Nähere Informationen dazu gibt es bei den Ubuntuusers oder Nerderati.

Schnelleinstieg in die Kommandozeile

Vor einem Monat fand die Confoo in Montreal, Kanada statt.  Bei der Konferenz ging es primär um die Entwicklung von Webandwendungen. Die Veranstaltung war also nur bedingt für den normalen Ubuntu-User von Interesse wenn  David Winterbottom dort keinen Vortrag gehalten hätte.

David betreibt die Webseite CommandLineFu. Dort kann man nützliche Befehle für die CLI suchen, einstellen, bewerten oder kommentieren.

In der ~60 Slides langen Präsentation werden wichtige Befehle, Ausgabeumleitung, die Bedienung von SSH und Screen und einiges mehr sehr anschaulich erklärt.

Vor allem User, die ein wenig vor der Kommandozeile zurückschrecken sollten sich die Präsentation unbedingt anschauen. Have Fun!!! 🙂

CommandLineFu for web developers

Firewall mit reverse ssh Tunnel perforieren

Im „Linuxnetz“ las ich heute einen Artikel über das Erstellen von SSH Tunneln um z.B. sicher zu surfen. Mit der Secure Shell kann man unglaublich viele Dinge tun, darunter auch groben bis gröbsten Unfug. Ein schönes Beispiel dafür möchte ich hier kurz und nicht vollständig aufzeigen.

Ich bin Besitzer eines WDTV. Dabei handelt es sich um einen Multimedia Player um am TV Filme zu konsumieren. Das Gerät besitzt einen Netzwerkanschluss und kann auch Medien aus „Netzwerkfreigaben“ abspielen. Ich verwende eine modifizierte Firmware für das Gerät, auf der ein openssh Server läuft. Nun kann ich mich per SSH auf das Gerät einwählen und z.B. Kommandos wie Stop, Pause oder Vorspulen absetzen. Ein Freund von mir interessierte sich auch für ein solches Gerät und fragte mich, ob er es sich mal ausleihen könne.

Natürlich war das kein Problem für mich. Allerdings reizte es mich schon ein wenig das Gerät aus der Ferne zu steuern. Sprich der Freund schaut zuhause einen Film und ich drücke per ssh auf Pause oder Spule ein wenig vor. Von wegen der böse Geist in der Maschine und so 🙂

Um dies zu erreichen muß ich mit dem WDTV direkt kommunizieren können. Zuhause bewerkstellige ich das mit

ssh wdtv

Durch den Umzug zu meinem Kumpel kamen nun jedoch 2 Router und das Internet zwischen meine Maschine und das WDTV.

Die auf den 1. Blick einfachste Methode sieht so aus:

Um per SSH auf das WDTV zu kommen brauche ich die public IP und eine Portweiterleitung auf das WDTV bei meinem Kollegen. Nicht sehr elegant wie ich finde. Der Schabernack würde auch recht schnell auffliegen wenn ich ihn um beides bitten würde.

Meine Idee war das Pferd von hinten aufzuzäumen. Das WDTV erzeugt einen Tunnel auf meine Maschine über den ich die Kiste besuchen kann :).

In diesem Szenario wird meine IP benötigt und eine Weiterleitung von Port 22 auf meinen Rechner in meinem Netz sowie 2 Kommandos die beim Start des WDTV ausgeführt werden.

Das ist schon eher machbar.

Die Weiterleitung des Ports kann man in jeden 08/15 Router bequem konfigurieren.

Meine „public IP“ (wie lautet die korrekte Bezeichnung dafür?) finde ich immer mit einem netten Alias heraus:

ms@nostromo:~$ alias |grep wieist*

alias wieistmeineip=’curl icanhazip.com‘

Nun muß ich diese Adresse an einem Ort hinterlegen den das WDTV findet. Man könnte die IP in eine Textdatei schreiben und diese per FTP auf einen Gratis-Webspace kopieren. Wer einen Dienst wie DynDns nutzt hat es wohl noch leichter.

Das WDTV muß nachdem es gestartet ist diese IP abfragen und den Reverse Tunnel aufbauen:

ssh  -T  -R 2222:localhost:22 ms@$PUBIP

Wenn das Gerät an ist – und es ist immer an, auch wenn die Anzeige „Betrieb“  nicht leuchtet – kann ich eine SSH Verbindung zu dem Gerät aufbauen:

ssh ms@localhost -p 2222

Abends hatte ich per Fon sichergestellt, daß mein Kumpel einen Film schaut, 20 Minuten gewartet und dann ab und an mal auf Pause gedrückt, Vorgespult oder das Gerät komplett ausgeschaltet und so für Verwirrung gesorgt. Der Freund begann sogar im Internet nach der Ursache für solche Probleme zu recherchieren nachdem ich sagte, daß ich keine solchen Probleme hätte :). Nach 4 Tagen ließ ich den Unfug dann doch bleiben, da es doch Öde wurde.