Netcat zum Überbrücken der Firewall verwenden?

Netcat zum Überbrücken der Firewall verwenden?

Ich habe eine Maschine hinter einer Firewall. Es ist meine Maschine, ich habe SSH eingerichtet, aber sie ist vollständig durch eine Firewall geschützt. Meine Lösung besteht darin, eine Reverse Shell zu verwenden, die auf Cron-Basis eingerichtet ist, um die Verbindung wiederherzustellen, wenn sie mit Netcat fehlschlägt. Der Befehl lautet bash -i >& /dev/tcp/myhostname.duckdns.org/10000 0>&1und auf meinem lokalen Computer nc -l 10000. Bis jetzt hat das funktioniert, weil ich ihm mit einem Befehl sagen kann, dass es meinem privaten VPN beitreten soll. Aus irgendeinem Grund funktioniert dieser Befehl nicht. Ich kann mich also über die erstellte Bash-Shell „anmelden“, aber ich kann nicht per SSH auf meinen Computer zurückgreifen, weil Pseudo-terminal will not be allocated because stdin is not a terminal.ich auf diesem System noch nie SSH-Schlüssel eingerichtet habe und es mich nicht mit einem Passwort anmelden lässt.

Ich habe also versucht, eine Lösung mit Netcat zu finden, aber ohne Erfolg. Was ich mir vorstelle, ist ungefähr das hier:

[Server] ---netcat--> [mein Computer:Port1]

so dass ich mich darauf beim SSHD-Server anmelden und alles reparieren kann, was repariert werden muss. Aber ich kann die Netcat-Befehle nicht herausfinden, die das bewerkstelligen würden. Irgendwelche Hilfe?

Antwort1

Ich habe eine Antwort für das restliche Internet (und mich selbst) gefunden. So erreichen Sie Portweiterleitung nur mit Netcat (funktioniert nachweislich unter OS X El Capitan):

Auf dem Server hinter der (eingehenden) Firewall:

nc localhost 22 >& /dev/tcp/<your-hostname>/<open port on local computer, i.e. 9000> 0>&1

Auf dem lokalen Computer:

cd /tmp; mkfifo backpipe
nc -l 9000 0<backpipe | nc -l 9001 | tee backpipe

Auf dem lokalen Computer, separates Terminal:

ssh localhost -p 9001

verwandte Informationen