Mostrando postagens com marcador Redes e Segurança. Mostrar todas as postagens
Mostrando postagens com marcador Redes e Segurança. Mostrar todas as postagens

17 de outubro de 2008

Configuração de um Roteador no Oi Velox


A empresa onde eu trabalho resolveu trocar o provedor de acesso à Internet, da Way Internet (via cabo), para a Oi Velox (ADSL, via linha telefônica). Até aí tudo bem: maior velocidade e menor preço (o plano vincula as contas de telefone fixo, celular e Internet, barateando o custo total). As dores de cabeça começaram quando o primeiro técnico apareceu lá para instalar o MODEM.

De cara ele já avisou que o MODEM não poderia ser ligado num ramal comum. Deveríamos puxar uma extensão da linha telefônica antes do PABX para a ligação do MODEM.

Por que não avisaram antes? É um procedimento simples: se o cliente for uma empresa, pergunte se há um PABX e explique sobre a necessidade deste serviço! Iria poupar a vinda de um técnico para que ele fizesse nada...


Tudo bem... O técnico deixou o filtro de linha, que deveria ser ligado entre a linha telefônica e o MODEM e foi embora. Não havia dado meia hora que ele saiu e me ligaram da Oi, para confirmar a versão dele (aparentemente ele entrou em contato com a central).

Será que eles não confiam nos seus funcionários?! Como mandam uma pessoa que nem mesmo eles confiam para a casa de alguém, para fazer uma instalação?


Eu confirmei tudo e deixei claro que entraríamos em contato assim que o serviço preliminar fosse concluído. No outro dia tornaram a ligar da Oi, perguntando se estava tudo pronto para a instalação. A empresa que presta serviço de manutenção em telefonia ainda não havia enviado um técnico, portanto mais uma vez eu tive que explicar que assim que o serviço fosse concluído, eu pediria para a secretária entrar em contato.

No mesmo dia, mais tarde, o técnico em telefonia apareceu e eu acompanhei o serviço. Achei bem simples a resolução do problema, pois bastou ligar a ponta do cabo que leva para o local onde o MODEM ficaria instalado, no mesmo terminal que distribui a linha telefônica (não sei os termos técnicos dessa área).

Feito isso, pedi para que entrassem em contato com a Oi e agendassem a visita do técnico durante o meu expediente, mas acho que eles gostaram bastante da minha voz lá na central, pois pediram para falar comigo e eu mesmo tive que agendar. Para piorar, o técnico que vira da primeira vez, me ligou querendo agendar. Levei um tempo tentando explicá-lo que eu já havia agendado a instalação...

Um dia antes do dia marcado para a instalação, a Oi entrou em contato dizendo que a instalação seria feita naquele dia.

Por que agendaram então?! Tudo bem que eu estava no meu horário de trabalho, mas eu poderia estar resolvendo um problema ou ter uma reunião naquele dia... Não gostei!


No meio da tarde apareceram dois técnicos da Oi. Eu os levei ao local onde o MODEM ficaria e comecei a lhes explicar sobre o compartilhamento da Internet na empresa, usando um roteador. Mal eu havia dito a palavra roteador e um deles já foi me cortando e dizendo que eles não trabalhavam com isso. A função deles era apenas deixar 1 (UM, ONE, UNO, I) computador com acesso à Internet. Nada mais.

Brother, como eles podem enviar dois caras que não fazem o serviço de um?! Como podem manter empregadas pessoas com tanta má vontade? Eles nem quiseram me ouvir direito e se me cortaram, é porque outras pessoas já haviam lhes pedido algo semelhante. Será que a Oi não podia treinar seus funcionários para este tipo de configuração que está se tornando comum?!


Engoli a minha raiva, abri um sorriso e disse que tudo bem. Assim, um dos técnicos retirou o plug de rede da minha estação de trabalho, ligou o MODEM e pôs-se a configurá-lo. Felizmente (para ele) o meu computador lá, roda Windows, então ele não teve muito trabalho. Fez os procedimentos que deve ter decorado e conseguiu fazer a net funfar. Assim que ele viu a cara do Oráculo no monitor, tratou logo de juntar todos os seus pertences, preencher a ordem de serviço, pedir para eu assinar e os dois se foram (sim, só um dos técnicos trabalhou – o outro ficou olhando e quase não abriu a boca).

