Túnel SSH

Por motivo de segurança, em algumas situações você não tem acesso direto ao servidor alvo.  Contudo, liberam acesso SSH à uma outra máquina que acessa esse servidor e você precisa utilizar aplicativos à partir da sua máquina, mas acessando o servidor alvo. Como resolver esse problema de maneira transparente? Para isso, existe o túnel SSH.

Esse túnel pode ser contemplado pelo seguinte comando:

ssh -f USUARIO@SERVIDORCOMACESSO -L PORTAACESSAR:SERVIDORACESSAR:PORTAORIGINAL -N

O parâmetro mais importante é o -L que é responsável por mapear qual porta você irá acessar pela sua máquina (PORTAACESSAR), de qual servidor (SERVIDORACESSAR), e qual porta desse servidor você irá acessar (PORTAORIGINAL).

Por exemplo, se eu quero acessar o servidor de AD que está disponível no servidor 192.168.18.6 e na porta 389 à partir da minha máquina na porta 2000, sendo que só tenho acesso ao servidor 192.168.18.1, executo o seguinte comando:

ssh -f thiago@192.168.18.1 -L 2000:192.168.18.6:2000 -N

Com isso, tenho acesso ao servidor de AD da máquina 192.168.18.6 pela porta 2000 da máquina 192.168.18.1, que seria a única máquina que eu deveria ter acesso.

O parâmetro -f especifica que o SSH deve rodar em background após informar a senha. O -N especifica que nenhum comando remoto será executado, ou seja, só irá fazer o port forward utilizado no nosso túnel.

Agora é só aproveitar esse recurso que é muito útil quando temos acesso limitados à servidores ou necessitamos fazer port forwading.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6