<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chita</title>
	<atom:link href="http://chita.com.br/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://chita.com.br/blog</link>
	<description>Tecnologia das Selvas</description>
	<lastBuildDate>Tue, 11 May 2010 12:20:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>E4SSH &#8211; Python+Paramiko+POG FTW!!</title>
		<link>http://chita.com.br/blog/index.php/2010/05/e4ssh-pythonparamikopog-ftw/</link>
		<comments>http://chita.com.br/blog/index.php/2010/05/e4ssh-pythonparamikopog-ftw/#comments</comments>
		<pubDate>Sat, 01 May 2010 05:48:33 +0000</pubDate>
		<dc:creator>Emerson</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[paramiko]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://chita.com.br/blog/?p=68</guid>
		<description><![CDATA[Já que hoje é dia de desenterrar defunto, aproveito também para postar aqui o meu primeiro programa POG em Python, o E4SSH, desenvolvido nos meus tempos de SysAdmin UOL. O cenário é o seguinte, você precisa acessar centenas ou mesmo milhares de servidores diferentes, e executar o mesmo comando via SSH. Ah, e o uso [...]]]></description>
			<content:encoded><![CDATA[<p>Já que hoje é dia de desenterrar defunto, aproveito também para postar aqui o meu primeiro <span style="text-decoration: line-through;">programa</span> POG em Python, o E4SSH, desenvolvido nos meus tempos de SysAdmin UOL.</p>
<p>O cenário é o seguinte, você precisa acessar centenas ou mesmo milhares de servidores diferentes, e executar o mesmo comando via SSH.</p>
<p>Ah, e o uso de chaves não é possível.</p>
<p>Ah, e você tem diferentes senhas de diferentes complexidades nestes hosts.</p>
<p>Ah, e muitas dessas senhas estão expiradas e precisam ser trocadas antes de tudo.</p>
<p>Ah, e você precisa também executar comandos como root.</p>
<p>Ah, e você também tem diferentes senhas de root nestes hosts (sudo não é uma opção).</p>
<p>Ah, e você precisa também fazer scp de arquivos para esses hosts.</p>
<p>O que fazer? Chamar o estagiário? NÃO! Você usa o E4SSH <img src='http://chita.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ele é um script tosco feito para contornar essas situações, fazendo o trabalho repetitivo das tarefas supracitadas.</p>
<p>Se você tem horror a código macarronês, pare por aqui, enquanto você ainda não foi ferido.</p>
<p>A única coisa chata mesmo é que eu tinha feito vários bugfixes nele e perdi essa versão mais atualizada. E como não devo voltar a mexer nesse script, fica por isso mesmo.<br />
Se você realmente pretender usar isso, leia bem o código antes.<br />
<a href='http://chita.com.br/blog/wp-content/uploads/2010/05/e4ssh.py_.gz'>e4ssh.py &#8211; Download aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://chita.com.br/blog/index.php/2010/05/e4ssh-pythonparamikopog-ftw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blast from the Past: Easy Linux 9 &#8211; Games</title>
		<link>http://chita.com.br/blog/index.php/2010/05/blast-from-the-past-easy-linux-9-games/</link>
		<comments>http://chita.com.br/blog/index.php/2010/05/blast-from-the-past-easy-linux-9-games/#comments</comments>
		<pubDate>Sat, 01 May 2010 05:30:00 +0000</pubDate>
		<dc:creator>Emerson</dc:creator>
				<category><![CDATA[Baú]]></category>
		<category><![CDATA[Pessoal]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[cedega]]></category>
		<category><![CDATA[jogos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wine]]></category>

		<guid isPermaLink="false">http://chita.com.br/blog/?p=62</guid>
		<description><![CDATA[Para guardar para a posteridade, estou disponibilizando o PDF da Easy Linux 09 com a minha matéria sobre jogos no Linux. Hoje em dia a informação está bem desatualizada, mas&#8230; Pode ser útil eventualmente! Aproveito para agradecer ao Cav3ira da Linux Brasil, que mantém vivo uma cópia do artigo publicado em meu antigo blog, antes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://chita.com.br/blog/wp-content/uploads/2010/05/capa.jpg"><img class="alignnone size-medium wp-image-63" title="Easy Linux 09" src="http://chita.com.br/blog/wp-content/uploads/2010/05/capa-224x300.jpg" alt="" width="224" height="300" /></a></p>
<p>Para guardar para a posteridade, estou disponibilizando o <a href="http://docs.google.com/fileview?id=0BwjZV7ZfU2cYNzFkYzY5YzMtM2U4OS00YjMwLWE2ZmItMzczY2U0YjJmMjk2&amp;hl=pt_BR" target="_blank">PDF da Easy Linux 09 com a minha matéria sobre jogos no Linux</a>. Hoje em dia a informação está bem desatualizada, mas&#8230; Pode ser útil eventualmente! Aproveito para agradecer ao Cav3ira da Linux Brasil, <a href="http://comunidade-linux-brasil.info/content/view/36/21/" target="_blank">que mantém vivo uma cópia do artigo publicado em meu antigo blog</a>, antes de que eu perdesse todos os dados com a maldita DreamHost. N&#8217;joy!</p>
]]></content:encoded>
			<wfw:commentRss>http://chita.com.br/blog/index.php/2010/05/blast-from-the-past-easy-linux-9-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vídeo Formatura Sesi 227 &#8211; 1996</title>
		<link>http://chita.com.br/blog/index.php/2009/09/formatura-sesi-227-1996/</link>
		<comments>http://chita.com.br/blog/index.php/2009/09/formatura-sesi-227-1996/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 17:21:00 +0000</pubDate>
		<dc:creator>Emerson</dc:creator>
				<category><![CDATA[Baú]]></category>

		<guid isPermaLink="false">http://chita.com.br/blog/?p=30</guid>
		<description><![CDATA[Recentemente andei fazendo uma limpa em coisas velhas, e acabei achando a fita VHS da minha formatura no SESI 227 de Monte Alto, em 1996. Aproveitei para digitaliza-la. Aí vai o vídeo! E aqui o link para baixar o vídeo.]]></description>
			<content:encoded><![CDATA[<p>Recentemente andei fazendo uma limpa em coisas velhas, e acabei achando a fita VHS da minha formatura no SESI 227 de Monte Alto, em 1996. Aproveitei para digitaliza-la. Aí vai o vídeo!</p>
<p><img src="http://chita.com.br/blog/wp-content/plugins/flash-video-player/default_video_player.gif" /></p>
<p><a href="http://it.runs.with-linux.com/media/formatura.flv">E aqui o link para baixar o vídeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://chita.com.br/blog/index.php/2009/09/formatura-sesi-227-1996/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Túneis: Burlando (praticamente) qualquer tipo de restrição a internet</title>
		<link>http://chita.com.br/blog/index.php/2009/04/tuneis-burlando-praticamente-qualquer-tipo-de-restricao-a-internet/</link>
		<comments>http://chita.com.br/blog/index.php/2009/04/tuneis-burlando-praticamente-qualquer-tipo-de-restricao-a-internet/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 23:06:44 +0000</pubDate>
		<dc:creator>Emerson</dc:creator>
				<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://chita.com.br/blog/?p=8</guid>
		<description><![CDATA[Ah, os túneis. Mistura de dádiva e maldição para os usuários fuçadores e administradores de rede, respectivamente. Neste artigo irei abordar como utiliza-los para burlar quase qualquer tipo de restrição imposta ao acesso a internet em redes públicas; que podem não só serem utilizados para fins excusos ou para a defesa da liberdade de expressão [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-thumbnail wp-image-15" style="border: 0pt none; margin: 0px 5px;" title="tunnelhouse12" src="http://chita.com.br/blog/wp-content/uploads/2009/04/tunnelhouse12-150x150.jpg" alt="tunnelhouse12" width="150" height="150" /></p>
<p style="text-align: justify;">Ah, os túneis. Mistura de dádiva e maldição para os usuários fuçadores e administradores de rede, respectivamente. Neste artigo irei abordar como utiliza-los para burlar quase qualquer tipo de restrição imposta ao acesso a internet em redes públicas; que podem não só serem utilizados para fins excusos ou para a defesa da liberdade de expressão na China ou em Cuba, mas também para simplificar muito o seu dia-a-dia.</p>
<p style="text-align: justify;"><strong>Antes de começar:</strong><br />
Todos os métodos que irei comentar aqui assumem que você tenha disponível uma outra conexão à internet disponível em algum lugar, seja em sua casa ou em um servidor pago ou de terceiros, para que seja usado como proxy. Nerd que se preze sempre tem a mão uma conexão SSH disponível <img src='http://chita.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Se você não tem uma, suas opções para conseguir uma são:</p>
<ul style="text-align: justify;">
<li> Registrar-se em um servidor gratuito &#8211; Geralmente os serviços de shell gratuitos são bem limitados, mas você pode tentar o <a href="http://shell.cjb.net " target="_blank">Cjb.net</a> ou o <a href="http://www.rootshell.be" target="_blank">Rootshell.be</a>, ou ainda <a href="http://www.google.com.br/search?hl=pt-BR&amp;client=firefox-a&amp;rls=org.mozilla%3Apt-BR%3Aofficial&amp;hs=kaE&amp;q=free+shell+accounts&amp;btnG=Pesquisar&amp;meta=" target="_blank">caçar algum outro</a>.</li>
<li>Largar a mão de ser muquirana e usar um serviço comercial: Boa parte dos provedores de hospedagem costumam prover também serviços de SSH, com toda a qualidade e customização que o seu dinheiro pode comprar &#8211; E nem costuma ser tão caro assim. Minha dicas: <a href="http://www.vpsbyte.com/" target="_blank">VPSByte</a> para VPSs (Virtual Private Server) a partir de US$10/mês, ou o <a href="http://www.leaseweb.com/" target="_blank">LeaseWeb</a> para um serviço mais sofisticado, com servidor dedicado como o que a Chita usa <img src='http://chita.com.br/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Instalar seu próprio servidor na conexão de casa &#8211; Algo que pode ser feito com o seu desktop ou mesmo ou <a href="http://chita.com.br/blog/index.php/2009/04/transformando-seu-roteador-wireless-barato-em-um-super-network-appliance-com-linux/" target="_blank">instalando Linux no seu roteador</a> para não precisar deixar o micro ligado 24/7.</li>
</ul>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Método 1 &#8211; O Clássico Tunelamento SSH</strong></span></p>
<p style="text-align: justify;"><em>Local</em>: Praticamente qualquer rede corporativa ou pública (lan houses, escolas, faculdades)<br />
<em> Problema</em>: Você consegue acesso normal a HTTP, contudo a navegação é barrada para alguns sites específicos, devido ao firewall draconiano. Além disso, toda sua navegação está sendo logada no servidor da instituição &#8211; Um prato cheio para qualquer amante de teoria da conspiração. Você não consegue acessar portas não-HTTP, o que impede o uso de alguns programas.<br />
<span style="text-decoration: underline;"><em> Solução</em></span>: O clássico tunelamento SSH irá criar um canal de comunicação privativo entre o seu desktop e seu servidor, cujo conteúdo não poderá ser interceptado pela rede pública do mal, graças a criptografia empregada. Dependendo do caso, sua navegação poderá até mesmo ficar mais rápida do que seria normalmente, se utilizar também a opção de compressão SSH!</p>
<p style="text-align: justify;"><strong>Como fazer:</strong><br />
Para isso, você irá precisar que a rede permita uma conexão TCP (SSH) até o seu servidor. Como em geral nessas redes são permitidas apenas conexões TCP para serviços HTTP, (porta 80 ou 443), é recomendável que o seu servidor pessoal fique ouvindo SSH também nessas portas, além da padrão 22. Desta forma você poderá se conectar a ele &#8220;disfarçado&#8221; de requisição HTTP/S.</p>
<p style="text-align: justify;"><strong>1) Abra uma conexão ssh até seu servidor, com as seguintes opções:</strong></p>
<blockquote style="text-align: justify;"><p><code>ssh usuario@seuservidor.seudominio.com -D 8080 -C</code></p></blockquote>
<p style="text-align: justify;">A opção -D indica que deverá ser criada uma <span style="text-decoration: underline;">Tunel Dinâmico</span> na porta 8080 de seu desktop. Um túnel dinâmico funciona exatamente da mesma forma que um proxy SOCKS, ou seja, você pode pode configurar qualquer aplicação que tenha suporte a SOCKS para que utilize o túnel!</p>
<p style="text-align: justify;">A opção -C indica que deverá ser utilizada compactação de dados na conexão. Utilize-a somente se a conexão entre os dois pontos (Seu Desktop e seu Servidor) não for muito rápida.</p>
<p style="text-align: justify;">Se você usa <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">Putty</a>/Windows (Meus pesames pela segunda opção), a opção equivalente a -D se encontra em Connection, SSH, Tunnels e a -C em Connection, SSH.</p>
<p style="text-align: justify;"><strong>2) Configure seu navegador para utilizar o túnel:</strong></p>
<p style="text-align: justify;">No Firefox, basta você ir em Editar, Preferências, Rede, Conexão &#8211; Configurar, Configuração de manual de proxy, e no campo SOCKS, informe localhost e porta 8080.</p>
<p style="text-align: justify;"><a href="http://chita.com.br/blog/wp-content/uploads/2009/04/tela1.png"><img class="alignnone size-thumbnail wp-image-58" title="Firefox Proxy Config" src="http://chita.com.br/blog/wp-content/uploads/2009/04/tela1-150x150.png" alt="" width="150" height="150" /></a><em><strong><br />
</strong></em></p>
<p style="text-align: justify;"><em><strong>2b) Somente para Linux Users -&gt; Use <span style="text-decoration: line-through;">a força</span> o tsocks!</strong></em></p>
<p style="text-align: justify;">Visto que nem todas as aplicações tem suporte a proxies, você pode se deparar com um caso onde você não pode conseguir tunelar o seu tráfego. Certo? ERRADO! Ao menos se você usa Linux <img src='http://chita.com.br/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Para isso existe o <a href="http://tsocks.sourceforge.net/" target="_blank">tsocks</a>. Ele é uma biblioteca para o uso transparente de proxy socks. Basta que você execute qualquer aplicação com ele e voilá! Todo o tráfego daquela aplicação será redirecionada para o seu proxy, sem necessidade de configuração ou mesmo suporte da aplicação para proxy socks.</p>
<p style="text-align: justify;"><strong>3) Teste que a aplicação está realmente usando o túnel</strong></p>
<p style="text-align: justify;">Uma forma de fazer isso é acessar <a href="http://tools.chita.com.br" target="_blank">http://tools.chita.com.br</a> &#8211; O IP e Hostname de seu servidor deverão ser exibidos, e não os da rede que você se encontra.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Método 2 &#8211; Tunelamento HTTP</strong></span></p>
<p style="text-align: justify;">Se a sua rede for realmente restritiva e não permitir nenhuma conexão externa a não ser por um proxy HTTP, não tema! Você ainda tem chances!</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Método 2A &#8211; Tunelamento HTTP+SSH</strong></span></p>
<p style="text-align: justify;">Esta solução é bem parecida com a do método 1, com a única diferença de que você irá realizar uma conexão SSH passando pelo Proxy HTTP, e não diretamente.</p>
<p style="text-align: justify;">Se você usa o Putty, basta configurar o endereço do Proxy diretamente em Connection, Proxy:</p>
<p style="text-align: justify;">Com o bom e velho ssh de linha de comando, você irá precisar da opção ProxyCommand. Essa opção é bem interessante, porque permite a possibilidade de utilizar qualquer outro programa para estabelecer o tunel no qual a sessão SSH será estabelecida. Neste exemplo, iremos usar o netcat como ProxyCommand. Resumindo, o netcat vai ser responsavel por realizar a conedxão de sua máquina ao proxy, e a partir deste ponto o SSH assume, usando esta ponte para abrir a sessão SSH normalmente.</p>
<p style="text-align: justify;">Edite o arquivo ~/.ssh/config</p>
<p style="text-align: justify;">Adicione as linhas:</p>
<blockquote style="text-align: justify;"><p>## Para todos os hosts,<br />
Host *<br />
ProxyCommand connect -H proxy.local.net:8080 %h %p</p></blockquote>
<p style="text-align: justify;">Este método exige que o Proxy permita o uso de SSL (Comando Connect). Se não for o seu caso, leia o próximo método.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Método 2B &#8211; Tunelamento HTTP Puro</strong></span></p>
<p style="text-align: justify;">No caso de um proxy HTTP REALMENTE restritivo, onde SSL não possa ser usado, ainda existe mais um jeitinho: Tunelar por HTTP Puro.<br />
A ferramenta clássica para este fim é o <a href="http://www.nocrew.org/software/httptunnel.html" target="_blank">GNU httptunnel</a>. Ele é dividido em 2 partes: cliente (<strong>htc</strong>) e servidor (<strong>hts</strong>).<br />
O processo todo é bem simples, basta você especificar no cliente qual será a porta local a ser redirecionada e no servidor qual será a porta destino. Exemplo:</p>
<p style="text-align: justify;">Cliente:</p>
<blockquote style="text-align: justify;"><p>htc -F 12345 192.168.1.100:443</p></blockquote>
<p style="text-align: justify;">Servidor:</p>
<blockquote style="text-align: justify;"><p>hts -F 443 ssh.meuservidor.com:22</p></blockquote>
<p style="text-align: justify;">Desta forma quando você realizar uma conexão em seu desktop, localhost na porta 12345, o cliente htc irá encaminhar o tráfego encapsulado em HTTP para o servidor 192.168.1.100:443, que irá estar executando o hts. O hts, por sua vez irá desencapsular o tráfego recebido e encaminha-lo para ssh.meuservidor.com:22.<br />
Na prática, isso permite que você possa usar SSH e o tunelamento clássico que mencionamos no método 1, mesmo que o seu proxy de regime comunista não permita tal ato, uma vez que todo o tráfego será convertido em HTTP Puro, amado e geralmente permitido sem ou com poucas restrições pela maioria dos administradores de rede.</p>
<p style="text-align: justify;">O GNU httptunnel, contudo, tem algumas limitações chatas:</p>
<ul style="text-align: justify;">
<li>A parte server hts toma a porta de entrada só para ela e não pode compartilha-la com um webserver. Isso é extremamente incoveniente, visto que conseguir um servidor com uma porta privilegiada 80 ou 443 dando sopa é quase sempre um ato homérico.</li>
<li>Se você ter destinos diferentes, irá ter que rodar diversas instancias do servidor, cada uma com seu destino e porta de entrada respectivos. Não é um problema se você pretende tunelar apenas uma conexão SSH para método clássico, mas com certeza será um problemas se você quiser tunelar diretamente tráfego sem depender do SSH.</li>
</ul>
<p style="text-align: justify;">Por sorte, acabei encontrando um programa que se propõe a corrigir esses erros terríveis do httptunnel, o <a href="http://www.islandjohn.com/islandjohn.com/Home/Entries/2009/2/1_Webtunnel.html" target="_blank">webtunnel</a>.</p>
<p style="text-align: justify;">O funcionamento é bem parecido com o do httptunnel, com a grande diferença que a parte servidor roda dentro de um webserver, logo, não toma uma porta importante como a 80 ou 443 só para si, podendo ser hospedado em praticamente qualquer webhost existente. O destino da conexão é especificado na parte do cliente e não da do servidor, permitindo que sejam criados diversos destinos diferentes de uma forma bem simples e tão prática que pode até mesmo dispensar o uso do SSH, dependendo de sua necessidade.</p>
<p style="text-align: justify;">Exemplo:</p>
<p style="text-align: justify;">Servidor:<br />
Basta publicar o arquivo wts.pl em qualquer parte visível de um website que tenha suporte a perl.</p>
<p style="text-align: justify;">Cliente:</p>
<blockquote style="text-align: justify;"><p>./wtc.pl tcp://localhost:12345 tcp://ssh.meudominio.com:22 http://meuservidorweb.com/wts.pl</p></blockquote>
<p style="text-align: justify;">Neste exemplo, todo o tráfego chegando a localhost na porta 12345 será redirecionado para ssh.meudominio.com na porta 22, usando http://meuservidorweb.com/wts.pl como túnel. Apesar de logico, vale lembrar que o destino será sempre o como é visto pelo servidor e não pelo cliente.</p>
<p style="text-align: justify;">Estou disponibilizando a parte servidor aqui na Chita, para voces brincarem: http://tools.chita.com.br/wts.pl</p>
<p style="text-align: justify;">Fique a vontade para usa-lo para um eventual acesso, mas no caso de abuso, serei obrigado a retira-lo do ar.</p>
<p style="text-align: justify;">De qualquer forma, com este túnel aberto, basta você abrir uma sessão de SSH para a porta especificada e usar o Método 1 para não precisar criar diversos destinos diferentes durante a navegação:</p>
<blockquote style="text-align: justify;"><p>ssh usuario@localhost -p 12345 -D 8080 -C</p></blockquote>
<p style="text-align: justify;"><span style="text-decoration: underline;"><em><strong>Métodos mais obscuros:</strong></em></span></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><em><strong><img class="alignleft size-thumbnail wp-image-14" style="margin-left: 5px; margin-right: 5px;" title="ze-do-caixao" src="http://chita.com.br/blog/wp-content/uploads/2009/04/ze-do-caixao-3-150x150.jpg" alt="ze-do-caixao" width="150" height="150" /><br />
</strong></em></span></p>
<p style="text-align: justify;">Se nenhum dos métodos de tunelamento acima funcionaram ou se aplicam a você, chegou a hora de tentar usar alguns métodos mais obscuros, maquiavélicos e perversos.</p>
<p style="text-align: justify;"><strong>CUIDADO: O uso inescrupuloso dos métodos abaixo pode fazer com que você passe o resto da eternidade queimando nos mármores do inferno. Você foi avisado.</strong></p>
<p style="text-align: justify;"><em><strong><br />
</strong></em></p>
<p style="text-align: justify;"><em><strong>Local</strong></em>: Hotspots pagos em geral (Aeroportos, Cafés, etc), Dial up 0800 que alguns provedores oferecem para a assinatura do serviço (Lembra dos CDs da AOL?)  ou redes administradas diretamente por algum ditador comunista.</p>
<p style="text-align: justify;"><img class="alignnone size-full wp-image-17" title="mao_icon" src="http://chita.com.br/blog/wp-content/uploads/2009/04/mao_icon.gif" alt="mao_icon" width="50" height="50" /> <em><strong>Problema</strong></em>: Você precisa urgentemente de acesso a internet. Não querem que você tenha acesso a internet enquanto você não abra a sua carteira ou aceite que o regime vermelho é futuro da nação.</p>
<p style="text-align: justify;"><strong>Soluções:</strong></p>
<p style="text-align: justify;">Estas soluções consistem no princípio que quando sua conexão deveria estar bloqueada, como acontece quando você está conectado em um hotspot e tem acesso somente a página de boas-vindas da operadora ou para a compra de crédito, sua conexão não costuma estar completamente bloqueada. Na grande maioria dos casos apenas conexões TCP estão bloqueadas, que é o que pessoas comuns e mentalmente saudáveis usam para navegação. Você, por outro lado, pode se aproveitar de que outros tipos de tráfego costumam ser &#8220;esquecidos&#8221; de ser bloqueados pelos administradores, como UDP, ICMP e DNS &#8211; E sim, você também pode usa-los para navegar com os métodos abaixo:</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Método 3: OpenVPN Server na UDP 53.</strong></span><br />
Possívelmente a solução mais simples possível.<br />
Em geral essas redes não restrigem tráfego UDP, principalmente na porta 53, geralmente utilizada para servidores de nomes. Você pode muito bem rodar a OpenVPN em seu servidor, fazendo com que ele ouça na porta 53 UDP &#8211; E conseguir conectar a VPN sem grandes problemas a partir dessas redes.<br />
Para verificar se tal façanha é possível, basta verificar se você consegue se comunicar com um servidor de DNS Externo ao da rede que voc6e se encontra. Por exemplo:</p>
<blockquote style="text-align: justify;"><p><strong>nslookup www.uol.com.br &#8211; 208.67.220.220</strong><br />
Server:         208.67.220.220<br />
Address:        208.67.220.220#53</p>
<p>Non-authoritative answer:<br />
Name:   www.uol.com.br<br />
Address: 200.221.2.45<br />
Name:   www.uol.com.br<br />
Address: 200.98.249.12</p></blockquote>
<p style="text-align: justify;">Neste exemplo, a partir de minha rede, me comuniquei diretamente com o servidor de DNS 208.68.220.220 (da OpenDNS) por UDP 53, e tive sucesso na resolução de nome. Significa que a comunicação UDP/53 está liberada e eu poderia me conectar normalmente através do OpenVPN.</p>
<p style="text-align: justify;">Contudo, se a saída for como essa:</p>
<blockquote style="text-align: justify;"><p><strong>nslookup www.uol.com.br &#8211; 208.67.220.220</strong><br />
;; connection timed out; no servers could be reached</p></blockquote>
<p style="text-align: justify;">Significa que o tráfego UDP/53 está sendo bloqueado e você deve tentar um dos próximos métodos.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Método 4: TCP Over DNS<br />
</strong></span></p>
<p style="text-align: justify;">Aqui a coisa começa a ficar interessante. Já imaginou a possibilidade de trafegar qualquer tipo de dados apenas usando o sistema de DNS? Isso me ocorreu justamente da última vez que conectei em um hotspot num aeroporto, e quando fui pesquisar sobre, descobri que o conceito era bem mais velho do que eu imaginava.</p>
<p style="text-align: justify;">Existem diversas implementacoes de TCP over DNS, sendo as mais famosas: <a href="http://www.doxpara.com/?p=51" target="_blank">Ozymandns</a> (com um fork <a href="http://cyberphob1a.wordpress.com/2008/03/08/dns-tunneling-updated-source/" target="_blank">aqui</a>), <a href="http://thomer.com/howtos/nstx.html" target="_blank">NSTX</a>, entre outras. Andei brincando um pouco com elas, e a que trouxe melhores resultados foi a da <a href="http://analogbit.com/software/tcp-over-dns" target="_blank">Analogbit, feita em Java</a>.</p>
<p style="text-align: justify;">A configuração e uso destes softwares não é exatamente trivial e eu não vou detalhar aqui instruções específicas, mas você já é um menino grandinho o suficiente para se virar <img src='http://chita.com.br/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Não dá para esperar muito da performance, e bem, na prática voce só vai conseguir uma conexão extremamente lenta, ainda assim, e melhor que nada. Utilize apenas como último recurso!</p>
<p>De qualquer forma, dá pra chegar a conclusão de que é impossível existir um controle 100% efetivo de filtragem de internet <img src='http://chita.com.br/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Método 5: TCP Over ICMP</strong></span></p>
<p style="text-align: justify;"><strong><span style="color: #ff0000;">(Esse artigo ainda não foi terminado <img src='http://chita.com.br/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Volte algum dia para ler o restante!)</span></strong><span style="text-decoration: underline;"><strong><br />
</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://chita.com.br/blog/index.php/2009/04/tuneis-burlando-praticamente-qualquer-tipo-de-restricao-a-internet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Transformando seu roteador wireless barato em um super network appliance &#8211; Com Linux</title>
		<link>http://chita.com.br/blog/index.php/2009/04/transformando-seu-roteador-wireless-barato-em-um-super-network-appliance-com-linux/</link>
		<comments>http://chita.com.br/blog/index.php/2009/04/transformando-seu-roteador-wireless-barato-em-um-super-network-appliance-com-linux/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 21:46:05 +0000</pubDate>
		<dc:creator>Emerson</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://chita.com.br/blog/?p=3</guid>
		<description><![CDATA[Tinha ouvido falar muito sobre linux em roteadores wireless, mas sempre me frustava com o fato de que o meu router não era um dispositivo suportado. Resolvi &#8220;pagar para ver&#8221;, e comprei um roteador novo para ver do que se tratava &#8211; E o resultado foi muito melhor do que eu esperava. Novo Equipamento O [...]]]></description>
			<content:encoded><![CDATA[<p>Tinha ouvido falar muito sobre linux em roteadores wireless, mas sempre me frustava com o fato de que o meu router não era um dispositivo suportado. Resolvi &#8220;pagar para ver&#8221;, e comprei um roteador novo para ver do que se tratava &#8211; E o resultado foi muito melhor do que eu esperava.</p>
<p><strong>Novo Equipamento</strong><br />
O meu já relativamente velho Linksys WRT54-GC, apesar de ser muito pequeno e simpático e nunca ter me dado problemas nos últimos anos, mesmo operando 24/7, não possui uma quantidade de memória que pudesse ser aproveitada para instalação de Linux (Apenas 1MB de memória Flash).<br />
O novo modelo escolhido foi o Asus WL520-GU, basicamente por causa de 3 critérios:</p>
<ul>
<li>É um equipamento barato.</li>
<li>É compatível com Linux (4MB de memória Flash, 16MB de Ram).</li>
<li>Possui além das 5 portas Ethernet, uma porta USB.</li>
</ul>
<p>Fiz a compra do mesmo no Ebay, por cerca de US$45 dolares (já inclusa a taxa de entrega) de um vendedor de Hong Kong. Infelizmente a entrega foi demorada, mais de 3 meses, contando com o desembaraço do produto na Receita Federal. Inicialmente quiseram me cobrar quase R$200 de impostos, mas após a reavaliação que solicitei, o valor baixou para R$65. O valor total do produto acabou me saindo cerca de R$170 reais, algo bem razoavel em comparação aos preços de dispositivos similares por aqui.</p>
<p><strong>Firmware Livre versus Firmware Proprietário:</strong><br />
Enquanto o firmware proprietário traz as features padrão de todos os roteadores wireless (DHCP, Firewall, UPnP, Port Forwarding, etc e especificamente neste modelo, compartilhamento de impressora USB), o Firmware Livre conta com tudo isso e muitas outras features que geralmente são encontradas apenas em caríssimos network appliances, como:</p>
<ul>
<li>Múltiplos SSIDs;</li>
<li>QoS / Limitação de banda;</li>
<li>Hotspots;</li>
<li>Servidor Web/FTP/SSH/Telnet;</li>
<li>Múltiplas WANs com Balanceamento de Links;</li>
<li>Cliente de VPN e Voip;</li>
<li>Possibilidade de rodar aplicações customizadas, como servidor web, cliente torrent, etc.</li>
</ul>
<p>Só para mencionar algumas.</p>
<p><strong>Escolha da &#8220;distro&#8221;: OpenWRT vs DD-WRT.</strong><br />
Pesquisando um pouco sobre essas duas &#8220;Distros&#8221; de Linux para roteadores, dá pra resumir de forma bem grosseira, que:</p>
<ul>
<li><a href="http://www.dd-wrt.com" target="_blank">DD-WRT</a> é a uma solução <em>out-of-the box</em>; a escolha para quem quer simplesmente &#8220;instalar e esquecer&#8221; &#8211; Traz tudo pré configurado, e praticamente todas as opções podem ser configuradas através da sua interface web, que é bastante completa.</li>
<li><a href="http://www.openwrt.org" target="_blank">OpenWRT</a> é a escolha para quem quer &#8220;sujar as mãos&#8221; e customizar seu sistema ao máximo. Traz por padrão uma interface básica, e não espere que esteja tudo funcionando após o flash do firmware. Contudo, trata-se se algo modular, que o usuário pode adequar perfeitamente a suas necessidades se quiser investir o tempo.</li>
</ul>
<p><em>Existem alguns aspectos mais obscuros:</em><br />
O Objetivo do OpenWRT é o de ser uma implementação realmente livre. Todos os componentes que a compoem são completamente open source.<br />
Já o DD-WRT certamente não é algo que o Stallman recomendaria &#8211; Os desenvolvedores mantém uma versão paga com mais funcionalidades. Além disso, a interface Web utilizada foi criptografada de forma a não poder ser customizada &#8211; Os desenvolveres alegam que isso é para frear o comércio de customizações do DD-WRT, mas essa eu pessoalmente não engoli. Claras violações à GPL.</p>
<p>De qualquer forma, preferi a simplicidade do DD-WRT sobre o OpenWRT, ao menos por enquanto. Assim que conseguir um tempinho e um equipamento extra para brincar, irei dar mais atenção ao OpenWRT. Desta forma, todos os procedimentos aqui irão ser explicados com base no DD-WRT.</p>
<p><strong>Instalação:</strong></p>
<p><strong><span style="font-weight: normal;">Antes de tudo, verifique se o seu roteador é suportado aqui. &lt;http://www.dd-wrt.com/wiki/index.php/Supported_Devices&gt;</span></strong></p>
<p>Basicamente, os requisitos para isso é que ele possua um chipset compatível, com Atheros ou Broadcom e uma quantidade de memória flash mínima (2MB para Broadcom, 4MB para Atheros). Se estiver pensando em comprar um novo equipamento para este fim, preste bastante atenção nas quantidades de memória Flash e Ram disponíveis &#8211; Vale a regra do quanto mais, melhor. Na verdade a quantidade de memória Flash acaba sendo o fator crucial: 2MB é apenas o mínimo possível para instalar as capacidades básicas, com 4MB você pode instalar o sistema standard sem muita folga e com 8MB ou mais, você já pode instalar todas as features opcionais.</p>
<p><strong>1) Escolha a versão do Firmware e faça o download:</strong></p>
<p>Existem versões diferentes do DD-WRT destinadas a quantidade de memória flash disponível em seu roteador: Micro, Mini, Nokaid, Standard, VOIP, VPN e Mega. As funcionalidade de cada uma <a href="http://www.dd-wrt.com/wiki/index.php/What_is_%22DD-WRT%22%3F#File_Versions">você pode consultar aqui.</a></p>
<p>Os build mais recentes <a href="http://www.dd-wrt.com/dd-wrtv2/down.php?sort=date&amp;path=downloads/others/eko/V24_TNG/">geralmente são postados aqui.</a></p>
<p>A última versão disponível no momento em que escrevo isso é a v24sp2 build 1188</p>
<p>A versão &#8220;especial&#8221; do firmware, que possui capacidades de QoS extendidas (controle de banda por velocidade &#8211; na versão free isso só é possível com prioridade) e é vendida no site. Se alguém tiver interesse, posso disponibilizar aqui eventualmente.</p>
<p>Note que esta é a versão v24sp1, enquanto a última free já é a v24sp2.<br />
Tendo a versão do firmware escolhida e baixada, vamos para o próximo passo:</p>
<p><strong>2) Atualizando a memória flash com o novo firmware.</strong></p>
<p>Esse processo pode variar de dispositivo para dispositivo &#8211; O ideal é que você siga as instruções contidas no Wiki específicas para o seu.<br />
O primeiro flash, de transição do firmware do fabricante para o DD-WRT costuma ser o mais &#8220;chato&#8221;. Uma vez que você tiver qualquer versão do DD-WRT instalada, a atualização para outra versão ou pacote ou mesmo para outro firmware (como o OpenWRT) será bem mais simples, podendo ser realizada pela interface Web do roteador.</p>
<p><a href="http://wl520gu.googlepages.com/">Neste link</a> seguem as instruções que segui para a atualização do meu roteador, o Asus WL520-GU.</p>
<p><strong>3) Resultados</strong></p>
<p>Após a atualização, a mudança que se nota é como da água para o vinho. As funcionalidades extras valem pelo esforço da atualização (que nem é tanta coisa assim). Fica a dica e o relato de que vale (muito) a pena mudar o firmware de seu roteador para linux <img src='http://chita.com.br/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://chita.com.br/blog/index.php/2009/04/transformando-seu-roteador-wireless-barato-em-um-super-network-appliance-com-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
