Server-Fernsteuerung

SSH-Port umkonfigurieren

Sonntag den 04.08.2013 um 07:05 Uhr

von Jürgen Donauer

Können fast alle Router: Wenn Ihr Router nicht gerade aus
der digitalen Steinzeit stammt, sollte er Port Forwarding
beherrschen.
Vergrößern Können fast alle Router: Wenn Ihr Router nicht gerade aus der digitalen Steinzeit stammt, sollte er Port Forwarding beherrschen.

Möchten Sie den ssh-Server auf einem anderen Port lauschen lassen, stellen Sie das in der Regel in der Datei /etc/ssh/ssh_config ein. Dort gibt es eine auskommentierte Zeile # Port 22. Ist hier nichts anderes hinterlegt, horcht OpenSSH auf Port 22. Wenn Sie das Kommentarzeichen (#) entfernen und einen anderen Port hinterlegen, müssen Sie aber den SSH-Daemon neu starten: sudo service ssh restart oder /etc/init.d/ssh restart.

Den Router richtig einstellen

Als nächsten Schritt müssen wir dem Router mitteilen, dass er sämtlichen von außen kommenden Verkehr auf den SSH-Port umleiten soll. Hier kommt es ein bisschen auf den Router an, aber Sie sollten diese Einstellung irgendwo unter Port Forwarding finden. Sie sollten eine entsprechende Anleitung in Ihrem Router-Handbuch finden. Für netgear-Router funktioniert es zum Beispiel wie in dieser Anleitung (PDF) . Dieses Prinzip sollte für 90 Prozent aller Router sehr ähnlich sein.

Abstrakt gesagt müssen Sie den Datenverkehr, der von außen via Port 22 kommt auf den eigenen Server-Port 22 direkt umleiten. Voraussetzung ist natürlich, dass Sie die Standard-Ports verwenden.

Notlösung: Auch so könnten Sie erfahren, wie die
IP-Adresse ihrer Heim-Internetverbindung derzeit ist.
Vergrößern Notlösung: Auch so könnten Sie erfahren, wie die IP-Adresse ihrer Heim-Internetverbindung derzeit ist.

Die eigene IP-Adresse ausfindig machen

Wer eine eigene IP-Adresse hat, ist ein wenig im Vorteil. Allerdings haben die meisten modernen Router dynamische IP-Dienste, wie zum Beispiel dyndns.org oder no-ip.com bereits integriert. Mit diesen Diensten meldet der Router die vom Provider zugewiesene IP-Adresse an den dynamischen Dienst und Sie können ihren Rechner dann mit zum Beispiel mein-toller-server.no-ip-info ansprechen. Dies ist natürlich sehr komfortabel und Sie müssen sich nur eine Adresse merken. Sobald Sie Ihre Adresse wissen, können Sie nun Ihren Server von außen erreichen.

Wenn Sie einen solchen Dienst nicht nutzen möchten oder der Router tatsächlich keinen der dynamischen IP-Dienste unterstützt, ist etwas Bastelarbeit gefragt. Zunächst müssen wir die externe IP-Adresse des Routers herausfinden. Sehr einfach geht das über den Dienst bitblokes.de/ip/, weil der nur die IP-Adresse zurückliefert. Sie müssen also nicht weiter parsen. Was Sie für diese „Proof of Concept“-Methode allerdings brauchen ist ein Speicherplatz im Web, den Sie via FTP ansprechen können. Und ein Tool zum Übertragen der IP-Adresse – dafür nutzen wir curl.

Sollte sich curl (Client for URLs) nicht auf Ihrem Server befinden, installieren Sie diesen Dienst einfach nach. Er sollte sich in den meisten Repositories befinden: apt-get install curl. Nun brauchen Sie nur noch ein kleines Script, dass via ftp und cronjob eine Datei auf den FTP-Server hochlädt, die die IP-Adresse beinhaltet. Öffnen Sie einen Texteditor und tippen Sie folgendes exakt so ein:

#!/bin/bash
MYIP=`/usr/bin/curl http://bitblokes.de/ip/ > /<Pfad zu Datei>/eigene-adresse.txt`
HOST= '<Ihr FTP-Host>'
USER='<Ihr FTP-Benutzername>'
PASSWD='<Ihr FTP-Passwort>'

ftp -n -v $HOST << EOT
ascii
user $USER $PASSWD
prompt
put /<Pfad zu Datei>/eigene-adresse.txt <Pfad auf dem FTP-Server>/meine-adresse.html
bye
EOT
sleep 5

Speichern Sie dieses Script nun zum Beispiel unter /home/<nutzername>/eigene-ip.sh auf dem Server ab und rufen diese in regelmäßigen Abständen auf. Damit wissen Sie auch, unter welcher IP-Adresse Ihr Server von außen erreichbar ist. Die cron-Tabelle editieren Sie mittels crontab –e und ein stündlicher Aufruf würde zum Beispiel so aussehen:

0 */1 * * * /bin/sh /home/<nutzername>eigene-ip.sh >> /dev/null 2>&1

Übrigens wird ein Test vom internen Netzwerk auf den externen Zugriff fehlschlagen. Für einen Test brauchen Sie eine zweite Internet-Verbindung.

Mit Windows eine Verbindung von außen realisieren

Wie bereits erwähnt ist eine Möglichkeit Filezilla zu verwenden. WinSCP ist eine weitere Option. Die beiden Pakete sind relativ komfortabel zu bedienen und Sie können so auf den Server zugreifen, wenn Sie Daten benötigen. Ein Nachteil ist aber, dass Sie die Daten zunächst transferieren müssen und nicht direkt auf dem Server arbeiten können.

Eleganter ist es, das Laufwerk einzubinden. Das können Sie zum Beispiel mittels Dokan SSHFS (via FUSE für WIndows) realisieren. Was auf der Webseite nicht ganz klar hervorgeht, ist, dass die Version 0.2.0 nicht unter Windows 7 64-Bit funktioniert. Man ist geneigt, diese Version zu installieren, weil Ausgabe 0.6.0 laut Aussage des Entwicklers bestimmte Funktionen nicht enthält. Es gibt ein paar Lösungsvorschläge, aber die funktionieren laut Aussagen von Anwendern nicht zufriedenstellend. Man müsste 0.2.0 zwingen als 32-Bit-Software ausgeführt zu werden. Allerdings berichten Nutzer von Problemen wie zum Beispiel Timeouts. Version 0.6.0 funktioniert unter Windows 7 64-Bit allerdings tadellos.

Sie geben die Server-Adresse ein, hinterlegen Benutzernamen und Passwort, das Startverzeichnis auf dem Server und legen das designierte Windows-Laufwerk fest. Danach bindet ein Knopfdruck das SSH-Verzeichnis ein und sie können es wie ein Laufwerk behandeln. Wie performant die Geschichte ist, hängt natürlich ein bisschen von der verwendeten Internet-Verbindung ab.

Sonntag den 04.08.2013 um 07:05 Uhr

von Jürgen Donauer

Kommentieren Kommentare zu diesem Artikel (0)
1281107