Como posso expor várias portas do servidor remoto via sshuttle? O

5

Eu tenho um servidor remoto que expõe apenas o SSH. Ele tem serviços em execução em outras portas, por exemplo, um banco de dados na porta 3306. Essas portas não podem ser acessadas remotamente, mas podem ser acessadas no contexto do servidor ( localhost:3306 ).

Usando ssh -L , posso acessar uma única porta no servidor remoto . Mas como posso tornar todas essas portas acessíveis para minha máquina local através de uma conexão ssh / sshuttle?

    
por d3vid 11.07.2017 / 16:55

1 resposta

4

No servidor remoto, defina um endereço IP secundário , por exemplo, 10.0.0.1, que aponta para si mesmo. (Da mesma forma que 127.0.0.1 faz.)

Na sua máquina local, crie sua conexão sshuttle da seguinte forma:

sshuttle -r user@remote 10.0.0.1
# "user" is your username on the remote machine
# "remote" is the name or IP address of the remote machine

Agora você pode acessar o servidor remoto no endereço 10.0.0.1. Por entender que as conexões de 10.0.0.1 são "próprias", todas as portas estão acessíveis nesse endereço. (Eles deixam de ser acessíveis assim que você fecha a conexão sshuttle.)

Você pode confirmar isso com os seguintes comandos:

nmap remote # returns only ssh port
nmap 10.0.0.1 # returns all ports

Agora você pode se conectar ao seu banco de dados com o endereço 10.0.0.1:3306 . Por exemplo, se é um banco de dados MySQL você pode se conectar ao MySQL Workbench.

Se essa abordagem combina com você, você pode querer investigar o uso de sshoot para gerenciar suas conexões sshuttle.

    
por d3vid 13.07.2017 / 17:01