Como configurar um servidor para tunelamento SSH reverso que pode ser usado por vários usuários?

2

Desculpe pela parede de texto, sou um pouco novato, mas esgotou meus recursos de pesquisa.

Para estabelecer um IP público para o meu servidor de desenvolvimento local do Django, eu configuro uma micro instância da AWS como um servidor para tunelamento SSH reverso. O IP público aponta para o servidor de encapsulamento e eu crio um túnel reverso da minha máquina local para o servidor de encapsulamento que encaminha o tráfego entre o IP público e a minha máquina. Aqui está o comando se você estiver interessado:

autossh -M 8001:8001 -NR 80:localhost:8000 [email protected] -v

Agora estou trabalhando na integração de outro desenvolvedor e preciso configurar algo semelhante para ele. Eu poderia criar um clone da minha configuração (essencialmente criando um novo servidor de encapsulamento apenas para ele), mas isso parece confuso, especialmente porque eu preciso adicionar mais desenvolvedores no futuro.

Existe uma maneira de configurar um único servidor que vários usuários podem usar para configurar túneis SSH reversos, considerando que esses usuários têm IPs públicos exclusivos, mas estão encaminhando as mesmas portas? Basicamente, eu e meu parceiro podemos usar o mesmo servidor para tunelamento SSH reverso, encaminhando corretamente o tráfego pelas mesmas portas para diferentes IPs públicos?

Agradecemos antecipadamente e avise-nos se puder esclarecer.

    
por Hakan B. 12.02.2013 / 10:11

1 resposta

1

usamos assim:

instale um script local para o túnel (assim você não precisa lembrar :)) - como:

_username_local.domain.org.sh _

#!/bin/sh
echo "local: 8080 - remote: 8081"
echo "http://username-local.domain.org/"
ssh [email protected] -R 8081:localhost:8080 -g

para que o primeiro usuário ouça na porta remota 8081, o segundo em 8082 etc.

na configuração do servidor nginx como proxy reverso, um 'servidor' por usuário:

upstream user_1 {
    server localhost:8081 fail_timeout=0;
}
server {
    listen   80;
    server_name username-local.domain.org;
    location / {
        proxy_redirect off;
        proxy_pass   http://user_1;
    }
}

e não esqueça de criar as entradas do dns ... (provavelmente com o curinga para * .domain.org)

    
por 12.02.2013 / 11:30