Como usar o SSH “Dynamic Forward” (-D) para o apt-get update / install em uma caixa atrás de uma VPN? É possível?

1

Eu tenho uma caixa do servidor Ubuntu presa atrás de uma VPN. O gateway de alguma forma corrige os certificados, então todas as conexões https aparecem "com falha"

$ curl https://www.google.com
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html

Meus certificados de ca são atualizados. Esse não é o problema.

Eu preciso configurar um proxy temporário que possa manipular https para atualizar a caixa.

Eu tentei fazer um ssh -D 8080 user@my_home_pc para o túnel. Netstat reporta porta aberta:

$ netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN <---
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN

O APT usa a variável de ambiente link . A opção -E do Sudo preserva as variáveis env.

$ https_proxy=https://localhost:8080 sudo -E apt-get update
Ign https://get.docker.com docker InRelease
Ign https://get.docker.com docker Release.gpg
Ign https://get.docker.com docker Release
Ign https://get.docker.com docker/main i386 Packages/DiffIndex
Ign https://get.docker.com docker/main Translation-en
Err https://get.docker.com docker/main i386 Packages  <----
  Proxy CONNECT aborted                               <----

O que você faria para configurar um proxy tunelado pelo ssh? Considere que eu só posso alcançar o exterior por ssh (além do gateway unusefull). THX.

Edit: AllowTcpForwarding está definido como yes no meu homepc

# /etc/ssh/sshd_config
AllowTcpForwarding yes
    
por Carlos Troncoso 16.01.2015 / 19:19

1 resposta

1

ESSA RESPOSTA NÃO É CONSIDERADA RESPONDER, MAS É UM WORKAROUND.

Não final, mas uma solução alternativa.

Nesse caso, o site inacessível é o link

Abordagem:

  1. Fake o IP de get.docker.com
  2. O SSH desmembra e liga uma porta ao get.docker.com do lado de fora.

Procedimento:

  1. Adicione get.docker.com para / etc / hosts

    cat "127.0.0.1  get.docker.com" >> /etc/hosts
    
  2. SSH sai para a caixa não encaixotada e encaminhar. Isso tem que ser feito com o sudo , já que estaremos encaminhando uma porta abaixo de 1024.

    sudo ssh -L 443:get.docker.com:443 user@myhomepc
    
  3. Em outro terminal, instale tudo como de costume.

Ah, e lembre-se de apagar a linha adicionada em / etc / hosts quando estiver pronto.

    
por 22.01.2015 / 21:00