Como ainda não havia uma maneira de colocar o MODEM da Velox dentro do Rack de rede, resolvi deixar a configuração para o outro dia, para que o responsável pelo setor de manutenção de equipamentos eletrônicos e eu, pudéssemos ajeitar a instalação deixada pelos técnicos da Oi. Isso não foi muito difícil, pois bastou puxar uma extensão do ponto do telefone (onde estava a linha para o Velox) para dentro do Rack, passando pelas calhas de acomodação dos cabos de rede. Fácil. A figura a seguir mostra como ficou o diagrama da rede.
Figura 1. Diagrama da rede criada.

Com a instalação física terminada, havia chegado a hora de configurar o roteador para o Velox. Qual é a grande "jogada" aqui? Velox é uma rede ADSL que exige autenticação para conexão. Quando você configura o serviço em um único computador, uma prática que já vi bastante, é deixar o Dial-Up (discador) do Windows configurado com o nome de usuário e a senha já digitados, assim quando o usuário abre o navegador pela primeira vez, após iniciar o sistema, uma janela de autenticação aparece, bastando que ele clique no botão Conectar, para iniciar a navegação.

Pelo diagrama apresentado na figura 1, fica claro que nenhum computador (que está dentro da nuvem Rede Interna) vai ter contato direto com o MODEM. Assim, caberá ao roteador fazer essa autenticação: muito mais fácil para o usuário! A questão é: como configurar o roteador para se autenticar no MODEM. E a resposta é: depende do firmware do roteador, que varia de fabricante para fabricante. Entretanto, os passos de configuração normalmente são parecidos. A seguir eu apresentarei a configuração para o modelo WRT54G da Linksys.

Nota: Estou levando em consideração os valores padrões do roteador. Alguns desses valores podem e devem ser alterados, como a senha para acesso ao mesmo.
1. Acesse a configuração do roteador. Para isso, estando em um computador da Rede Interna, abra um navegador e digite o endereço: http://192.168.1.1

2. Será aberta uma janela de autenticação. Deixe o nome de usuário em branco e digite admin como senha. Dê OK para prosseguir.

Figura 2. Tela de logon do roteador.

3. Altere o sistema de conexão para PPPoE. Aparecerão dois campos para preenchimento logo abaixo do recém usado. Um deles serve para entrar com o nome de usuário e o outro, com a senha de acesso ao Velox.

4. Por padrão, o nome de usuário segue a seguinte fórmula: XXYYYYYYYY@PROVEDOR, onde XXYYYYYYYY é o número do telefone. PROVEDOR é o provedor de acesso do usuário. No meu caso foi telemar.com.br, mas já vi oi.com.br. A senha segue o modelo XXYYYYYYYY, cujo padrão é o mesmo do descrito anteriormente. De qualquer forma, estes dados podem ser obtidos com a central de atendimento da Oi, ou pelo menos deveriam (como eu já sabia dessa autenticação, pedi estes dados ao técnico que instalou).

Figura 3. Configuração do tipo de conexão e autenticação.

5. Role a tela até o fim e clique no botão de salvar. Aguarde alguns instantes e clique no botão Continue.

Figura 4. Gravação das configurações feitas.

Concluídos estes passos, a Internet já deve estar acessível a partir de qualquer computador da rede interna. Um detalhe que acabou me enrolando foi que as máquinas Windows simplesmente não conseguiam conectar. À princípio eu achei que pudesse ser alguma configuração a mais no roteador ou no MODEM, mas não encontrei nada. Então eu acabei descobrindo, por teste, que cada cliente Windows deveria ser reiniciado para que a navegação fosse possível (mais um motivo para eu não gostar do Windows).

Para evitar a reinicialização, poder-se-ia reiniciar o serviço de rede do Windows, mas não sei se isso é possível. Até tentei um $ ipconfig /renew, mas nada. Só reinicializando mesmo.


Moral da história: se houvesse mais preocupação com a satisfação do cliente e com a qualidade do atendimento, a Oi poderia investir em profissionais mais capacitados e melhor treinados para resolver os problemas dos clientes. O próprio técnico responsável pela instalação poderia resolver o problema do PABX e, pelo menos, indicar a solução para configuração do roteador. Além disso, eu tenho minhas dúvidas se ele me passaria o nome de usuário e a senha de acesso se eu não tivesse pedido. Ainda acho incrível o descaso das prestadoras deste tipo de serviço para com seus clientes. Não é à toa que são campeãs de reclamações.

Ah! Não poderia finalizar, sem criticar o Windows! Ter que reiniciar o sistema por conta de uma troca de configuração no roteador? Poxa, Bill...

12 de setembro de 2008

A História do aMule


