Fernwartung über eigenen Proxy / Tunnel

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hier ein kleiner Tip damit andere auf euer System über ssh connecten können ohne extra eine Portweiterleitung aktivieren zu müssen ;)

    ssh -f -N -R remote_port:localhost:22 remoteuser@remote_ip -p22

    Wichtig ist hierbei das -R -> "Reverse" ssh tunnel

    Also zum Beispiel:

    Auf eurem RaspberryPI Zuhause führt ihr folgenden Befehl aus:ssh -fN -R 2048:localhost:22 support@forum-raspberrypi.de -p22

    Derjenige der dann zu eurem PI eine Verbindung herstellen soll gibt dann auf dem forum-raspberrypi.de Server das ein: ssh -p 2048 localhost

    Wenn man das so startet wird auf remote_ip ein lauschendes Socket auf Port 2048 eingerichtet.
    Jede Verbindung die dorthin aufgebaut wird, wird durch den SSH Tunnel auf Port 22 auf ‚localhost‘ weitergeleitet (also der Rechner bei dem man diesen Befehlt eingibt). Allerdings lauscht das Socket nur auf Localhost.. Um das wiederum zu ändern setzt man ein " :* " vor den remote_port

    Erklärung zu den Parametern:
    -f : ssh geht in den hintergrund
    -N : ssh baut nur den tunnel auf aber baut kein command stream auf
    -R : sagt ssh das es ein reverse tunnel aufbauen soll
    2048 : ist der port auf den sich das remote system verbindet
    localhost:22 : ist die host und port wohin die verbindung getunnelt werden soll (22 wäre der standard port von ssh)
    support@ : als welcher benutzer man sich auf remote_ip angemeldet. es kann auch stattdessen -l <benutzer> genutzt werden ( wobei man für <benutzer> etwas einsetzt also zum beispiel: -l user )
    -p 22 : ist der ssh port von remote_ip (falls nicht Standard 22 kann man das hiermit abweichend angeben) um eine Verbindung aufzubauen


    Noch ein Beispiel:
    Mein RaspberryPI zuhause ist der Client. (local)
    Ein Rechner im Internet ist der Server, zB ein vServer o.ä. (Remote)

    Auf meinem PI zuhause führe ich folgendes aus:

    Code
    ssh -N -T -R 1234:127.0.0.1:22 root@raspberrypi.roxxs.org

    Auf meinem Server im Internet (raspberrypi.roxxs.org) führe ich folgendes aus:

    Code
    ssh -p 1234 root@127.0.0.1

    ..nun kann ich mich als root Benutzer zuhause auf meinem PI anmelden - und das komplett ohne Portweiterleitung.


    Man sollte aber sicherstellen das der ssh Befehl auf dem Client auch weiterhin aktiv ist auch wenn man das Terminal schließt bzw unter Umständen schmiert der Prozess auch mal ab.. Also wärs praktisch dafür ein Script einzurichten und über Crontab jede Minute ausführen zu lassen:

    Spoiler anzeigen

    Desweiteren muss bei erneutem ausführen des Befehls auch jedes mal das Remote Password eingegeben werden... Dafür würde sich die Erstellung eines SSH Keyfiles anbieten.


    Mehr dazu könnt ihr hier nachlesen:
    Permanenter Reverse SSH Tunnel
    http://bbrinck.com/post/231856275…port-forwarding
    http://www.noah.org/wiki/SSH_tunnel
    http://netz10.de/2011/01/10/ssh-tunnel/
    http://www.jfranken.de/homepages/joha…_inhalt.de.html
    http://www.brandonhutchinson.com/ssh_tunnelling.html
    http://www.howtoforge.com/reverse-ssh-tunneling
    http://project-run.com/archives/48-SS…-tunneling.html

  • Da viele von euch gerne extern auf Ihre Webinterface statt Shell zugreifen möchten, weil Sie nicht immer alle Befehle etc kennen oder es gerne "übersichtlicher" hätten, hab ich für euch eine simple Lösung zusammen geschrieben.

    Ihr müsst nur den ssh Service forwarden aber sonst keinen unnötigen Port wie HTTP usw

    Damit wir das ganze auch sicher machen, legen wir einen extra Shell User an und zugleich verweigern wir "root" den Login.

    User anlegen & root login verweigern

    • adduser <usernachwahl>
    • nano /etc/ssh/sshd_config
      PermitRootLogin no
    • Test Login mit eurem neuen User, wenn dies funktioniert - könnt Ihr ssh Server neustarten(!)
    • /etc/init.d/ssh restart

    Login ist jetzt nur mehr mit dem neuen User möglich(!)
    Mittels "su" habt Ihr für die Sitzung wieder root Rechte.

    Router Forwading

    Auf eurem Router müsst Ihr jetzt den ssh Port forwarden für euren Server. Ich gehe mal davon aus, dass der SSH Port schon geändert ist.

    So jetzt kommen wir zu dem Proxy, dafür benötigen wir "Tunnelier Portable" http://tp.vbap.com.au/download
    Dies könnt Ihr direkt auf einen USB Stick speichern und von jedem Rechner aus öffnen (!)


    Anleitung für Tunnelier
    SOCKS Proxy über SSH Verbindung

    Tunneliere

    1.) Login => SSH Server eintragen (shell user was ihr angelegt habt)
    2.) Option => On Login: alles deaktivieren
    3.) Service => Enable (Socks/HTTP Proxy): alles so beibehalten
    4.) Login


    Browser

    Proxy aktivieren, siehe Bild

    Du bist ab sofort in deinem eigenem Netz zuhause und Surfst jede Seite auch über deine öffentliche IP an!
    Und kannst wie zuhause jetzt alles machen ohne Einschränkung!


    Ich hoffe es war verständlich für euch!

  • SOCKS PROXY mittels Terminal
    Für OSX und LINUX user

    Terminal öffnen

    ssh -D 1080 user@sshserver -p PORT

    solang diese Session besteht, kann man wie oben im Bild die Proxy Settings vornehmen und los legen!


    Vorteil:
    MAC/LINUX User brauchen nicht´s installieren nur ihren Terminal öffnen

  • Hallo,

    ich habe versucht, den socks proxy mit dem Befehl
    ssh -D 8888 root@192.168.178.6 -p 3128
    zu starten. Leider ohne Erfolg.
    Zur Information:
    Auf meinem Raspberry Pi läuft mit sehr viel Erfolg ein squid-proxy, der an port 3128 lauscht.
    Allerdings ist der squid-proxy ein reiner http-proxy, d.h. was anderes als web-Abfragen leitet er nicht weiter. Ich benötige aber für ein Netzwerk-Spiel meiner Kinder einen proxy, der alles weiterleitet.
    Der Raspberry Pi hat die IP-Adresse 192.168.178.6 und ich habe mich als root angemeldet, als ich direkt auf dem Raspberry Pi den Befehl
    ssh -D 8888 root@192.168.178.6 -p 3128
    ausgeführt habe.
    Dennoch gibt es von Windows-Answendung, der als Proxy der Computer 192.168.178.6 und der port 8888 als Proxy angegeben wurde, eine Meldung, dass die Verbiundung nicht zustande kam.
    Was soll ich noch machen?
    Es gibt etwa ein Dutzend Beispiele, wie man mit Hilfe von ssh tunneln kann, aber leider sind diese alle ein kleines bischen unterschiedlich. Und keine dieser Lösungen scheint zu klappen. Das ist doch verrückt!
    Nach einer Weile meldet sich der Raspberry Pi mit
    "ssh_exchange_identification: Connectiuon closed by< remote host"
    Es gibt einige Tutorials und diese geben immer einer weiterern Proxy an, um anonym zu bleiben. Ich möchte aber nicht noch zusätzlich einen weiteren externen Proxy nutzen, sondern mit dem squid-proxy Werbung, Pornografie etc. rausfiltern.

    Kann mir jemand helfen mit einer Lösung die wirklich funktioniert?
    Vielen Dank im voraus.

    Andreas


  • ssh -D 8888 root@192.168.178.6 -p 3128
    zu starten. Leider ohne Erfolg.
    Zur Information:
    Auf meinem Raspberry Pi läuft mit sehr viel Erfolg ein squid-proxy, der an port 3128 lauscht.

    Wenn dein sshd nicht auf Port 3128 lauscht, warum willst Du dann mit dem ssh-Client auf Port 3128 verbinden?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Hallo huwe,
    auch wenn du über SSH damit einen socks Proxy hast, musst du bei den Einstellungen im Firefox oder IE ein http Proxy einstellen.

    Ich hatte mit dem Absichern vom Internet das gleiche Problem. Google mal nach ipfire. Das ist meiner Meinung nach die beste Lösung für dieses Problem.

    Einmal editiert, zuletzt von marco67 (8. Dezember 2013 um 16:23)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!