Como criar tunelamento SSH ou encaminhamento de porta no Linux

Como criar tunelamento SSH ou encaminhamento de porta no Linux

SSH Tunneling (também chamado de encaminhamento de porta SSH) está simplesmente roteando o tráfego de rede local através do SSH para hosts remotos. Isso implica que todas as suas conexões são protegidas usando criptografia. Ele fornece uma maneira fácil de configurar um básico VPN (Rede privada virtual), útil para conectar -se a redes privadas em redes públicas não seguras como a Internet.

Você também pode ser usado para expor servidores locais atrás de Nats e Firewalls à Internet por túneis seguros, conforme implementado em NGrok.

[Você também pode gostar: como proteger e endurecer o servidor OpenSsh]

Ssh As sessões permitem conexões de rede de tunelamento por padrão e existem três tipos de encaminhamento de porta SSH: local, controlo remoto e dinâmico encaminhamento de porta.

Neste artigo, demonstraremos como configurar rápida e facilmente o SSH Tunneling ou os diferentes tipos de encaminhamento de portas no Linux.

Ambiente de teste:

Para os fins deste artigo, estamos usando a seguinte configuração:

  1. Anfitrião local: 192.168.43.31
  2. Hospedeiro remoto: Linode Centos 7 VPS com nome de host servidor1.exemplo.com.

Geralmente, você pode se conectar com segurança a um servidor remoto usando o SSH da seguinte maneira. Neste exemplo, eu configurei o login SSH sem senha entre meus hosts locais e remotos, para que ele não pedisse a senha do administrador do usuário.

$ ssh [email protegido] 
Conecte o SSH remoto sem senha

Encaminhamento local de porta ssh

Esse tipo de encaminhamento de porta permite que você se conecte do seu computador local a um servidor remoto. Supondo que você esteja por trás de um firewall restritivo ou bloqueado por um firewall de saída de acessar um aplicativo em execução na porta 3000 em seu servidor remoto.

Você pode encaminhar uma porta local (e.g 8080) que você pode usar para acessar o aplicativo localmente da seguinte maneira. O -eu Flag define a porta encaminhada para o host remoto e a porta remota.

$ ssh [email protegido] -l 8080: servidor1.exemplo.com: 3000 

Adicionando o -N Bandeira significa que não executa um comando remoto, você não receberá um shell neste caso.

$ ssh -n [email protegido] -l 8080: servidor1.exemplo.com: 3000 

O -f Switch instrui o SSH a ser executado em segundo plano.

$ ssh -f -n [email protegido] -l 8080: servidor1.exemplo.com: 3000 

Agora, na sua máquina local, abra um navegador, em vez de acessar o aplicativo remoto usando o endereço servidor1.exemplo.com: 3000, você pode simplesmente usar LocalHost: 8080 ou 192.168.43.31: 8080, como mostrado na captura de tela abaixo.

Acesse um aplicativo remoto via encaminhamento local de porta SSH

Encaminhamento de porta SSH remota

O encaminhamento de porta remota permite que você se conecte da sua máquina remota ao computador local. Por padrão, o SSH não permite o encaminhamento de porta remota. Você pode ativar isso usando o Gatewayports Diretiva em seu arquivo de configuração principal do SSHD /etc/ssh/sshd_config no host remoto.

Abra o arquivo para edição usando seu editor de linha de comando favorito.

$ sudo vim/etc/ssh/sshd_config 

Procure a diretiva necessária, descompensá -la e defina seu valor para sim, como mostrado na captura de tela.

Gatewayports sim 
Ativar encaminhamento remoto de porta SSH

Salve as mudanças e saia. Em seguida, você precisa reiniciar o SSHD para aplicar a recente mudança que você fez.

$ sudo systemctl reiniciar sshd ou $ sudo serviço sshd reiniciar 

Em seguida, execute o seguinte comando para encaminhar porta 5000 na máquina remota para a porta 3000 na máquina local.

$ ssh -f -n [email protegido] -r 5000: localhost: 3000 

Depois de entender esse método de tunelamento, você pode expor de maneira fácil e segura um servidor de desenvolvimento local, especialmente atrás de Nats e Firewalls à Internet por túneis seguros. Túneis como ngrok, PageKite, LocalTunnel, E muitos outros trabalham de maneira semelhante.

Encaminhamento dinâmico de porta SSH

Este é o terceiro tipo de encaminhamento de porta. Diferente local e controlo remoto Encaminhamento de porta que permite a comunicação com uma única porta, ele torna possível, uma gama completa de comunicações TCP em uma variedade de portas. O encaminhamento dinâmico de porta configura sua máquina como um SOCKS servidor proxy Isso ouve na porta 1080, por padrão.

Para iniciantes, MEIAS é um protocolo da Internet que define como um cliente pode se conectar a um servidor por meio de um servidor proxy (SSH neste caso). Você pode ativar o encaminhamento de porta dinâmica usando o -D opção.

O comando a seguir iniciará um proxy de meias na porta 1080 permitindo que você se conecte ao host remoto.

$ ssh -f -n -d 1080 [email protegido] 

A partir de agora, você pode fazer aplicativos em sua máquina usar este servidor proxy SSH editando suas configurações e configurando -as para usá -lo, para conectar -se ao seu servidor remoto. Observe que o MEIAS Proxy vai parar de trabalhar depois de fechar sua sessão SSH.

Leia também: 5 maneiras de manter as sessões SSH remotas em funcionamento após o fechamento do SSH

Resumo

Neste artigo, explicamos os vários tipos de encaminhamento de portas de uma máquina para outra, para tunelamento de tráfego através da conexão SSH segura. Este é um dos muitos usos do ssh. Você pode adicionar sua voz a este guia através do formulário de feedback abaixo.

Atenção: O encaminhamento de portas SSH tem algumas desvantagens consideráveis, pode ser abusado: pode ser usado para ignorar programas de monitoramento de rede e filtragem de tráfego (ou firewalls). Os atacantes podem usá -lo para atividades maliciosas. Em nosso próximo artigo, mostraremos como desativar o encaminhamento de portas local do SSH. Permaneça conectado!