Conectar-se a um servidor bloqueado

1

Eu tenho um servidor contratado que não me permite acessar um URL. Posso acessar esse URL do servidor usando meu computador doméstico como ponte com o túnel SSH? No servidor eu só tenho acesso à linha de comando.

Eu posso acessar alguns URLs, mas isso não está na lista de permissões. Isso é o que eu recebo.

wget https://jenkins-ci.org/debian/jenkins-ci.org.key
--2015-03-30 13:21:20--  https://jenkins-ci.org/debian/jenkins-ci.org.key
Resolving jenkins-ci.org... 199.193.196.24
Connecting to jenkins-ci.org|199.193.196.24|:443... failed: Connection timed out.
Retrying.

Eu quero usar um túnel SSH ou algo do tipo para baixar o arquivo de chave e os pacotes no servidor.

    
por Helio 02.04.2015 / 21:49

3 respostas

2

Para reformular sua pergunta, com base em um de seus comentários posteriores, você deseja

access [website] from a server that hasn't access to that URL using a personal computer with no open ports as tunnel - Helio

À primeira vista, o que você está pedindo parece impossível. Após uma inspeção mais próxima, o que você precisa é de um voodoo de rede altamente avançado. Especificamente:

  • Um servidor VPN em execução no seu computador pessoal (vamos chamá-lo de herpyderp)
  • Um servidor SSH em execução no servidor remoto (chame-o .... megatron. por que não?)
  • Um cliente VPN em megatron.

Configurar o servidor VPN

O processo de configuração de um servidor VPN é ... bastante complexo e muito além do escopo desta resposta. Vou colocar alguns links de recursos no final para você.

De qualquer forma, configure-o para ouvir em 127.0.0.1 e desabilite o envio de uma rota padrão. (Você também pode precisar configurá-lo para usar tcp; não tenho certeza de como o udp reagirá nessa ... situação estranha.)

Encaminhar a porta pelo SSH

Por questão de simplicidade, vou assumir que você tem um servidor OpenVPN em herpyderp configurado corretamente e ouvindo em 127.0.0.1:1194 . Conecte-se ao megatron e encaminhe a porta apropriada de volta para herpyderp (em localhost ):

ssh -R 8088:localhost:1194 awesomeuser@megatron

Conectar VPN

Mais uma vez, por simplicidade, assumirei que você tem um arquivo de configuração para o cliente OpenVPN em megatron . Assegure-se de que esteja configurado para não definir uma rota padrão e conecte-se ao servidor no endereço 127.0.0.1:8088 .

Observe que, se megatron tiver algo que já está ouvindo no 8088, você precisará usar um número de porta diferente.

Adicionar rotas

Por fim, você precisará encaminhar solicitações para o IP bloqueado por meio da VPN com o comando ip route add . Use ifconfig para obter o endereço IP do adaptador VPN e seu endereço de destino. Use ping ou nslookup para obter o endereço IP do site em questão. Em seguida, armado com essa informação, adicione a rota:

ip route add <SITE_IP_ADDR> via <VPN_DEST_ADDR> dev <VPN_ADAPTER>

Se tudo der certo , você poderá acessar o IP bloqueado da conexão de internet megatron via herpyderp .

Mas ...

Dito isso, tenho quase certeza de que qualquer administrador de rede que tenha chegado tão longe na resposta esteja chorando ou em choque até agora. Não há nada ... certo ... com esta configuração. Eu sinto como se tivesse cometido um pecado por sugerir isso mesmo.

Além disso, não esperaria nenhum rendimento significativo. E apenas ... latência astronômica.

Aviso final: Não tenho ideia se isso realmente funcionará. Deveria, mas devido à enorme quantidade de trabalho envolvido com essa configuração, eu não testei realmente. Há cerca de um milhão de coisas que podem dar errado. Boa sorte e boa sorte.

Recursos

EDIT: Uma palavra de cautela

Isso absolutamente tem o potencial de tornar seu servidor completamente inacessível pela rede. Os comandos ip especialmente; a rota errada pode bloquear toda a atividade da rede.

    
por 09.04.2015 / 06:12
1

Na sua máquina doméstica, execute o seguinte:

curl https://jenkins-ci.org/debian/jenkins-ci.org.key|ssh <username>@<ssh server> 'cat > jenkins-ci.org.key'

Substitua <username>@<ssh server> pelas informações corretas do ssh.

Example: curl https://jenkins-ci.org/debian/jenkins-ci.org.key|ssh [email protected] 'cat > jenkins-ci.org.key'

Isso colocará o arquivo no diretório inicial dos usuários. Você pode mudar isso ou simplesmente movê-lo depois de copiá-lo.

Isso pressupõe que sua máquina doméstica use linux. Se não, você poderia usar uma máquina linux cloud barata / livre para fazer o mesmo (exemplo: c9.io).

    
por 09.04.2015 / 07:19
1

Você pode tentar usar um túnel SSH:

ssh -f user@yourserver -L 2000:jenkins-ci.org:443 -N
B B es BB es es es eses es eses es es es BBes es eses es es es es BBBeses es eses es es Bes es es BesB es es eses es es Bes es es es
wget https://localhost:2000/debian/jenkins-ci.org.key

Se você tiver problemas de domínio, adicione:

127.0.0.1 jenkins-ci.org
B v B B B B B B B B B B B B B B B B B Bv B B B B Bv B Bvv B v Bvv Bvv Bvv Bvv Bvv Bvv Bvv Bvv Bvv Bvv Bvv Bvves
wget https://jenkins-ci.org:2000/debian/jenkins-ci.org.key
es es vvv v v v v v v v v v v v v v Bv es vv es v es es es es es es es es es es es es es es es es es es es es es es es es es es es es es es es es es es es es es     
por 07.04.2015 / 12:20