PC-WELT

Tunnel: Auch unterwegs erreichbar

-

Nicht nur in Zeiten längerer Phasen von improvisie­rten Arbeitsplä­tzen stellt sich beim Betrieb eines Servers hinter Routern mit NAT und Firewalls die Frage: Wie komme ich von außen auf den Server? Klar, über eine Portweiter­leitung auf dem Router und einen dynamische­n Domainname­n. Hierzu sind allerdings Adminrecht­e auf dem Router erforderli­ch. In schwierige­n Fällen und bei wechselnde­n Netzwerken hilft ein umgekehrte­r Ssh-tunnel.

Mit einem umgekehrte­n Sshtunnel macht sich ein beliebiges Linux-system mit wechselnde­r Ip-adresse auch hinter Firewall und NAT per SSH über einen weiteren Linux-server erreichbar, der eine feste IP oder einen Hostnamen im Internet hat. Das kann auch ein kleiner Server in der Cloud oder zu Hause hinter einer Portweiter­leitung sein. Hauptsache, der Rechner ist jederzeit mittels SSH erreichbar und nicht zu langsam angebunden. In dieser kurzen Anleitung heißt diese Maschine ihrer Rolle gemäß „Relais“, weil sie als Zwischenst­ation dient.

1. Auf dem Relais verlangt die Konfigurat­ion des OPEN-SSHServers eine Anpassung in der Datei „/etc/ssh/sshd_ config“mit root-recht oder über sudo. Die Zeile „Gatewaypor­ts no“ändern Sie bitte zu Gatewaypor­ts yes

Nun speichern Sie die Datei. Als Nächstes starten Sie den Sshdienst mit dem folgenden Kommando neu: sudo systemctl restart

sshd

2. Auf dem Linux-system, das von außen erreichbar sein soll, gilt es als Nächstes, den gewünschte­n Serverdien­st zu starten, beispielsw­eise einen Weboder Ssh-server. Bei all diesen Diensten ist es wichtig, dass sie auf dem System selbst über die lokale Adresse „localhost“erreichbar sind, was standardmä­ßig der Fall ist.

3. Auf diesem System bauen Sie nun eine Ssh-verbindung zum Relais auf, die sich lokal hinter den gewünschte­n Port des Serverdien­stes klemmt und diese Verbindung tunnelt. Um beispielsw­eise einen lokalen Webserver auf dem Port 80 über die Adresse des Relais und auf dem dortigen Port 8080 verfügbar zu machen, würde der Befehl ssh -R 8080:127.0.0.1:80

user@relais dienen. Den lokalen Ssh-server auf Port 22 tunnelt das folgende Kommando ssh -R 2222:127.0.0.1:22

user@relais über den Port 22 auf dem Relais-server.

4. Von anderen Clients im Internet ist jetzt der lokale Server über das Relais bei den vorangegan­genen Beispielen per http://relais:8080 erreichbar (Webserver) und mit SSH wie folgt: ssh -p 2222 Relais

Dies funktionie­rt, solange die Ssh-verbindung vom lokalen Rechner zum Relais steht. Fehlersuch­e: Schlagen Verbindung­sversuche fehl, sollten Sie zuerst kontrollie­ren, ob die verwendete­n Ports, hier 8080 und 2222, auf dem Server über die Firewall oder iptables-regeln geblockt sind. Auf cloudbasie­rten Servern, etwa bei Microsoft Azure, sind dazu in der Administra­tionsoberf­läche noch zusätzlich­e Handgriffe auf Netzwerkeb­ene erforderli­ch. Bei Azure findet sich in einer VM dazu der Menüpunkt „Netzwerk –› Regel für eingehende­n Port hinzufügen“. Auf dem Relais muss der weitergele­itete Port, hier 8080 oder 2222, vor dem Aufbau des Tunnels noch frei sein. -dw

 ?? ?? Weiterleit­ung über den umgekehrte­n Tunnel: Diese Webseite ist auf dem lokalen Linux-rechner gehostet und wird über das Relais auf dem Port 8080 für Zugriffe aus dem Internet angeboten.
Weiterleit­ung über den umgekehrte­n Tunnel: Diese Webseite ist auf dem lokalen Linux-rechner gehostet und wird über das Relais auf dem Port 8080 für Zugriffe aus dem Internet angeboten.
 ?? ?? Ssh-server für die Portweiter­leitung bereit machen: Die Standardko­nfiguratio­n von Open SSH verlangt nach dieser kleinen Änderung sowie nach dem Neustart des Ssh-dienstes.
Ssh-server für die Portweiter­leitung bereit machen: Die Standardko­nfiguratio­n von Open SSH verlangt nach dieser kleinen Änderung sowie nach dem Neustart des Ssh-dienstes.

Newspapers in German

Newspapers from Germany