Android

Como configurar o encapsulamento ssh (encaminhamento de porta)

Como Configurar um arquivo SSH(EHI,SKS) E como configurar as porta da vps

Como Configurar um arquivo SSH(EHI,SKS) E como configurar as porta da vps

Índice:

Anonim

O encapsulamento SSH ou o encaminhamento de porta SSH é um método para criar uma conexão SSH criptografada entre um cliente e uma máquina servidor através da qual as portas de serviços podem ser retransmitidas.

O encaminhamento SSH é útil para transportar dados de rede de serviços que usam um protocolo não criptografado, como VNC ou FTP, acessando conteúdo com restrição geográfica ou ignorando firewalls intermediários. Basicamente, você pode encaminhar qualquer porta TCP e encapsular o tráfego em uma conexão SSH segura.

Existem três tipos de encaminhamento de porta SSH:

  • Encaminhamento de porta local. - Encaminha uma conexão do host do cliente para o host do servidor SSH e, em seguida, para a porta do host de destino. - Encaminha uma porta do host do servidor para o host do cliente e, em seguida, para a porta do host de destino. - Cria servidor proxy SOCKS que permite a comunicação através de uma variedade de portas.

, falaremos sobre como configurar túneis SSH criptografados locais, remotos e dinâmicos.

Encaminhamento de porta local

O encaminhamento de porta local permite encaminhar uma porta na máquina local (cliente ssh) para uma porta na máquina remota (servidor ssh), que é então encaminhada para uma porta na máquina de destino.

Nesse tipo de encaminhamento, o cliente SSH escuta uma determinada porta e encapsula qualquer conexão dessa porta na porta especificada no servidor SSH remoto, que depois se conecta a uma porta na máquina de destino. A máquina de destino pode ser o servidor SSH remoto ou qualquer outra máquina.

O encaminhamento de porta local é usado principalmente para conectar-se a um serviço remoto em uma rede interna, como um banco de dados ou servidor VNC.

No Linux, o macOS e outros sistemas Unix para criar um encaminhamento de porta local transmitem a opção -L ao cliente ssh :

ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

As opções usadas são as seguintes:

  • LOCAL_PORT - O IP da máquina local e o número da porta. Quando LOCAL_IP é omitido, o cliente ssh se liga ao host local. DESTINATION:DESTINATION_PORT - O IP ou nome do host e a porta da máquina de destino. SERVER_IP - O endereço IP do usuário e servidor SSH remoto.

Você pode usar qualquer número de porta maior que 1024 como um LOCAL_PORT . Portas com números inferiores a 1024 são portas privilegiadas e podem ser usadas apenas pela raiz. Se o servidor SSH estiver escutando em uma porta diferente de 22 (o padrão), use a opção -p .

O nome do host de destino deve ser resolvido no servidor SSH.

Digamos que você tenha um servidor de banco de dados MySQL em execução na máquina db001.host em uma rede interna (privada), na porta 3306, acessível a partir da máquina pub001.host e deseje conectar-se usando o cliente mysql máquina local ao servidor de banco de dados. Para fazer isso, você pode encaminhar a conexão da seguinte maneira:

ssh -L 3336:db001.host:3306 [email protected]

Depois de executar o comando, você será solicitado a inserir a senha do usuário SSH remoto. Depois de inseri-lo, você efetuará login no servidor remoto e o túnel SSH será estabelecido. É uma boa ideia configurar uma autenticação baseada em chave SSH e conectar-se ao servidor sem inserir uma senha.

Agora, se você apontar o cliente de banco de dados da máquina local para 127.0.0.1:3336 , a conexão será encaminhada para o servidor MySQL db001.host:3306 através da máquina pub001.host , que atuará como um servidor intermediário.

Você pode encaminhar várias portas para vários destinos em um único comando ssh. Por exemplo, você tem outro servidor de banco de dados MySQL em execução na máquina db002.host e deseja conectar-se aos dois servidores a partir do seu cliente local, você executaria:

ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]

Para se conectar ao segundo servidor, você usaria 127.0.0.1:3337 .

Quando o host de destino é o mesmo que o servidor SSH, em vez de especificar o IP ou o nome do host do host de destino, você pode usar o localhost .

Digamos que você precise se conectar a uma máquina remota por meio do VNC, que roda no mesmo servidor e não é acessível a partir do exterior. O comando que você usaria é:

ssh -L 5901:127.0.0.1:5901 -N -f [email protected]

