Como configuro um túnel ssh para obter dados do servidor de um IP da lista de permissões para alimentar uma compilação local?

2

É possível que isso tenha sido respondido e minha nostalgia esteja me impedindo de entender as respostas ...

Estou trabalhando remotamente. Eu tenho uma compilação local que eu executo em 127.0.0.1:8080. Essa compilação precisa obter dados de um banco de dados remoto. O banco de dados remoto permite que apenas determinados IPs se conectem. Eu tenho outro servidor que está na lista de permissões. Então, eu preciso configurar um túnel para o meu servidor na lista de permissões para obter os dados do banco de dados, enviar esses dados de volta para a minha compilação local.

Posso configurar um túnel para que todo o tráfego da minha web passe pelo meu servidor na lista de permissões, mas não consigo mais acessar minha versão local. Ou posso executar minha compilação local, mas não posso usá-la porque acha que o servidor está desconectado.

Estou confortável com o Terminal, mas não tenho certeza de como configurá-lo para que eu obtenha apenas as informações do servidor (e conecte-as à minha compilação local) em vez de todo o tráfego da Web.

    
por Thomas 29.07.2015 / 04:44

1 resposta

0

Posso ajudá-lo a conectar sua compilação local (Server-Software-Application?) a uma porta local, que é um túnel para o seu servidor de banco de dados.

Você deve conseguir conectar-se à sua localbuild através do navegador na porta 8080 enquanto o seu Server-Software-Application estiver se conectando ao servidor de banco de dados, que pode ser acessado por um ssh-tunnel através do servidor da lista de permissões.

Se isto é, o que você quer, eu posso te ajudar com o seguinte ...

Eu suponho que você pode se conectar via ssh de sua compilação local ao seu servidor da lista de permissões e que você pode configurar sua conexão de banco de dados em sua compilação local.

  1. conecte-se ao seu servidor da lista de permissões
  2. configurar um túnel do servidor da lista de permissões para o servidor de banco de dados
  3. configure sua compilação local para se conectar ao 'localhost'

Passo 1. + 2. pode ser feito em um comando cli:

ssh -L <any-number-gt-1024>:<database-server-ip>:<database-server-port> <your-username>@<whitelisted-server>

Exemplo:

Para um servidor de banco de dados PostgreSQL que aceita conexões na porta 5432 com ip 192.168.1.20 e o servidor whitelisted com o ip 192.168.1.30 você pode configurar o túnel assim:

ssh -L 1155:192.168.1.20:5432 [email protected]

Se esta conexão ssh for estabelecida, você obtém um túnel de sua localbuild (de onde a conexão ssh é inicializada) para o servidor de banco de dados através do servidor da lista de permissões. Você pode conversar com o banco de dados conectando-se a 'localhost: 1155'

telnet localhost 1155

Agora você pode configurar seu localbuild para se conectar ao localhost na porta 1155 para conectar-se ao servidor de banco de dados.

Explicação

Você se conecta ao seu servidor da lista de permissões por

ssh [email protected]

Para configurar um encapsulamento que pode ser acessado no host local (que é o parâmetro -L) e se conecta ao servidor de banco de dados por meio do servidor da lista de permissões, é necessário colocar o nome / ip e a porta pela qual o servidor de banco de dados pode ser acessado. whitelisted-server nos parâmetros para o ssh connect. Isso também funciona com nomes DNS ou entradas / etc / hosts.

-L 1155:<DB-Server>:<DB-Port>

O PostgreSQL escuta na porta 5432 por padrão. MySQL: 3306 ...

Etapa 3:

configure seu servidor-software-aplicativo para conectar-se ao localhost: 1155 (ou qualquer porta que você tenha escolhido) e use a conta db-login-account de seu servidor da lista de permissões.

Notas

  • Você deve usar uma porta no host local, que não está em uso. Mas você deve ser avisado pelo ssh, se a porta já estiver em uso.
  • cuide dos seus comandos sql que você envia para o banco de dados (por exemplo, DROP e TRUNCATE). Você está enviando estes comandos não para o seu db localhost, mas para o servidor de banco de dados que você alcança pelo túnel ssh! Este não é o seu banco de dados de compilação local se o túnel estiver em funcionamento.
  • Esta configuração de túnel também funciona com todas as outras portas acessíveis. Útil para o Tomcat-Admin-Manager-App, etc., apenas para escuta local.
por 30.07.2015 / 10:17