criptografia de estilo onion em comandos multi-hop ssh

0

No que poderíamos chamar de o exemplo canônico do multi-hop ssh , podemos ver que os seguintes O comando rotearia o tráfego ssh do usuário por três nós consecutivos (fictícios):

ssh ruapehu.example.com ssh aoraki ssh tongariro

chamado ruapehu.example.com , aoraki e tongariro . O exemplo simplifica a configuração usando comandos proxy. Uma fraqueza no esquema é que os dois primeiros nós podem ler o tráfego, enquanto seria melhor se eles não pudessem fazê-lo. Se conseguirmos introduzir os comandos [criptografar] e [descriptografar] na cadeia, poderemos chegar perto do que a rede tor faz. Outro problema é como introduzir o encaminhamento de porta na cadeia de múltiplos saltos? O seguinte obviamente não funcionará, mas é basicamente o que eu gostaria de fazer:

[encrypt] ssh ruapehu.example.com ssh aoraki ssh tongariro [decrypt] -L 80:somesite.com:80

Alguém poderia fazer algo assim funcionar?

    
por erik 15.11.2015 / 05:42

2 respostas

1

Você fez duas perguntas:

  1. Como podemos garantir que o tráfego nos hosts intermediários não seja "farejado"?

A resposta é que você não precisa fazer nada. A conexão EACH ssh é criptografada. O tráfego "visto" por ruapehu e aoraki não está desimpedido. Você não precisa adicionar nenhuma camada de criptografia adicional.

  1. Como você pode habilitar o encaminhamento de porta para o destino?

A resposta mais fácil é usar o arquivo ~/.ssh/config e adicionar uma diretiva apenas ao destino, como em (emprestado da sua própria referência, adicionando apenas a linha última ):

Host ruapehu
  HostName ruapehu.example.com

Host aoraki
  ProxyCommand ssh -q ruapehu nc -q0 aoraki 22

Host tongariro
  LocalForward 80:somesite.com:80
  ProxyCommand ssh -q aoraki nc -q0 %h 22

Ou seja, supondo que você pode abrir a porta 80 em seu host local, caso contrário, você pode ter que usar uma porta sem privilégios, algo acima de 1024 (dependendo do seu host e configuração).

    
por 16.11.2015 / 18:57
0

Se você criar uma porta encaminhada da sua máquina para a máquina de destino em uma etapa e, em seguida, emitir a conexão SSH por essa porta encaminhada, você basicamente verá o que descreveu em seu último exemplo.

  1. Crie o encaminhamento de porta:

    # jump from aoraki -> tongariro
    ssh ruapehu.example.com "ssh -L 2222:tongariro:22 aoraki" 
    # jump from ruapehu.example.com -> aoraki
    ssh -L ruapehu.example.com:2222:aoraki:2222 ruapehu.example.com
    

    Isto espera que você tenha configurado seu servidor com o GatewayPorts apropriado, assim você poderá ligar a porta 2222 de fora.

  2. Inicie a nova conexão ssh com o servidor de destino:

    ssh -p 2222 ruapehu.example.com
    

    Esta conexão será criptografada em todas as etapas intermediárias e você também pode configurar outro encaminhamento de porta através dela.

por 15.11.2015 / 10:54