A opção -f informa ao comando ssh para executar em segundo plano e -N para não executar um comando remoto. Estamos usando o localhost porque o VNC e o servidor SSH estão em execução no mesmo host.

Encaminhamento de porta remota

O encaminhamento de porta remota é o oposto do encaminhamento de porta local. Ele permite encaminhar uma porta na máquina remota (servidor ssh) para uma porta na máquina local (cliente ssh), que é então encaminhada para uma porta na máquina de destino.

Nesse tipo de encaminhamento, o servidor SSH escuta uma determinada porta e encapsula qualquer conexão dessa porta na porta especificada no cliente SSH local, que depois se conecta a uma porta na máquina de destino. A máquina de destino pode ser a máquina local ou qualquer outra máquina.

No Linux, o macOS e outros sistemas Unix para criar um encaminhamento de porta remota transmitem a opção -R ao cliente ssh :

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

As opções usadas são as seguintes:

  • REMOTE_PORT - O IP e o número da porta no servidor SSH remoto. Um REMOTE vazio significa que o servidor SSH remoto será vinculado a todas as interfaces. DESTINATION:DESTINATION_PORT - O IP ou nome do host e a porta da máquina de destino. SERVER_IP - O endereço IP do usuário e servidor SSH remoto.

O encaminhamento de porta local é usado principalmente para dar acesso a um serviço interno a alguém de fora.

Digamos que você esteja desenvolvendo um aplicativo Web em sua máquina local e deseje mostrar uma visualização para seu colega desenvolvedor. Você não possui um IP público, portanto o outro desenvolvedor não pode acessar o aplicativo pela Internet.

ssh -L 8080:127.0.0.1:3000 -N -f [email protected]

O comando acima fará o servidor ssh escutar na porta 8080 e encapsular todo o tráfego dessa porta para a máquina local na porta 3000 .

Agora, seu colega desenvolvedor pode digitar the_ssh_server_ip:8080 em seu navegador e visualizar seu aplicativo incrível.

Encaminhamento dinâmico de porta

O encaminhamento de porta dinâmico permite criar um soquete na máquina local (cliente ssh) que atua como um servidor proxy SOCKS. Quando um cliente se conecta a essa porta, a conexão é encaminhada para a máquina remota (servidor ssh), que é então encaminhada para uma porta dinâmica na máquina de destino.

Dessa forma, todos os aplicativos que usam o proxy SOCKS se conectam ao servidor SSH e o servidor encaminhará todo o tráfego para o seu destino real.

No Linux, o macOS e outros sistemas Unix para criar um encaminhamento de porta dinâmico (SOCKS) passam a opção -D para o cliente ssh :

ssh -D LOCAL_PORT SSH_SERVER

As opções usadas são as seguintes:

  • LOCAL_PORT - O IP da máquina local e o número da porta. Quando LOCAL_IP é omitido, o cliente ssh se liga ao host local. SERVER_IP - O endereço IP do usuário e servidor SSH remoto.

Um exemplo típico de encaminhamento de porta dinâmico é encapsular o tráfego do navegador da web através de um servidor SSH.

O comando a seguir criará um túnel de SOCKS na porta 9090 :

ssh -D 9090 -N -f [email protected]

Uma vez estabelecido o encapsulamento, você pode configurar seu aplicativo para usá-lo. Este artigo explica como configurar o navegador Firefox e Google Chrome para usar o proxy SOCKS.

O encaminhamento de porta deve ser configurado separadamente para cada aplicativo em que você deseja encapsular o tráfego.

Configurar o encapsulamento SSH no Windows

Os usuários do Windows podem criar túneis SSH usando o cliente PuTTY SSH. Você pode fazer o download do PuTTY aqui.

  1. Inicie o Putty e digite o endereço IP do servidor SSH no campo Host name (or IP address) do Host name (or IP address) .

    Uma nova janela solicitando seu nome de usuário e senha será exibida. Depois de inserir seu nome de usuário e senha, você será conectado ao seu servidor e o túnel SSH será iniciado.

    A configuração da autenticação de chave pública permitirá que você se conecte ao seu servidor sem inserir uma senha.

Conclusão

Mostramos como configurar túneis SSH e encaminhar o tráfego por meio de uma conexão SSH segura. Para facilitar o uso, você pode definir o encapsulamento SSH no arquivo de configuração do SSH ou criar um alias do Bash que configurará o encapsulamento SSH.

segurança ssh