Tag Archives: proxy

Putty – O poder do SSH no Windows

O Putty é um software livre, e você pode dar download gratuito e usá-lo sem pagar nada. A página oficial do Putty é aqui e você pode baixá-lo neste link. Ele não tem um instalador, então escolha um diretório e coloque ele lá. As configurações feitas ficam guardadas diretamente no registro do Windows.Ao clicar no ícone do Putty, uma tela enigmática aparece:

wpid-wpid-putty1.PNG-2008-01-31-16-37-2008-01-31-16-37.png

Como configurar esse brinquedinho? Vamos explorar algumas configurações básicas através de cenários.

O primeiro cenário é composto da um computador (cliente) ligado na Internet, acorrentado pelo Traffic Shapping, como já relataram pessoas que usam o Vírtua no Brasil e a NetCabo em Portugal. Como conseguir superar esta limitação de banda imposta pelo Traffic Shaping? Usaremos um servidor ssh do Dreamhost, que eu uso normalmente para o exemplo. É claro que o IP do servidor que você usa não necessariamente será igual, mesmo se você for cliente da Dreamhost.

O que nós faremos é criar um túnel SSH entre o cliente e o servidor. Com este túnel estabelecido usaremos um serviço de proxy local (no cliente), que redicionará o tráfego para o túnel, fugindo assim do traffic shaping.

Dados necessários:

IP do servidor: 208.113.132.44
Porta de acesso: 22
Porta que utilizaremos para nosso proxy: 7777

wpid-wpid-putty2.PNG-2008-01-31-16-37-2008-01-31-16-37.png

Na aba “session” coloque em hostname ou IP adress o endereço do servidor SSH e, ao lado, a porta. Verifique que
“Connection type” deve estar em SSH. Essa é a configuração básica do Putty. Se clicarmos em Open, iremos, no cenário descrito acima, nos conectar a um servidor remoto. Na tela negra que aparecerá, será pedido usuário e senha. Depois de aceitos a VPN está estabelecida, mas apenas para os comandos SSH.

Como fazer o túnel funcionar como um servidor proxy, e direcionar minha conexão diretamente para o servidor, independente de ser um comando ssh ou não?

Vamos precisar nos aprofundar um pouco mais no putty. Abra, no menu à direita a opção “Connection”,”SSH”, e “Tunnels”. Em “source port”, coloque o número de porta que lhe convenha, no exemplo 7777. Não esqueça de verificar se “Dynamic” está marcado. Depois destas modificações, clique em “Add”.

wpid-wpid-putty3.PNG-2008-01-31-16-37-2008-01-31-16-37.png

O resultado da operação acima pode ser visto na imagem a seguir.

wpid-wpid-putty4.PNG-2008-01-31-16-37-2008-01-31-16-37.png

Ao clicar “Open” você poderá se conectar ao servidor SSH e seu tráfego poderá ser transferido ao servidor remoto.

Agora é só configurar seu browser, seu IM, seu client torrent para se conectar ao proxy socks 5, servidor “localhost” ou “127.0.0.1”, na porta 7777,  que escolhemos antes.

Mas e se seu computador estiver atrás do proxy da empresa? Como superá-lo? Bem, este é um outro cenário, e será visto em um próximo post.

Achar um servidor SSH para fazer seu Túnel e fugir do Traffic Shaping e do Proxy

Como encontrar um servidor SSH para me conectar?

Existem algumas opções para se conseguir uma conta em um servidor SSH. Cada uma das opções tem suas vantagens e desvantagens, geralmente o trade-off é entre qualidade-segurança-preço.

1. Se inscrever em um servidor ssh gratuito. Até hoje não encontrei nenhum que tivesse realmente uma boa qualidade de conexão e banda suficiente para navegar sem dificuldades.

Se fizermos uma busca no Oráculo por Free Shell Acconts, encontraremos páginas e páginas com várias e bizarras opções.

A maior parte delas é furada.

Eu pessoalmente não aconselho estes “free” shell accounts, ao menos com os fins de fugir do Traffic Shaping. Geralmente, nos termos e serviço que você tem que concordar para ter acesso a estes servidores, uma das cláusulas de serviço faz com que você se comprometa que não usará a conta para fazer tunneling.