O compartilhamento de arquivos via Internet é uma realidade atualmente e a cada dia são criados novos protocolos e softwares capazes de fazer esta tarefa de forma mais fácil e eficiente para o usuário. Por causa disso, hoje em dia é fácil para qualquer usuário de sistemas computacionais compartilhar e receber arquivos compartilhados por outros usuários. Do ponto de vista do usuário, todo este processo consiste em apenas instalar um software que permitirá o compartilhamento, realizar uma pesquisa no próprio software por um arquivo que ele tenha o desejo de obter, selecionar um arquivo dentre os encontrados e iniciar a transferência ou simplesmente colocar um arquivo no diretório específico do software para compartilhamento.

Métodos para compartilhamento e transferência de arquivos existem há muito tempo, principalmente a partir de links em páginas da Web para transferência via HTTP ou FTP, por exemplo. Contudo, este método torna mais difícil a localização de arquivos, já que o usuário terá de fazer uma pesquisa na Web, que pode ser complicada mesmo que ele use o Oráculo. Além de ser difícil para compartilhar um arquivo, pois o usuário terá de abrir uma conta em algum servidor, fazer o upload do arquivo e criar um link para que outros usuários possam encontrar o referido arquivo.

Por causa disso surgiu o tipo de rede que deve ser responsável pelos piores pesadelos dos chefões das indústrias de música e de cinema (incluindo seriados): as redes Peer to Peer (Ponto a Ponto). Com essas redes o usuário não fica amarrado a um único servidor (ou a um pequeno conjunto deles), pois cada computador participante da rede funciona como cliente e servidor. Assim é comum que para um determinado arquivo hajam 300 fontes de download disponíveis, o que diminui muito a possibilidade de um arquivo estar indisponível em determinado tempo. Para acessar essas redes foram criados softwares específicos, responsáveis por fazer toda a gerência de downloads (aquilo que se copia da rede) e uploads (aquilo que a rede copia do computador).

Uma das famílias de softwares P2P (Peer to Peerto em inglês tem a pronúncia semalhante à do 2: two) é a dos *Mule, que tiveram origem com o consagrado eMule. A seguir há uma breve descrição dos principais membros desta família e sua evolução até o aMule, um dos melhores softwares do tipo para Linux.

eMule
Era uma vez um software chamado eDonkey2000 (ed2k). Este software foi criado por Jed McCaleb e teve sua primeira versão lançada em 6 de setembro de 2000 com licença de código fechado. Este software trouxe muitas inovações em comparação com seus antecessores do gênero, como a possibilidade dos servidores principais formarem uma rede de pesquisa e o uso de hashes [1] no resultado da busca [2].

Insatisfeito com o eDonkey2000, Hendrik Breitkreuz (também conhecido como Merkur) começou o projeto eMule em 13 de maio de 2002, o qual teve sua primeira versão publicada no SourceForge [3] em 6 de julho do mesmo ano, sob a licença GPL (software livre). Em 4 de agosto de 2002 a primeira versão binária do eMule foi lançada e este era o início de um dos softwares mais populares da atualidade. Até mesmo no nome o eMule é relacionado com o eDonkey2000. O e do início tem o mesmo significado, sendo algo como electronic (assim como e-Mail), já o Mule significa mula em português e a idéia foi de manter o nome de um animal (Donkey significa jumento – daí a mula, mulher do jumento? rs).

O eMule trouxe muitos conceitos novos e melhorias no sistema de compartilhamento de arquivos via rede P2P. Uma característica notável deste software é a capacidade de trabalhar com a rede ed2k do eDonkey2000 e com a rede sem servidores Kad (considerada por muitos como a evolução das redes ed2k e o futuro das redes P2P). No eMule ainda estão presentes os sistemas de ID (alto e baixo) e de créditos, que ditam a prioridade que os usuários terão nas filas de downloads (como várias pessoas podem desejar baixar um arquivo de uma determinada pessoa e esta pode configurar quantas pessoas podem fazer upload ao mesmo tempo dos seus arquivos compartilhados, são criadas filas de espera com prioridades) [5].

O sistema de IDs está intimamente ligado à conexão do usuário (firewall e NAT) e o sistema de créditos associa-se à quantidade de dados baixados (download) e subidos (upload). Basicamente, quanto mais upload um usuário fizer, mais créditos ele terá, obtendo mais prioridade nas filas que enfrentar. Isto resume bem o intuito das redes P2P: não basta simplesmente obter o compartilhamento dos outros. É preciso compartilhar também. Isso garante que sempre haverão arquivos a serem compartilhados.

