Hoje vamos aprender como criar um tunel através do ssh (porta 22).
Bem, eu uso para administracão remota de bancos oracle, mas acho um pouco mais complicado explicar isso agora, por isso vou demostrar como acessar o Terminal Service do Windows em uma máquina em que não temos acesso remoto. Vamos supor que você tenha acesso a um servidor linux via ssh é óbvio, que vamos chamar de Servidor A, nele você possui uma conta de usuário "mortal" e você quer acessar o servidor B (Windows 2000 Server) via Terminal Service. Qual seria o procedimento padrão que você tomaria ? Bem, creio que se você é o administrador do Servidor A e tem acesso como root, você poderia usar o iptables e fazer um redirect para o Servidor B, certo ? Mas e se você é um mero mortal ? Você responderia ... "Agora Fu#$@#$@ ! Não tem como !"
Bem tem sim ! Como ? Através de um túnel ssh. Isso mesmo, o ssh permite que você trafegue dados de outra porta por dentro dele mesmo, ou seja, por dentro da porta 22. Uma explicação mais técnica pode ser obtida em Dicas-l. Bem vamos a prática.
Nosso ambiente é o seguinte:
Servidor A | Servidor B | |
---|---|---|
SO | Linux | Windows 2000 |
IP | 192.168.1.1 | 192.168.1.183 |
Serviço | sshd | Terminal Service |
OBS: A porta do Terminal Service é 3389.
Antes de mais faça o download do Putty em http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.
1. Execute o putty e coloque o IP do servidor de destino, em nosso caso o IP do servidor A.
2. Clique na opção SSH e habilite a "Enable Compression", isto vai melhor o desempenho na transmissão dos dados.
3. Clique em "Tunnels", e em "Source port", coloque uma porta qualquer, pode até mesmo ser a porta do Terminal Service (3389), mas para ficar mais claro vamos usar a porta 20000. Em "Destination", coloque o IP e a Porta do servidor que queremos acessar, em nosso caso, o IP do Servidor B. Após concluir clique em "Add".
Onde: Source port: É a porta que vamos chamar localmente. Destination: É o IP seguido de : (Dois pontos) pela porta que queremos acessar na rede de destino.
4. Volte na opção "Session" e a salve com um nome qualquer e clique em "Open".
5. Conecte-se ao servidor A com seu usuário "mortal" e minimize a tela.
6. Agora vamos testar se nossa porta 20000 esta "ouvindo" nossa conexão. Para isso, use o comando netstat -a, note na figura abaixo meu hostname (thor) seguido pela porta 20000 e na frente a palavra LISTENING. Isto quer dizer que existe uma porta local 2000 aguardando por conexões.
7. Agora vamos chamar a porta 20000 localmente, como figura abaixo.
8. Pronto !!! E la estamos, na tela de logon do servidor B !!!!
O ssh é fantástico e esse recurso pode ajudar muita gente com vários outros tipos de serviços. Eu uso esse esquema para acessar o Oracle remotamente. Agora é só viajar nas possibilidades.
Dúvidas escrevam para thiagozerbinato@yahoo.com.br!