Isso significa que se você se conectar via shell para enganar o proxy, vai acabar tendo o serviço cortado devido ao alto consumo de banda. Sem esquecer que vai prejudicar todos os outros que usam esse servidor! É importante também ressaltar que seu tráfego vai passar por esse servidor gratuito e pode ser monitorado por alguém sem nenhum compromisso com você! Eu desconfio sempre, pois já vi coisas de louco nesse mundo internet…

Neste link há uma lista de servidores gratuitos, ao menos aparentemente gratuitos. Use por sua conta e risco. Se tiver uma graninha para investir na qualidade da sua internet NÃO use.

2. Assinar um serviço de SSH pago.

Os valores variam bastante dependendo do que é oferecido pelo provedor e os serviços de ssh pagos são de vários tipos e sabores.

Na minha experiência os melhores serviços não são aqueles que oferecem somente uma conta no servidor shell, mas sim os serviços de Webhost que trazem no pacote de hospedagem o acesso a um shell SSH.

Custa um pouco mais caro, mas com um serviço de qualidade você recebe espaço web geralmente generoso, quantidade de banda suficiente para garantir o tráfego no seu túnel SSH, servidor FTP, além de geralmente poder registrar um domínio.

Eu aconselho vivamente o Dreamhost, e se assinar por este link, paga baratinho e ainda ajuda meu blog. Eu uso há anos e nunca tive problema!

3. Configurar um computador, ligado 24 horas na Internet Livre, para trabalhar como um servidor.

Esta terceira opção é bem interessante também. Primeiro porque você não gasta dinheiro nenhum a mais com isso. Depois o tráfego fica passando pela sua casa, evitando um servidor terceiro. A desvantagem maior é a tecnicália relacionada, e o fato que a maior parte dos provedores de banda larga não lhe dá direito a um IP fixo. Esse último problema é contornável com o uso de um DNS dinâmico, sendo o DynDns o serviço gratuito mais conhecido.

Eu mesmo tenho no Rio meu computador de casa com um servidor SSH instalado e aceitando conexões. Não é escopo deste post explicar como fazer a instalação de um servidor ssh na sua casa, quem sabe no futuro?

Próximo artigo finalmente vamos falar como configurar o Putty!

O que é SSH? Como ilude o servidor PROXY e inibe o Traffic Shaping?

SSH é um protocolo de rede, criado inicialmente em 1995, e que permite que dados sejam trocados entre 2 computadores. Desde o início da internet estão disponíveis várias implementações de protocolos de rede com a mesma finalidade, sedo o principal o TELNET. O SSH se diferencia destes pois a comunicação é criptografada, o que permite que os dados mantenham sua integridade e confiabilidade.

Incialmente o SSH era usado para entrar em outro computador e executar comandos neste. Um administrador de rede geralmente usa muito o SSH para se conectar a servidores, devido a segurança que proporciona. Com o tempo as implementações de SSH começaram a ganhar novas funcionalidades, como tunelamento, permitindo entre outras coisas a transferência de arquivos e o que mais nos interessa, o fowardig de portas TCP.

Um cliente SSH, que roda no seu computador, é usado para acessar um servidor remoto SSH.

Se o servidor remoto estiver na Internet Livre, servirá como ponte entre esta e seu computador. Os dados que passam pelo túnel criado pelo seu computador e o servidor são criptografados, e portanto o conteúdo não pode ser identificado, evitando assim o Traffic Shaping. Além disso, se quem pedir à Internet Livre as páginas for o servidor remoto, o proxy não pode filtrar o pedido. Mas o proxy ainda funciona como grande barreira para conseguir a conexão com o servidor SSH remoto.

O servidor SSH, como visto no artigo anterior, usa a porta 22 para se comunicar. Em uma rede corporativa a porta 22 provavelmente está bloqueada. Somente a porta do proxy, 8080, está aberta. Para conseguir se conectar ao servidor SSH remoto, teremos que ir até o proxy na porta 8080 e fazer com que este mande para frente o pedido de se conectar à porta 22 do servidor SSH remoto.

Na maior parte dos casos esta não é uma tarefa trivial. O proxy geralmente é configurado para não mandar pacotes para portas diferentes que a porta 80. O pedido chega na porta 8080 do proxy e ele o envia para porta 80 na Internet livre. Há uma grande excessão, que é a porta 443.

