-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hoi Kollegen,
ich schiebe die Hintergrund Geschichte mal nach hinten ... ich hab mir grad folgende sportliche Aufgabe gestellt:
ich will auf einen Rechner A (der eine IP-Adresse mittels NAT bekommen hat) Zugriff erlangen, im mindesten per SSH. Sprich ich müsste von diesem aus beispielsweise einen SSH Tunnel auf einen festen Punkt im Netz aufbauen und dann durch diesen rückwärts zugreifen können.
Ich hab nur keinen Plan, wie genau. Daher die Frage: habt Ihr hier Anregungen / Stichtworte für Google oder aber sogar Ideen, wie ich das machen kann?
Hintergrund:
Ich will Zugriff per Internet auf meinen Garten (nur geringe Datenmengen). Dort gibts kein Internet, aber hab ich mein altes Handy zur Verfügung. Dieses mit einer Prepaid-Card ausgestattet kann ich ins Internet schicken, aber der bekommt nur eine NAT IP-Adresse, also nix mit dem ich mit beispielsweise dyndns arbeiten könnte. Dahinter hätte ich noch einen voll funktionstüchtigen Rechner (Raspberry Pie) mit einem Linux meiner Wahl, der das Handy als Gateway nutzen kann. Von diesem aus könnte ich nun eben alles machen, u.a. eben auch eine SSH Verbindung zu meinem Server im Netz aufbauen. die Frage nun: wie komme ich von der aus zurück auf den Raspberry Pie oder auf das Handy?
für Vorschläge bin ich offen.
mfg Maddin
Guten Morgen,
wie wäre es mit IPv6? In diesem Fall per Tunnelbroker wie Sixxs [1] oder HE [2].
[1] https://www.sixxs.net [2] https://tunnelbroker.net
Martin Schuchardt kruemeltee@gmx.de wrote:
Hoi Kollegen,
ich schiebe die Hintergrund Geschichte mal nach hinten ... ich hab mir grad folgende sportliche Aufgabe gestellt:
ich will auf einen Rechner A (der eine IP-Adresse mittels NAT bekommen hat) Zugriff erlangen, im mindesten per SSH. Sprich ich müsste von diesem aus beispielsweise einen SSH Tunnel auf einen festen Punkt im Netz aufbauen und dann durch diesen rückwärts zugreifen können.
sowas: https://www.howtoforge.com/reverse-ssh-tunneling ?
Andreas
Hi,
je nach Mobilfunkanbieter kann es sein, dass es "dieses Jahr" noch natives IPv6 gibt. Wers glaubt.
Ansonsten: TOR hidden service oder SSH reverse tunnel oder (Open)VPN.
Carsten
Hallo Martin,
On Mon, Nov 23, 2015 at 00:43:17 +0100, Martin Schuchardt wrote:
ich will auf einen Rechner A (der eine IP-Adresse mittels NAT bekommen hat) Zugriff erlangen, im mindesten per SSH. Sprich ich müsste von diesem aus beispielsweise einen SSH Tunnel auf einen festen Punkt im Netz aufbauen und dann durch diesen rückwärts zugreifen können.
Ich dazu 2007 mal ein wenig Doku zusammengehackt.
Die Warnung bzgl. geaendertem Host-Key wird bei ausreichend neuer ssh nicht mehr auftauchen, weil inzwischen auch verschiedene Portnummern des gleichen Hosts in der ~/.ssh/known_hosts unterschieden werden.
-----------------------------hier-abbeissen---------------------------
+-----------------------+ |"hopper" | |machine on the internet| |with public IP address | +-----------------------+ / \ / \ / \ . . . Internet . . . / \ / \ +-------------------------+ +-----------------------+ |"anywhere" | |"adminbox" | |any machine with internet| |NAT gateway | |access | +-----------------------+ +-------------------------+ | | local net | +-----------------------+ |"mybox" | |machine behind | |NAT gateway | +-----------------------+
Ziel ==== ssh-Erreichbarkeit des Rechners "mybox" von irgendwo aus dem Internet.
Normalerweise wuerde man das NAT-Gateway "adminbox" so konfigurieren, dass Port 22 (ssh) an "mybox" weitergeleitet wird.
Problem ======= "adminbox" wird nicht von uns administriert, wir haben keinen Einfluss darauf.
Loesung ======= Verwenden des Remote Port Forwarding Feature von ssh, der Rechner "hopper" wird dabei als Zwischenstation genutzt.
Voraussetzungen =============== a) Wir brauchen einen ssh-Account "user" auf einem Rechner mit fester, oeffentlicher IP-Adresse "hopper". Der ssh-Server auf "hopper" muss TCP Port Forwarding erlauben. Die zugehoerige Option in /etc/ssh/sshd_config lautet "AllowTcpForwarding yes". Wenn sie fehlt, ist Port Forwarding trotzdem erlaubt (Defaulteinstellung). Darueber hinaus sollte der ssh-Server auf "hopper" Public Key Authentication erlauben (Defaulteinstellung).
b) Von "mybox" aus muss man sich mittels ssh via Public Key Authentication und ohne Passphrase auf "hopper" einloggen koennen. Der ssh-Server auf "mybox" braucht keine speziellen Einstellungen.
c) Auf "mybox" muessen autossh und screen installiert sein.
Umsetzung ========= Falls b) noch nicht erfuellt ist, erzeugen wir zuerst ein ssh-Schluesselpaar auf "mybox": [ich@mybox]$ ssh-keygen -t dsa -N "" -f ~/.ssh/id_dsa
Es entstehen zwei Dateien: ~/.ssh/id_dsa (privater Schluessel, verbleibt auf "mybox") und ~/.ssh/id_dsa.pub (oeffentlicher Schluessel, muss auf "hopper" kopiert werden).
Kopieren des oeffentlichen Schluessels auf "hopper": [ich@mybox]$ scp ~/.ssh/id_dsa.pub user@hopper:
Einloggen auf "hopper", dort den oeffentlichen Schluessel zu den erlaubten Schluesseln hinzufuegen: [user@hopper]$ cat id_dsa.pub >> ~/.ssh/authorized_keys [user@hopper]$ rm id_dsa.pub
Jetzt sollte es moeglich sein, von "mybox" mit: [ich@mybox]$ ssh user@hopper passwortlos einzuloggen.
Nach einem Reboot von "mybox" soll sich diese automatisch zu "hopper" verbinden. Ausserdem soll die ssh-Verbindung zu "hopper" einen Reboot von "adminbox" ueberleben bzw. danach neu gestartet werden. Fuer den Zweck setzen von autossh ein. Dieses Tool ueberwacht eine ssh-Verbindung und startet sie ggf. neu. Ein Testaufruf sieht so aus:
[ich@mybox]$ autossh -M 15000 -R 10022:localhost:22 -T user@hopper
Die Option "-M 15000" setzt den Monitorport, den autossh fuer die Ueberwachung der ssh-Verbindung benutzt. Der Rest der Kommandozeile wird an die aufgerufene ssh uebergeben. Die Option "-R 10022:localhost:22" sorgt dafuer, dass sich nach erfolgreichem ssh-Login der ssh-Server auf "hopper" an Port 10022 bindet. Zugriffe auf Port 10022 fuehren zurueck zu Port 22 von "mybox", durch die bereits bestehendende ssh-Verbindung und landet damit beim ssh-Server von "mybox". Die Angabe "localhost" in "-R 10022:localhost:22" bezieht sich also auf den Rechner, von dem die ssh-Verbindung aufgebaut wurde.
Fuer den Start von autossh aus einem Initskript beim Booten wird screen benoetigt, da sich ssh ohne kontrollierendes Terminal gleich wieder beendet. Die folgende Zeile sollte in ein Initskript eingefuegt oder zu einem eigenen Initskript ausgebaut werden:
su -c "/usr/bin/screen -d -m /usr/bin/autossh -M 15000 \ -R 10022:localhost:22 -T user@hopper" - ich
Die screen-Session wird im detached-Modus gestartet, laeuft also ohne sichtbare Ausgabe im Hintergrund. Funktioniert die bisherige Konstruktion, sollte sich "mybox" automatisch beim Booten auf "hopper" einloggen und dabei einen Tunnel zurueck auf sich selbst bereitstellen.
Den Tunnel benutzen =================== Um von irgendwo auf "mybox" zu kommen, ist ein zweistufiges ssh-Login noetig. Normales ssh-Login auf "hopper": [me@anywhere]$ ssh user@hopper
Danach ssh-Login auf dem durchs Forwarding belegten Port: [user@hopper]$ ssh -p 10022 ich@localhost
Hinweis: Falls ssh in ~/.ssh/known_hosts bereits einen Host Key fuer "localhost" findet, wird es vermutlich Alarm schlagen, weil sich der Key vermeintlich geaendert hat:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is f0:0b:a0:d0:0d:de:ad:af:fe:ba:dd:ad:08:15:ab:cd. Please contact your system administrator. Add correct host key in /home/user/.ssh/known_hosts to get rid of this message. Offending key in /home/user/.ssh/known_hosts:10 RSA host key for localhost has changed and you have requested strict checking. Host key verification failed.
Die Ursache ist, dass ssh-Zugriffe auf Port 22 und 10022 unterschiedliche Host Keys liefern, die known_hosts-Datei jedoch nicht Port-granular zwischen Hosts unterscheidet. Die Verwendung der zusaetlichen ssh-Option "-o NoHostAuthenticationForLocalhost=yes" unterdrueckt die Verifikation des Host Keys fuer localhost: [user@hopper]$ ssh -p 10022 ich@localhost -o NoHostAuthenticationForLocalhost=yes
Eine andere Moeglichkeit ist das Entfernen der entsprechenden Host-Zeile aus der known_hosts-Datei (nicht empfohlen).
Sicherheitsbetrachtungen ======================== + Remote Tunnel nur direkt von "hopper" nutzbar, Zugriffe auf Port 10022 der Maschine "hopper" von ausserhalb werden nicht zugelassen. + Falls "adminbox" ein Einwahlrouter mit dynamischer IP-Adresse ist, muss diese nicht per dyndns (o.ae.) bekannt gemacht werden, da die Verbindung initial von "mybox" ueber "adminbox" aufgebaut wird. - Privater ssh-Schluessel auf "mybox" ist nicht durch eine Passphrase gesichert.
-----------------------------hier-abbeissen---------------------------
Gruss, Chris
Martin Schuchardt kruemeltee@gmx.de (Mo 23 Nov 2015 00:43:17 CET): …
ich noch einen voll funktionstüchtigen Rechner (Raspberry Pie) mit einem Linux meiner Wahl, der das Handy als Gateway nutzen kann. Von diesem aus könnte ich nun eben alles machen, u.a. eben auch eine SSH Verbindung zu meinem Server im Netz aufbauen. die Frage nun: wie komme ich von der aus zurück auf den Raspberry Pie oder auf das Handy?
a) IPv6 via Tunnelbroker b) (Open)VPN c) SSH Tunnel für arme (-W) d) SSH Port-Forwarding
a hätte den Vorteil, dass es dann wirlklich von überall geht, also überall heisst, wenn Du auf dem Client auch IPv6 hast (ist aber meistens einfach entweder da oder via Tunnelbroker)
Die anderen benötigen einen von Dir betriebenen Fix-Punkt.
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann
Hab ich mit OpenVPN realisiert. Am DSL hängt der Einwahlknoten, der der OpenVPN Server ist. Der DSL Router ist über einen DynDNS-Namen erreichbar (Anbieter Selfhost) Alle meine Rechner können sich darauf einwählen und sind untereinander erreichbar. Auf die Art habe ich 3 Standorte in DE zusammengeschalten. Die Performance hängt massiv von der DSL-Uploadgeschwindigkeit ab.
Andreas
On 23.11.2015 00:43, Martin Schuchardt wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hoi Kollegen,
ich schiebe die Hintergrund Geschichte mal nach hinten ... ich hab mir grad folgende sportliche Aufgabe gestellt:
ich will auf einen Rechner A (der eine IP-Adresse mittels NAT bekommen hat) Zugriff erlangen, im mindesten per SSH. Sprich ich müsste von diesem aus beispielsweise einen SSH Tunnel auf einen festen Punkt im Netz aufbauen und dann durch diesen rückwärts zugreifen können.
Ich hab nur keinen Plan, wie genau. Daher die Frage: habt Ihr hier Anregungen / Stichtworte für Google oder aber sogar Ideen, wie ich das machen kann?
Hintergrund:
Ich will Zugriff per Internet auf meinen Garten (nur geringe Datenmengen). Dort gibts kein Internet, aber hab ich mein altes Handy zur Verfügung. Dieses mit einer Prepaid-Card ausgestattet kann ich ins Internet schicken, aber der bekommt nur eine NAT IP-Adresse, also nix mit dem ich mit beispielsweise dyndns arbeiten könnte. Dahinter hätte ich noch einen voll funktionstüchtigen Rechner (Raspberry Pie) mit einem Linux meiner Wahl, der das Handy als Gateway nutzen kann. Von diesem aus könnte ich nun eben alles machen, u.a. eben auch eine SSH Verbindung zu meinem Server im Netz aufbauen. die Frage nun: wie komme ich von der aus zurück auf den Raspberry Pie oder auf das Handy?
für Vorschläge bin ich offen.
mfg Maddin -----BEGIN PGP SIGNATURE----- Version: GnuPG v2
iQEcBAEBCAAGBQJWUlMQAAoJEOsoHAqnZGhf4Y0IAJiIkOVLEpwz5raf8BanatGf Hu7cfhiT4KJ7YSUb2zfYuV+RIR0gOS+UrF37tK6IjPBs3JjCPjh9aFHnHBTjw678 KW9ovaGGljymdllvzzjhIcSNGwGwMZsuwPt0htnVxE8Byr25Xl2/fYTToIXoKPuy YTgl9PmS4if96CfB0LOkycLSq56HpKwrB+Ms+hUlXBmKF2dzB6SvNJ54G6D2h2Cn xx12c1Uzb6Htv8xuAOg/Ej/7FvW3EOL2kvWkjCYHCIBjWf6m4QX7jS/a+Rt2+yUT JgWh1L99s//qo0ZWYHBjuPnvrijFwDFg9pzDJV2rTavKukVN+NxMoeZ6EQCi+Uk= =l+S2 -----END PGP SIGNATURE-----
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hoi @ all,
vielen Dank für die tollen Hinweise,
@Christian Tolle Anleitung, dass muss ich mir unbedingt mal einpfeifen ... klingt sehr interessant
@all Ich versuche die von Euch beschriebenen Szenarien mal durchzusetzen, wenn ich Erfolg habe, schreib ich ein kurzes "wie ichs gemacht hab"
mfg Maddin
Am 23.11.2015 um 21:26 schrieb Andreas Oettel:
Hab ich mit OpenVPN realisiert. Am DSL hängt der Einwahlknoten, der der OpenVPN Server ist. Der DSL Router ist über einen DynDNS-Namen erreichbar (Anbieter Selfhost) Alle meine Rechner können sich darauf einwählen und sind untereinander erreichbar. Auf die Art habe ich 3 Standorte in DE zusammengeschalten. Die Performance hängt massiv von der DSL-Uploadgeschwindigkeit ab.
Andreas
On 23.11.2015 00:43, Martin Schuchardt wrote: Hoi Kollegen,
ich schiebe die Hintergrund Geschichte mal nach hinten ... ich hab mir grad folgende sportliche Aufgabe gestellt:
ich will auf einen Rechner A (der eine IP-Adresse mittels NAT bekommen hat) Zugriff erlangen, im mindesten per SSH. Sprich ich müsste von diesem aus beispielsweise einen SSH Tunnel auf einen festen Punkt im Netz aufbauen und dann durch diesen rückwärts zugreifen können.
Ich hab nur keinen Plan, wie genau. Daher die Frage: habt Ihr hier Anregungen / Stichtworte für Google oder aber sogar Ideen, wie ich das machen kann?
Hintergrund:
Ich will Zugriff per Internet auf meinen Garten (nur geringe Datenmengen). Dort gibts kein Internet, aber hab ich mein altes Handy zur Verfügung. Dieses mit einer Prepaid-Card ausgestattet kann ich ins Internet schicken, aber der bekommt nur eine NAT IP-Adresse, also nix mit dem ich mit beispielsweise dyndns arbeiten könnte. Dahinter hätte ich noch einen voll funktionstüchtigen Rechner (Raspberry Pie) mit einem Linux meiner Wahl, der das Handy als Gateway nutzen kann. Von diesem aus könnte ich nun eben alles machen, u.a. eben auch eine SSH Verbindung zu meinem Server im Netz aufbauen. die Frage nun: wie komme ich von der aus zurück auf den Raspberry Pie oder auf das Handy?
für Vorschläge bin ich offen.
mfg Maddin
_______________________________________________ Lug-dd maillist
- Lug-dd@mailman.schlittermann.de
_______________________________________________ Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
lug-dd@mailman.schlittermann.de