Dadas as suas grandes vantagens e inovações, o eMule adquiriu uma grande base de usuários, a qual se tornou outra grande vantagem para si próprio. Pode-se entender o eMule como uma evolução da espécie (mula é melhor que jumento – evolução natural? na dúvida, fique com a mula) e isto, associado com o crescente número de usuários de banda larga com intenções de compartilhar arquivos, garante o sucesso do software.

Recentemente o eDonkey2000 foi descontinuado devido a problemas com tribunais estadunidenses sobre infrigimento de leis de copyright (pirataria). Em 12 de setembro de 2006 foi colocado no site oficial do programa um comunicado sobre pirataria, onde o endereço IP do computador do visitante é exibido junto de uma frase dando conta de que o mesmo não está anônimo na Internet e de que pirataria é crime [2].

O sucesso do eMule foi tão grande, que assim como é comum no "universo" do software livre, foram criados vários forks dele (bifurcações – softwares que se baseiam no código de um anterior, mas que tomam rumos diferentes). Normalmente um fork é feito por causa da discordância de parte da comunidade desenvolvedora do software base (digamos assim) do rumo que o projeto está tomando, então eles criam um projeto paralelo com base no original (que se torna seu competidor ou complemento). Outros são criados apenas para dar vida a um projeto similar mas com base em outro sistema operacional ou linguagem de programação. A maioria dos forks do eMule são conhecidos como *Mule (já que eles mantém a palavra Mule, alterando somente a letra inicial).

Figura 01. Tela de listagem dos servidores ed2k do eMule.

lMule
O eMule mostrou-se um excelente software, mas tinha o problema de ser acessível somente via Windows. Com o crescimento da base de usuários do Linux, houve uma demanda crescente por um software semelhante para este sistema operacional. Dessa forma, em janeiro de 2003, Timo Kujala portou sozinho o código de eMule para o Linux, criando o Linux Mule ou simplesmente lMule [6].

Em pouco tempo o time de desenvolvimento cresceu bastante, mas devido a diferença de idéias dos desenvolvedores e pelo roubo do site do projeto por um contribuinte do mesmo, em junho do mesmo ano foi criado um fork do lMule chamado xMule (próxima seção). Depois destes eventos, Kujala e os outros desenvolvedores que não entraram no time do xMule, abandonaram o projeto e como é comum no "mundo" do software livre, muitos desses desenvolvedores entraram em um novo projeto: aMule (última seção) [6]. Esta é a história da mula mais velha do Linux. Uma curiosidade é que nos seus "últimos dias de vida", o projeto lMule estava para mudar de nome (xMule), mas terminou antes que pudesse ser amplamente conhecido assim, ficando este nome para o seu primeiro fork. Por isso é comum encontrar algumas citações sobre o lMule referindo-se a ele como xMule.

xMule
O X11 Mule ou xMule, assim como apresentado, foi um dos forks do lMule. Contudo, em vez de se basear somente no Linux, o xMule pretendia cobrir todos os sistemas Unix-like (e.g., Linux, BSD, HURD, Solaris), mais precisamente todos os sistemas operacionais que usavam o gerenciador de janelas X11 [7].

Nos últimos anos o xMule tem sofrido com publicidade negativa, devido ao fato de que comentários anônimos em sites de revisão de software têm dado conta de que o desenvolvimento deste software estaria parado. Além disso, as relações entre o desenvolvedores do xMule e do aMule não são das melhores. No site do aMule, sugundo [7], ainda consta a seguinte citação sobre as relações com o xMule:
"As relações entre os dois projetos estão, infelizmente, num estado bastante triste."

aMule
O outro fork do lMule é o aMule. Inicialmente, aMule era a sigla para another Mule (uma outra mula), mas o projeto mudou o nome para All-platform Mule (Mula para todas as plataformas), sendo que este último nome exemplifica bem o propósito do projeto em ser um software portável entre diversas plataformas, através do uso da biblioteca wxWidgets [8].

O aMule compartilha código com o projeto eMule, além de possuir um link no site oficial da mula-mãe (eMule), o que mostra a importância do projeto. Um detalhe interessante deste software é que o mesmo pode ser compilado como um conjunto de módulos, o que significa que o núcleo fica separado da interface, ajudando projetos que tenham a pretensão de criar interfaces alternativas para o mesmo. Existem três possíveis interfaces para o aMule: aMuleCMD (cliente em modo texto), aMuleGUI (cliente em modo gráfico, ainda com algumas funcionalidades faltando) e aMuleWEB (interface Web provida por um dos times de desenvolvimento do aMule) [8].

