Tunel ssh


Em redes de computadores, um protocolo de túnel permite que um utilizador de rede aceda ou forneça um serviço de rede que a rede subjacente não suporte ou fornece directamente. Um uso importante de um protocolo de túnel é permitir que um protocolo estrangeiro seja executado numa rede que não suporte esse protocolo específico como por exemplo, executando ipv6 sobre ipv4. Outro uso importante é fornecer serviços que não são práticos ou são inseguros para serem oferecidos usando apenas os serviços de rede subjacentes como por exemplo, fornecendo um endereço de rede corporativa para um utilizador remoto cujo endereço de rede física não faz parte da rede corporativa. Como o túnel envolve o re encapsulamento dos dados de tráfego em uma forma diferente, talvez com criptografia como padrão, um terceiro uso é ocultar a natureza do tráfego que é executado através dos túneis.
O protocolo de túnel funciona usando a parte de dados de um pacote (a carga útil) para transportar os pacotes que realmente fornecem o serviço. O túnel usa um modelo de protocolo em camadas, como os do conjunto de protocolos OSI ou TCP / IP, mas geralmente viola a camada quando utiliza a carga útil para transportar um serviço normalmente não fornecido pela rede. Tipicamente, o protocolo de entrega funciona a um nível igual ou superior no modelo em camadas do que o protocolo de carga útil.
Como utilizar
Os seguintes exemplos demonstram como utilizar o método de forma simples, clara e eficaz.
Utilização em ambiente Microsoft Windows, pode ser feita via linha de comandos ou com software como por exemplo o putty. Ver o vídeo nos links externos.
Para mais informação sobre todos os parâmetros necessários basta digitar num terminal (disponível para linux e unix):
man ssh
Simples
- Método simples com porta dinâmica para qualquer aplicação como o navegador
ssh utilizador@ip_remoto -p porta -D 9050 (9050 pode e dever ser alterado para qualquer porta à escolha)
Ultrapassar firewall
ssh -L 9000:website.pretendido:80 utilizador@ip_remoto -p porta
Porta remota
- Reenvio de porta remota / Remote port forwarding
ssh -R 5000:localhost:2000 utilizador@ip_remoto -p porta (não esquecer de colocar GatewayPorts yes em /etc/ssh/sshd_config)
Porta local
Reenvio de porta local / Local port forwarding
- Criar sessão de acesso remoto com vnc utilizando criptografia
ssh -L 5900:127.0.0.1:5900 utilizador@ip_remoto -p porta (a execução do cliente de vnc deve utilizar o ip local 127.0.0.1)
Chave publica
ssh -i chave_do_ip_remoto.key utilizador@ip_remoto -p porta -D 9050 (9050 pode e dever ser alterado para qualquer porta à escolha)
Comando remoto
Se pretendemos apenas re-enviar portas devemos especificar os parâmetros -f e -N
ssh -f -N utilizador@ip_remoto -p porta -D 9050 (9050 pode e dever ser alterado para qualquer porta à escolha)
Exemplos em uso
Exemplos de uso prático fazendo um tunel ssh a fim de proteger todo o nosso tráfego e ligação à máquina remota:
- Estabelecer uma ligação vnc de forma segura sem uso de plugins:
ssh -x -f -N -i ~/chaves/ssh-key/chave.key -L 5901:127.0.0.1:5900 computador@192.168.2.34 -p 22 DISPLAY=:0.0 vncviewer 127.0.0.1:5901 &
- Estabelecer uma ligação para X forward:
ssh -X -Y computador@192.168.54.112 -p 22
ssh -X -Y -i ~/chaves/ssh-key/chave.key -L 5900:127.0.0.1:5900 computador@192.168.54.112 -p 22 -D 1080
Nota: o uso de -i significa o uso de certificados de criptografia. Em caso de não existirem não se usa -i e inicia-se a sessão com a senha da maquina remota
Ver ainda
Links externos
- Dnsleaktest
- Protocolo de tunelamento
- ssh socks tunnelling and avoiding dns (em Inglês)
- Chrome fix dns leaks ssh socks tunneling (em Inglês)
- Ssh dynamic port forwarding em video Microsoft Windows (em Inglês)
- Proxy Tunnel (em Inglês)