Como usar o tunelamento ssh ou encaminhamento de porta

Como usar o tunelamento ssh ou encaminhamento de porta
Criar uma conexão segura entre o host local e o host remoto é chamado de tunelamento ssh ou encaminhamento de porta. Todas as conexões feitas pelo tunelamento SSH são criptografadas. Esse recurso do SSH é útil para muitos propósitos, como gerenciar o banco de dados do servidor restrito com segurança, implementando a VPN básica (rede privada virtual), usando serviços diferentes sem abrir porta no firewall, etc. O encaminhamento de portas SSH pode ser feito de três maneiras diferentes. Estes são encaminhamento local de portas, encaminhamento de porta remota e encaminhamento dinâmico de porta. As maneiras de usar o tunelamento SSH ou o encaminhamento de portas foram explicados neste tutorial.

Pré -requisitos

Antes de iniciar as etapas deste tutorial, as etapas a seguir serão necessárias para concluir.

A. Ative o serviço SSH no Ubuntu se não estiver ativado antes.

B. Gere os pares de chaves ssh para executar os comandos no servidor remoto. Execute o seguinte comando para criar a chave pública e a chave privada. A chave privada será armazenada no servidor remoto e as chaves públicas serão armazenadas no cliente com segurança.

$ ssh -keygen -t rsa

C. Execute o seguinte comando para abrir o sshd_config Arquivo usando o Nano Editor para adicionar algumas configurações necessárias.

$ sudo nano/etc/ssh/sshd_config

Adicione as seguintes linhas no arquivo para ativar o login root e a autenticação baseada em senha.

PasswordAuthentication Sim
Permitrootlogina sim

D. Execute o seguinte comando para reiniciar o serviço SSH.

$ sudo serviço ssh reinicialização

Encaminhamento de porta local

É usado para encaminhar uma porta da máquina cliente para uma porta da máquina do servidor e, em seguida, que será encaminhado para a máquina de destino. A máquina cliente ouve em uma determinada porta e túneis a conexão dessa porta para a porta específica da máquina do servidor nesse tipo de encaminhamento. Aqui, a máquina de destino pode ser qualquer servidor remoto ou outra máquina. Este encaminhamento é usado principalmente na rede interna, como o VNC (Virtual Network Computing) Server.

Encaminhamento de porta remota

O oposto do encaminhamento local é o encaminhamento de porta remota. É usado para encaminhar uma porta da máquina do servidor para uma porta da máquina cliente e, em seguida, que será encaminhada para a máquina de destino. A máquina do servidor ouve em uma determinada porta e túneis a conexão dessa porta para a porta específica da máquina cliente nesse tipo de encaminhamento. Aqui, a máquina de destino pode ser qualquer máquina local ou outra máquina.

Encaminhamento de porta dinâmica

Ele é usado para criar um soquete na máquina cliente que funcionará como um servidor proxy de meias e, quando um cliente se conectar à porta, a conexão será encaminhada para a máquina do servidor. Em seguida, será encaminhado para a porta dinâmica da máquina de destino. Os aplicativos usando proxy de meias serão conectados à máquina do servidor que encaminhará os tráfego para a máquina de destino.

Exemplos de tunelamento SSH ou encaminhamento de porta

Os exemplos de tunelamento e encaminhamento de porta SSH foram mostrados aqui usando duas contas de servidor local. Você pode seguir o mesmo processo para o servidor remoto. Aqui, o nome de usuário da máquina do servidor é 'Fahmida' e o nome de usuário da máquina cliente é 'Yasmin. Três tipos de encaminhamento de porta SSH foram mostrados aqui por três exemplos.

A. Acesse recursos remotos da máquina cliente
Os recursos da máquina remota podem ser acessados ​​da máquina cliente usando o encaminhamento local da porta. Ele normalmente se conecta ao servidor SSH, mas, neste caso, você deve usar a opção -l com o comando ssh definindo a porta local, endereço remoto e porta remota. A sintaxe do encaminhamento local da porta é dada abaixo.

ssh -l local_port: remote_address: remote_port nome de usuá[email protected]

Suponha que o número da porta local seja 8080, O endereço IP do servidor remoto é 10.0.2.15, e o número da porta remota é 80. Execute o seguinte comando para conectar -se com a máquina do servidor pelo encaminhamento de porta local. Aqui, o nome do host da máquina remota é 'Fahmida.com.bd.'

$ ssh -l 8080: 10.0.2.15:80 [email protected]

Depois de se conectar com a máquina remota, o usuário da máquina cliente poderá acessar qualquer conteúdo da máquina remota que foi mostrada aqui. Um arquivo de texto nomeado registro.TXT existe na máquina remota. Agora, execute o seguinte comando da máquina cliente para ler o conteúdo do arquivo após o login na máquina remota.

$ CAT LOG.TXT

Execute os seguintes comandos para fazer login na máquina remota.

$ saída

A seguinte saída semelhante aparecerá após a execução dos comandos acima. A saída mostra o conteúdo do arquivo de texto da máquina remota e o próximo logon da máquina remota.

B. Acesse recursos locais da máquina do servidor
Os recursos da máquina local podem ser acessados ​​na máquina do servidor usando o encaminhamento de porta remota. Normalmente, ele se conecta ao servidor SSH, mas, neste caso, você deve usar a opção -r com o comando ssh, definindo a porta remota, endereço local e porta local. A sintaxe do encaminhamento da porta remota é dada abaixo.

SSH -R REMOTE_PORT: LOCAL_ADDRESS: LOCAL_PORT [email protected]

Suponha que o número da porta remota seja 22, o nome do host do servidor local é LocalHost, e o número da porta local é 2345. Execute o seguinte comando para se conectar com a máquina do servidor por encaminhamento de porta remota. Aqui, o nome do host da máquina remota é 'Fahmida.com.bd.'

$ ssh -r 22: localhost: 2345 [email protected]

Depois de se conectar com a máquina remota, o usuário da máquina remota acessará qualquer conteúdo da máquina remota mostrada aqui. Um arquivo de texto nomeado produtos.TXT existe no diretório inicial da máquina cliente. Agora, execute o seguinte comando depois de se conectar com a máquina remota para ler o conteúdo do arquivo local.

$ cat/home/simmin/produtos.TXT
Execute os seguintes comandos para fazer login na máquina remota.
[cc lang = "text" width = "100%" altura = "100%" escape = "true" tema = "Blackboard" Nowrap = "0"]
$ saída

A seguinte saída semelhante aparecerá após a execução dos comandos acima. A saída mostra o conteúdo do arquivo de texto da máquina cliente e o próximo logon da máquina remota.

C. Usando o servidor SSH como um servidor proxy
O encaminhamento dinâmico de porta é usado principalmente para acessar a aplicação específica da rede interna usando um proxy de meias. A opção -d é usada com o comando ssh para encaminhamento de porta dinâmica. A sintaxe do encaminhamento dinâmico de porta é dada abaixo.

ssh -d local_port nome de usuá[email protected]

Suponha que o número da porta local seja 5050. Execute o seguinte comando para abrir um proxy de meias na porta 5050. Agora, o usuário pode configurar qualquer navegador ou aplicativo para usar o endereço IP local e a porta 5050 para redirecionar todo o tráfego através do túnel.

$ ssh -d 5050 [email protected]

Conclusão

Três maneiras diferentes de encaminhamento de portas SSH foram descritas neste tutorial para ajudar os leitores a entender o conceito de tunelamento SSH ou encaminhamento de portas.