Use o netcat para fazer a ponte através do firewall?

0

Eu tenho uma máquina atrás de um firewall. É a minha máquina, eu configurei o ssh, mas é completamente firewall. Minha solução foi usar um shell reverso configurado em uma base de cron para reconectar se ele falhar usando o netcat. O comando é bash -i >& /dev/tcp/myhostname.duckdns.org/10000 0>&1 e no meu computador local nc -l 10000 . Até agora isso funcionou, porque eu posso dizer para se juntar à minha VPN privada com um comando. Por alguma razão, esse comando não está funcionando. Então, eu sou capaz de "login" através do shell bash gerado, mas não posso voltar para o meu computador porque Pseudo-terminal will not be allocated because stdin is not a terminal. e eu não configurei chaves ssh no sistema nunca, e ele não vai me deixar entrar com uma senha.

Então, estou tentando encontrar uma solução usando o netcat, mas não obtive êxito. O que estou prevendo é algo assim:

[servidor] --- netcat - > [meu-computador: porta1]

de tal forma que eu posso pegar isso para fazer o login no servidor sshd e consertar o que precisa ser consertado. Mas não consigo descobrir os comandos netcat que conseguiriam isso. Qualquer ajuda?

    
por justin 22.06.2016 / 04:55

1 resposta

1

Descobri uma resposta para o resto da internet (e eu mesmo). Veja como conseguir o encaminhamento de porta com apenas netcat (verificado trabalhando no OS X El Capitan):

No servidor por trás do firewall (de entrada):

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

No computador local:

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

No computador local, terminal separado:

ssh localhost -p 9001
    
por 22.06.2016 / 13:57

Tags