encaminhamento de porta nginx / tunelamento ssh

1
  • Eu tenho um computador (vamos chamá-lo de A) em uma rede local sem endereço IP estático acessível de fora. (Porta SSH AAAAA )
  • A tem um servidor que eu quero poder acessar do lado de fora
  • Eu tenho um servidor (B) acessível a partir da internet, que também executa um servidor web (porta ssh: BBBBB )
  • Eu quero poder acessar o servidor da web de A a B de qualquer computador com um navegador da Web.

Eu tenho usado o tunelamento remoto SSH com sucesso com a seguinte configuração:

  • na máquina A:

    $> ssh -f -N -p BBBBB -R 0.0.0.0:9000:localhost:AAAAA [email protected]

  • na máquina C:

    $> ssh -f -p 9000 -D 9001 -N [email protected]

  • no navegador da máquina C, manual proxy configuration SOCKS host: localhost, port 9001, SOCKS v5

Isso funciona muito bem, mas é muito difícil ter que iniciar o comando SSH em C e alterar as configurações no navegador da Web sempre ...

Então eu falei sobre isso para alguém, que me disse que eu provavelmente poderia simplificar a configuração fazendo com que a peça fosse feita na máquina C diretamente no servidor B, com alguma configuração web no nginx no servidor da Web de B. Então agora eu tentei isso:

  • Em A, igual a antes
  • em B:

    $> ssh -f -p 9000 -D 9001 -N [email protected]

  • na configuração do nginx de B:

    $> cat /etc/nginx/sites-available/default:

upstream tunnel {
    server 127.0.0.1:9000;
}

server {
        listen 80;
        [...]
      location /A {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        proxy_pass http://tunnel;
  }
    [...]
}
server {
        listen 443 ssl;
        [...]
      location /A {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://tunnel;
  }
    [...]    
}

No meu entender, a partir de um navegador da Web em uma máquina conectada à Internet, solicitar http://B.B.B.B/A deve encapsular para 127.0.0.1:9000 , que é a porta encaminhada para minha máquina A, me dando acesso ao servidor web em A

Algo está errado nesta configuração, como quando tento me conectar a http://B.B.B.B/A Eu recebo um longo tempo de carregamento (cerca de um minuto) seguido por uma página em branco, com a seguinte mensagem de erro:

SSH-2.0-OpenSSH_6.7p1 Raspbian-5+deb8u3
Protocol mismatch.

Eu pesquisei esse erro um pouquinho e encontrei algumas postagens com problemas relativamente semelhantes, mas, honestamente, com minhas habilidades (muito) limitadas nesse tipo de coisa, estou perdido ao tentar projetar sua correção para meu caso de uso ... Alguém pode ajudar-me?

    
por lagarkane 13.04.2018 / 15:19

0 respostas