MAL - Memória Auxiliar do Lutieri

quarta-feira, novembro 05, 2008

[UPDATED]Conectando ao inconectavel usando ssh e tsocks

Nesse exato momento estou em Parkland, o local onde estudo em Champaign-Urbana, Illinois, tentando baixar os fontes do kernel do FreeBSD afim de poder conectar a wireless(sim estou usando cabo). Uma vez que o FreeBSD nao tem suporte a minha bela placa Broadcom 4311 vou fazer uso do NDIS e usar os drivers windows pra carregar a placa.

Bom.. o problema eh: na rede onde eu estou conectado agora existe um firewall que limita as portas que pode sair trafego, ao contrario de muita sysadmin qua apenas bloqueia a entrada, soh libera portas 80, 22 e etc, aqui eles resolveram limitar as portas que podem ser usadas para saida de trafego. Isso me impede de utilizar o csup para baixar os fontes do kernel.

Ok, o manual do csup dah uma dica de como utilizar o ssh para encaminhar as conexoes, caso voce nao consiga estabelecer um conexao direta com o servidor do csup.

retirado do man csup:

USING ssh PORT FORWARDING
As an alternative to SOCKS, a user behind a firewall can penetrate it
with the TCP port forwarding provided by the Secure Shell package ssh.
The user must have a login account on the CVSup server host in order to
do this. The procedure is as follows:

1. Establish a connection to the server host with ssh, like this:

ssh -f -x -L 5999:localhost:5999 serverhost sleep 60

Replace serverhost with the hostname of the CVSup server, but type
`localhost' literally. This sets up the required port forwarding.
You must start csup before the 60-second sleep finishes. Once the
update has begun, ssh will keep the forwarded channels open as long
as they are needed.

2. Run csup on the local host, including the arguments `-h localhost'
on the command line.


O que o comando acima faz eh criar um socket na sua maquina(localhost) ouvindo na porta 5999, estabelece uma conexao normal na porta 22 do server serverhost. E agora todo bit enviado para localhost:5999(por isso voce tem que rodar csup -h localhost) sera encaminhado, dentro do tunel ssh, ateh o serverhost para a porta 5999 tambem. Que felizmente o serverhost vai estar escutando nesta porta e tudo vai funcionar. Sendo assim, voce precisa apenas conseguir sair na porta 22(conectar a qualquer servidor ssh na internet), e o trafego de dados na porta 5999 vai ser enviado "por dentro" dessa conexao ssh.

Muito bem, muito bonito. O detalhe eh que eu nao tenho um usuario em nenhum servidor cvsup do freebsd. Alias alguem tem!?

Sendo assim a dica acima eh furada, ao menos para a maioria dos mortais como eu e voce que nao temos um usuario nos servidores cvsup freebsd.. Que pena naum?! Ninguem disse que a vida era facil.

Num post anterior falei de como encaminhar as conexoes da sua maquina para outra. Leia aqui eh importante. Isso praticamente resolve meu problema. MAS, pra fazer uso deste recurso do ssh(Dynamic Port Forwarding) a aplicacao deve encaminhar as conexoes para a porta local, para que as mesmas sejam encaminhadas adiante. Se voce estah usando um navegador de internet com suporte a proxy, eh facil configurar. Meu problema eh que preciso utilizar uma aplicacao sem suporte a proxy. Eh ai que entra o tsocks. Com ele voce pode utilizar aplicativos que nao tem suporte a proxy, mas agora eles vao usar proxy :)

bom instalei ele no FreeBSD estava sob: /usr/ports/net/tsocks/
mas na verdade eu baixei o pacote: pkg_add -r tsocks eh mais rapido :)

No tsocks.conf removi tudo e adicionei a linha abaixo:
server = localhost
Numa outra aba estabeleci a conexao com um servidor que pode sair trafego na porta 5999, onde neste sim eu tenho usuario e senha, usando o comando:

ssh -D 1080 serverssh.quepodesair.naporta5999 -f sleep 10

O que a linha acima faz eh transformar sua maquina numa especie de proxy server escutando na porta 1080(-D 1080). Coloca o ssh em background(-f), mas para colocar em background tem que rodar um comando, alias, depois que esse comando termina a conexao termina. Entao a jogada eh rodar algo como sleep 10, e dentro desses 10 segundos comecar a conexao com o server lah da internet, que voce nao TINHA acesso antes. Porque, uma vez que a conexao com o server lah da internet estah estabelecida a conexao ssh vai continuar, assim que acabar a conexao com o server lah de fora, a conexao ssh acaba.

Ou pra simplificar as coisas rode apenas:

ssh -D 1080 serverssh.quepodesair.naporta5999

vai ficar "pra sempre" conectado, se nao tiver um timeout no shell. Faz o que tiver que fazer com o server lah da internet e desconecta depois.

Depois do socks proxy criado(ssh -D ...) eh hora de colocar o tsocks pra funcionar:

tsocks csup supfile

Todo o software que nao tem suporte a proxy e voce quer fazer ele passar a ter, use o tsocks appname

Tem um outro modo que voce pode ativar o tsocks e todos os comandos que voce digitar apos vao utilizar ele. Entao ao inves de digitar: tsocks appname, voce apenas ativar ele(leia o link abaixo) e digita appname

Com licensa agora tenho que ir compilar o driver da wireless. O proximo post vai ser isso provalmente.

[UPDATE]
Encontrei uma implementação de socks para windows e funciona no win 7 32 bits normalmente. É chamado SocksCap. Funciona que é um luxo!

http://www.linux.com/feature/54894

Marcadores:

0 Comentários:

Postar um comentário

<< Home



Chat with Lutieri G. B.

Subscribe in a reader