O aMule costuma ser a principal escolha de um software *Mule para o Linux. Ainda apresenta alguns bugs e faltam algumas opções presentes no eMule, mas apesar disso é um software poderoso o bastante para justificar a sua posição.

Figura 02. Tela de listagem dos servidores ed2k no aMule.

Esta é a história básica sobre a evolução dos softwares *Mule no Linux.

Para quem se interessar, em [10] segue o link da página da Wikipedia (em inglês) que possui uma tabela comparativa entre os vários softwares que usam a rede ed2k.



[1] http://en.wikipedia.org/wiki/Hash_function : hash, em computação, é o processo de transformar um tipo de dado – um texto, por exemplo – em um número relativamente pequeno, que serve como uma "impressão digital" deste tipo de dado.
[2] http://en.wikipedia.org/wiki/EDonkey2000
[3] http://en.wikipedia.org/wiki/SourceForge : um sistema de gerenciamento colaborativo de controle de revisão e desenvolvimento de software.
[4] http://en.wikipedia.org/wiki/Peer-to-peer
[5] http://en.wikipedia.org/wiki/EMule
[6] http://en.wikipedia.org/wiki/LMule
[7] http://en.wikipedia.org/wiki/XMule
[8] http://en.wikipedia.org/wiki/WxWidgets : um kit de ferramentas que tenciona criar interfaces gráficas para o usuário (GUIs) para aplicações de plataformas cruzadas (várias plataformas).
[9] http://en.wikipedia.org/wiki/AMule
[10] http://en.wikipedia.org/wiki/Comparison_of_eDonkey_software

6 de setembro de 2008

Destrinchador de IPs em Java


Há cerca de 3 anos, em 2005, eu estava estudando a disciplina de redes, tanto no curso técnico, quanto no superior e me deparei com aquelas contas que fazemos com os endereços IPv4 e suas máscaras, para obtermos informações sobre os mesmos. Confesso que na época eu não era muito bom com isso e sempre me enrolava no meio dos cálculos. Isso me incentivou a criar um programa que gerasse os resultados para mim, fazendo os cálculos automaticamente.

À princípio eu usei a linguagem C para criar este programa, mas, como estava tentando me aprimorar em Java, resolvi portá-lo para esta linguagem, criando um applet que fosse acessível via Internet. Assim eu o fiz, mas apesar de funcional, hoje sei que o código poderia ter sido mais bem trabalhado. Como assim?

Um exemplo: para eu verificar qual o endereço de rede de um dado endereço IP, eu transformo o próprio endereço IP e sua máscara numa sequência de vários 0s e 1s (notação binária) e comparo os dois resultados. Onde for 1 nos dois, vira 1 no endereço de rede. Qualquer outra combinação vira zero. Ora, é fácil perceber que este é um E lógico... Hoje eu sei que bastaria comparar cada octeto dos endereços com um operador bit a bit (&). Seria mais fácil e rápido. Contudo, ninguém nasce sabendo (felizmente, senão não teria graça em aprender) e isto serviu para que, pelo menos, eu aprendesse um pouco mais sobre a linguagem Java e orientação a objetos – sem contar que nunca mais fiz os malditos cálculos que sempre me assolavam :D.

Uma coisa que acho legal neste tipo de desenvolvimento é que você acaba unindo vários conhecimentos que adquiriu, para resolver o seu problema. No caso, além de usar uma linguagem de programação orientada a objetos (Java), eu acabei desenvolvendo um autômato reconhecedor de entradas válidas para o programa. Consegui fazer um que aceita apenas um endereço IPv4 (N.N.N.N – onde 0 <= N <= 255); um endereço IPv4 seguido do número de bits 1 que compõem a sua máscara (N.N.N.N/NO – onde 8 <= NO <= 32); e um endereço IPv4 seguido do endereço integral da sua máscara (N.N.N.N/NUM.N.N.N – onde NUM = 255). Qualquer outra entrada é tratada como inválida e os valores padrões (127.0.0.1/8 – endereço de loopback) são usados.

Sem mais blá-blá-blá, segue o programa e o código fonte de cada arquivo utilizado na confecção do mesmo. Detalhe: é necessário ter a máquina virtual Java (Java Virtual Machine JVM) para conseguir visualizar o programa.

Destrinchador de IPs

alt="O seu navegador entende a tag <APPLET> mas não está executando o applet." Por alguma razão seu navegador está ignorando completamente a tag <APPLET> !
Os códigos fontes
Applet
Classe EnderecoIP
Classe ConvIP
Classe LibVerIP

Licenciado sob GPL