A porta 443 é a porta usada para conexão em sites seguros. É a porta que é utilizada com o protocolo HTTPS, aquele que coloca um cadeado na parte de baixo do seu navegador, que é usada para sites de bancos, sites de compras, e mesmo alguns webmails que levam segurança da informação a sério. A porta 443 é usada para transferir dados seguros, CRIPTOGRAFADOS, e o proxy não pode julgar seu conteúdo. Se seu servidor proxy não direcionar seus pedidos de conexão para a porta 22, certamente ele direcionará para a porta 443. É batata!

O grande truque é conseguir se conectar ao servidor SSH remoto. Depois, tudo fica mais fácil.

Máquinas Windows não tem um programa cliente SSH instalado por padrão. A melhor opção é o putty. Falaremos dele mais na frente. Ele é nossa principal ferramente para chegar na Internet Livre. Mas agora é preciso ter acesso a ela!

Como acho um servidor SSH onde me conectar?

Esse é o próximo artigo!

Fugir do Traffic Shaping e de Proxys com SSH

Este artigo complementa os dois artigos publicado no Camelo Manco sobre como contornar bloqueios na Web e outras limitações de conteúdo ou tráfego, como proxy e traffic shaping. Este mundo internet sem bloqueios eu chamarei de Internet Livre.

Nos outros artigos, bastante menos aprofundados, eu falei um pouco sobre VPN e SSH, mas o foco era principalmente voltado em máquinas Linux e BSDs. Como quem usa esses sistemas geralmente tem um background maior de informática e redes, não foi preciso se aprofundar. Nesta pequena série de artigos, mais direcionado ao pessoal que usa Windows, vou tentar ser um pouco mais didático, e ao mesmo tempo fornecer um passo a passo, uma receita de bolo que funcionará na maior parte dos ambientes.

Imagine que entre a Internet Livre e você há um filtro. Esse filtro “observa” você quer ir e permite ou não que você vá até lá. Na verdade esse filtro muitas vezes não olha somente ONDE você quer ir, mas POR ONDE (por qual porta) você passa para chegar a qualquer lugar.

Quando se tenta acessar uma página web na Internet Livre, passa-se quase sempre pela porta oitenta (80). Para acessar um servidor de arquivos (ftp) utiliza-se da porta 21. Um servidor SSH, utiliza-se da porta 22. Esse é o padrão na Internet Livre, cada porta serve para pedir a um serviço diferente.

Um filtro do tipo PROXY, em uma empresa por exemplo, fecha a maioria das portas e só permite tráfego de ida se ele passar por uma porta específica (a porta 8080 é uma das preferidas, mas não há um padrão). Assim se eu tentar acessar o Google, sem configurar nada no meu computador, serei barrado, pois não consigo pedir nada pela porta 80. O mesmo acontece com o ftp (21) ou o ssh (22). No caso de páginas, basta configurar meu browser (em geral sua empresa faz isso para você) para se conectar ao servidor proxy da empresa na porta predefinida.

Na Internet Livre eu peço a página do Google ao servidor Web do Google.

Na internet da empresa eu peço a página do Google ao servidor proxy da empresa, e se este concordar que eu posso continuar minha navegação até o Google, o servidor proxy da empresa pede ao servidor do Google que a página seja enviada para mim.

O servidor proxy fica parado entre você e a Internet Livre, comparando o que você pede com o que ele sabe que não é permitido.

Traffic Shaping é diferente. Quando você pede um arquivo usando uma rede P2P, como emule ou bittorrent, o tipo de informação (pacote) que vai e vem para seu computador, independente de por qual porta passa, tem algumas características próprias. No Traffic Shaping há uma monitoração da quantidade destes pacotes na rede e se cria um gargalo para que haja uma redução drástica na quantidade de pacotes com estas características que podem entrar e sair na Internet Livre.

A maneira de não ser refém do bloqueio de portas e conteúdos e do Traffic Shaping é conseguir que o proxy ache que onde você quer ir é permitido e que não se consiga identificar o pacote P2P como tal. E é aí que entra o protocolo SSH.