Inclua o Poder do Linux aos Roteadores Wireless com Dicas e Truques Avançados para DD-WRT

Instale, proteja e torne infalíveis seus roteadores wireless com tecnologia DD-WRT

O DD-WRT traz todo o poder da pilha de rede do Linux® para roteadores wireless de baixo custo, transformando o roteador de um consumidor em uma eficiente potência de rede. Aprenda a instalar e proteger o DD-WRT, e conheça a linha de comando eficiente e flexível por trás da GUI.

Carla Schroder, Author, system and network administrator, Tux Computing

Photo of Carla J. SchroderHá 17 anos no comando de redes e servidores mistos de computadores, Carla Schroder é autora de três livros: Linux Cookbook, Linux Networking Cookbook e Book of Audacity. Ela escreveu centenas de instruções do Linux para várias publicações. Também é fotógrafa, musicista e produtora, tudo usando o Linux e software livre/de código aberto.



25/Mai/2012

Introdução

O DD-WRT é um firmware baseado em Linux que intensifica os roteadores wireless de banda larga de trabalho inferior do consumidor, transformando um brinquedo de US$ 70 em uma potência de rede eficiente. O DD-WRT traz todo o poder da pilha de rede do Linux para esses pequenos dispositivos: roteamento com fio e wireless, firewalls, QoS, servidor DHCP e expedidor, servidor RADIUS, OpenVPN, VLAN, Wake on LAN, modo repetidor do Wireless Distribution System, mecanismo de jogo Kai, criptografia e autenticação WPA2, entre outros (consulte Recursos)). O DD-WRT fornece uma boa interface de administração GUI da web e ferramentas programáveis de linha de comando eficientes.

Você aprenderá como obter o DD-WRT, configurar a GUI segura e a administração de linha de comando, analisar e configurar o hardware.

Sebastian Gottschall, também conhecido como BrainSlayer, é o principal autor e mantenedor do DD-WRT. A equipe DD-WRT inclui um time principal de desenvolvedores e também de colaboradores da comunidade (consulte Recursos)). O DD-WRT é gratuito para uso não comercial. Usuários comerciais devem pagar por uma licença. Há opções de serviços profissionais e é possível comprar bons componentes de hardware, como Ubiquiti e Senao, na loja do DD-WRT. As doações de hardware, dinheiro e ajudas de outros usuários nos fóruns são sempre bem-vindas.


Dispositivos suportados e OEM

O DD-WRT foi desenvolvido para roteadores Broadcom IEEE802.11a/b/g/h/n wireless baseados no Atheros e no Broadcom, como o Linksys WRT54GL que realmente anuncia seu suporte ao DD-WRT. Um recurso de valor do projeto DD-WRT é o seu banco de dados de dispositivo suportado e a lista de dispositivos incompatíveis. Consulte os primeiros. Não desperdice seu tempo com um roteador sem suporte, a menos que queira testá-lo e contribuir com suas descobertas para a comunidade.

A versão mínima para roteadores Broadcom, com apenas 2 MB de memória flash, ainda fornece mais funcionalidade que o firmware original do fornecedor. Os roteadores baseados no Atheros precisam de, no mínimo, 4 MB. O banco de dados de dispositivo suportado lista de modo bastante útil as especificações do dispositivo.

Pode não ser necessário instalar o próprio DD-WRT, já que um número cada vez maior de fornecedores faz agora a pré-carga com o DD-WRT. Buffalo, Netgear, ASUS, Linksys e Toplink, todos anunciam roteadores "Pré-carregados com firmware DD-WRT".


Installation

A instalação varia dependendo de qual roteador você possui. Eu uso um roteador de banda larga Cisco/Linksys WRT160NL. Esse é um gadget bem interessante: quatro portas LAN Ethernet, uma porta WAN, memória flash de 8 MB e 32 MB de RAM, MIMO e uma porta USB para se conectar a um dispositivo de armazenamento externo, para que ele possa atuar como um arquivo ou servidor de mídia.

Todos os roteadores na lista suportada detalharam as instruções de instalação—siga-as ao pé da letra. Não improvise e tudo ficará bem. Serão exibidos muitos avisos de que qualquer interrupção no processo de instalação "brickará" seu roteador. Brickar significa que ele não será inicializado, portanto, ele poderá se tornar inútil. Caso bricke seu roteador, consulte "Recuperar a partir de uma atualização ruim" na wiki do DD-WRT (consulte Recursos). É possível corromper o software de tal maneira que ele não poderá ser atualizado novamente, e, então, estará realmente inutilizado, mas, na vida real, isso é raro de acontecer.

Os navegadores da web nem sempre funcionam bem e isso pode causar alguns aborrecimentos ao usar a GUI da web. Ao fazer uma mudança bem-sucedida na configuração, a página deverá ser atualizada automaticamente. Se ela ficar em branco, isso significa que as mudanças não foram salvas, portanto, será preciso limpar o cache do navegador, reiniciá-lo e tentar novamente.


Ativar Espera de Inicialização: Brick seguro

O login padrão é root e a senha padrão é admin; o endereço IP padrão do seu roteador é 192.168.1.1. Para abrir a GUI da web do DD-WRT, aponte um navegador da web em um PC vizinho para http://192.168.1.1.

Antes de fazer qualquer outra coisa, acesse a página Administração > Gerenciamento e verifique se a Espera de Inicialização está ativada, como na Figura 1:

Figura 1. Sempre ative a Espera de Inicialização
Sempre ative a Espera de Inicialização

Isso deve estar ativado por padrão. Ele cria um atraso de cinco segundos na inicialização, por isso, se o seu roteador se tornar não inicializável, ainda existe essa pequena oportunidade para atualizar o firmware novamente. Considere isso como um seguro antibrick.


Salvar versus Aplicar as Configurações versus Reinicializar o Roteador

Cada página de configuração na GUI da web possui os botões Salvar e Aplicar as Configurações na parte inferior e, às vezes, um botão Reiniciar o Roteador. O botão Salvar salva suas mudanças sem aplicá-las, portanto, elas não serão ativadas até a reinicialização do roteador ou até que o botão Aplicar as Configurações seja clicado. O botão Aplicar as Configurações salva, aplica as mudanças imediatamente e reinicia os serviços, se necessário. O botão Reinicializar o Roteador é para ser usado com mudanças que requerem uma reinicialização—certifique-se de salvá-las primeiro.


Lidando com o seu roteador com segurança

É possível lidar com a maioria de suas tarefas de organização de processos de administração por meio da GUI da web do DD-WRT, que é abrangente e bem organizada. A Figura 2 mostra o que aparece em meu roteador. (Veja uma versão maior da imagem na Figura 2.)

Figura 2. A GUI da web do DD-WRT incorpora uma grande variedade de configurações e informações de status
A GUI da web do DD-WRT incorpora uma grande variedade de configurações e informações de status

Por padrão, ela permite HTTP, que é um texto não criptografado e não protegido, portanto, altere para apenas HTTPS para criptografar sua administração da web do DD-WRT em Administração > Gerenciamento> Acesso à Web. Clique no botão Aplicar as Configurações para salvar imediatamente e ativar sua mudança, e você será removido da sessão existente. Limpe o cache do seu navegador, reinicie-o e depois o aponte para https://192.168.1.1. (Ou qualquer que seja o endereço IP do seu roteador, caso ele tenha sido alterado.) A primeira vez que isso for feito, você receberá um aviso assustador sobre o certificado do site, que é verificado por NewMedia-NET GmbH. Siga em frente e aceite-o permanentemente. É possível gerar seu próprio certificado e usar sua própria autoridade de certificação, que é um tópico divertido para outro dia.

Também é possível administrar o DD-WRT a partir da linha de comando, oferecendo acesso a opções de configuração não suportadas pela GUI da web. É uma porta extra para o seu roteador, caso sua GUI da web falhe. O Telnet é ativado por padrão, embora o SSH não seja. É possível ativar o Telnet em seu roteador da maneira abaixo, usando o endereço IP do seu próprio roteador:

$ telnet 192.168.1.1
Login DD-WRT: root
Senha:

O login é sempre root, independentemente de qual nome de usuário tenha sido configurado, já a senha é a senha real criada. Digite exit para encerrar a sessão Telnet. O Telnet está bem enquanto você se familiariza com o DD-WRT, mas, devido ao fato de o Telnet ser completamente desprotegido, é preciso desativá-lo em um roteador de produção e usar o SSH em seu lugar. Acesse Serviços > Serviços para fazer isso, como na Figura 3:

Figura 3. Ativar o SSH, desativar o Telnet
Ativar o SSH, desativar o Telnet

Em seguida, clique em Aplicar as Configurações e é preciso autenticar por meio do SSH. Novamente, o nome de usuário é sempre root e a senha é a sua senha real:

$ ssh root@192.168.1.1
DD-WRT v24-sp2 std (c) 2010 NewMedia-NET GmbH
Release: 07/08/10 (revisão SVN: 14896)
Senha do root@192.168.1.1:
==========================================================

 ____  ___    __        ______ _____         ____  _  _
 | _ \| _ \   \ \      / /  _ \_   _| __   _|___ \| || |
 || | || ||____\ \ /\ / /| |_) || |   \ \ / / __) | || |_
 ||_| ||_||_____\ V  V / |  _ < | |    \ V / / __/|__   _|
 |___/|___/      \_/\_/  |_| \_\|_|     \_/ |_____|  |_|

                       DD-WRT v24-sp2
                   http://www.dd-wrt.com

==========================================================


BusyBox v1.13.4 (2010-08-07 05:06:30 CEST) shell integrado (ash)
Insira 'ajuda' para obter uma lista de comandos integrados.

Quer ajustar ainda mais? Então, configure um login sem senha de chave pública. Isso é à prova de ataques a senhas e ninguém pode efetuar login sem uma cópia da chave privada. O primeiro passo é criar um par de chaves de criptografia no PC Linux a partir do qual o login será efetuado com ssh-keygen :

$ ssh-keygen -t rsa -C router1 -f ~/.ssh/linksys

Este exemplo cria um par de chaves RSA que chamado de linksys. A chave pública é linksys.pub, a chave privada é linksys e ambas são armazenadas no diretório ~/.ssh. Esse é o local padrão para armazenar as chaves SSH, mas é possível colocá-las onde quiser. Em seguida, inclua uma linha ao /etc/ssh/ssh_config para identificar a chave:

IdentityFile ~/.ssh/linksys

A opção -C cria um comentário dentro do arquivo de chave pública, que é um arquivo de texto simples, usado para identificá-lo caso eu perca o controle. Agora, copie sua nova chave pública para o DD-WRT no campo fornecido na seção Serviços > Serviços do SSH e desative logins de senhas, como na Figura 4:

Figura 4. Copiando uma chave pública do SSH para o DD-WRT para autenticação de chave pública
Copiando uma chave pública do SSH para o DD-WRT para autenticação de chave pública

Clique em Savee, a seguir, Reinicializar o Roteador, e isso é tudo que deve ser feito. Se você tiver uma sessão SSH aberta, ela será encerrada e, quando voltar a efetuar login, ela não pedirá uma senha novamente. Para colar em diversas chaves, insira uma quebra de linha entre cada uma.

Isso pode ser feito a partir da linha de comando, usando nvram . Certifique-se de que sua chave pública seja uma linha única ininterrupta entre aspas simples. É possível ter espaços, mas sem quebras de linha:

root@linksys:~# nvram set sshd_authorized_keys='ssh-rsa AAAAB3NzaC...89Suj router1' 
root@linksys:~# nvram commit 
root@linksys:~# reboot

Também é possível configurar diversas chaves com nvram em uma lista com espaço delimitado, sendo cada uma entre aspas simples:

root@linksys:~# nvram set sshd_authorized_keys='key1' 'key2' 'key3'
root@linksys:~# nvram commit

Digite isso primeiro em um editor de texto para que seja possível ver o que está sendo feito e, em seguida, copie e cole tudo em sua linha de comando.


O comando nvram

nvram possui diversos significados. É uma abreviação para RAM não volátil, um tipo especial de memória persistente que retém os dados quando a energia é desligada. A memória flash de seu roteador é um tipo de nvram. O comando nvram é usado para o gerenciamento de configurações de hardware, que são armazenados no último bloco da memória flash. Esse segmento de memória é geralmente chamado de "o nvram". Versões diferentes do comando nvram incluem variações da IBM, Cisco, Oracle e Apple. O comando nvram no DD-WRT é bastante simples, já que só exibe e altera os valores designados às variáveis e exclui as variáveis. Execute-o sem opções para visualizar as opções e a sintaxe:

root@linksys:~# nvram 
usage: nvram [get name] [set name=value] [unset name] [show]

nvram show exibe todas as configurações do seu roteador e há muitas delas. Você pode usar less para decompô-lo em uma página de cada vez:

root@linksys:~# nvram show | less

Ou procure uma variável específica com grep, como esta:

root@linksys:~# nvram show | grep ssh

Dica rápida gratuita: Se você desativar acidentalmente a interface da web, mas ainda tiver o Telnet ou SSH, reative-a desta forma:

root@linksys:~# nvram set http_enable=1 
root@linksys:~# nvram commit 
root@linksys:~# reboot

A mudança será aplicada após a reinicialização. Você se lembra da configuração boot_wait? A GUI não permitirá a mudança de seu comprimento, mas o nvram , sim. Em primeiro lugar, descubra seu comprimento:

root@linksys:/etc# nvram show |grep wait 
boot_wait=on 
wait_time=5

Sou nervoso, por isso, quero que ele seja dez segundos:

root@linksys:/etc# nvram set wait_time=10 
root@linksys:~# nvram commit

Isso é como uma variável é limpa de qualquer valor:

root@linksys:~# nvram set http_enable="" 
root@linksys:~# nvram commit

Se você não quiser que uma determinada mudança sobreviva a uma reinicialização, omita o nvram commit, que é uma tática boa quando se está experimentando, porque é possível simplesmente reiniciar para descartar as mudanças.

nvram unset [variável] exclui a variável totalmente. O OpenWrt Wiki possui uma boa referência do comando nvram , o uso do NVRAM no OpenWrt 'WhiteRussian' (consulte Recursos).

Seu último recurso para limpar uma configuração bollixed é redefinir todas as configurações para os padrões de firmware pressionando e segurando o botão de reconfiguração do seu roteador por 30 segundos e, em seguida, reiniciá-lo. Isso restaura os padrões do DD-WRT e não o firmware original, como algumas pessoas acreditam erroneamente.


Criando uma segunda partição

A imagem normal do DD-WRT ocupa uma partição de 4 MB mesmo se sua memória flash for de 8 MB ou mais. É possível criar uma partição naquele espaço não utilizado e usá-la para armazenar arquivos. Ela deve ser principalmente para armazenamento de leitura, por exemplo, páginas de início de ponto de acesso wireless e de configuração, páginas da web, arquivos de configuração extra e de armazenamento para ipkg, o Itsy Package Management System para dispositivos integrados. Não a utilize para arquivos que geram uma grande quantidade de gravações, como arquivos de log, porque a memória flash suporta um número limitado de gravações e, eventualmente, falha. A memória flash moderna é bastante durável, mas ainda tem um tempo de vida de gravação limitado. É possível visualizar seu sistema de arquivos existente com o bom e velho df :

root@linksys:/# df -h 
Filesystem                Size      Used Available Use% Mounted on 
/dev/root                 4.0M      4.0M         0 100% /

Meu roteador tem flash de 8 MB, mas onde está o resto? Está quietinho, esperando para ser usado. Acesse os Administração > Gerenciamento e marque JFFS2 > Ativar quanto a Limpar JFFS2 > Ativar. Clique em Aplicar as Configurações e, em seguida, em Reinicializar o Roteador. Quando voltar, será possível visualizar algo como isto:

root@linksys:~# df -h 
Filesystem                Size      Used Available Use% Mounted on 
/dev/root                 4.0M      4.0M         0 100% / 
/dev/mtdblock/3           2.3M    196.0K      2.1M   9% /jffs

JFFS2 é o Journalling Flash File System versão 2, desenvolvido para mídia armazenamento de flash. Vamos falar um pouco sobre que tipo de mídia é essa memória flash. É um dispositivo especial chamado de Memory Technology Device ou MTD. Não é um dispositivo de bloco, como um disco rígido e dispositivos USB; e não é um dispositivo de caractere, como um teclado ou mouse. Os dispositivos de bloco são organizados em setores de tamanho fixo, como 512 e 1.024 bytes. Os MTDs possuem blocos de limpeza de 128 KB e superiores. Os dispositivos de bloco fazem duas coisas: ler e gravar o setor. Os MTDs fazem três coisas: ler a partir do bloco de limpeza, gravar para ele e excluí-lo.

Flash compacto, cartões SD e dispositivos USB, no fundo, são todos MTDs. Porém, eles se parecem com dispositivos de bloco para o seu sistema operacional, porque têm Flash Translation Layers (FTL), que emulam os dispositivos de bloco sobre o hardware de atualização. Esse FTL pode estar no computador host ou no firmware, em um controlador de hardware dentro do dispositivo. Se você sacrificar um dispositivo USB (um sacrifício nobre para o avanço do conhecimento) e abri-lo, provavelmente verá alguns chips NAND, que são os chips flash brutos, e um microcontrolador.

É necessário saber algumas coisas sobre memória flash para suas aventuras com o DD-WRT. Primeiro, os blocos de limpeza NAND são tudo ou nada—todo o bloco precisa ser limpo antes de os novos dados serem gravados. Segundo, o Linux possui um subsistema MTD e um comando mtd para executar tarefas básicas, como a limpeza ou gravação de uma imagem para o dispositivo. É possível executar o comando mtd sem opções no DD-WRT para ver a sintaxe e as opções. Algumas instruções que usam o comando mtd podem ser encontradas na wiki do DD-WRT, portanto, agora você sabe o que é isso. Terceiro, o nvram reside no último bloco de limpeza e é limitado a uma programação de 32 KB, não importando o tamanho do bloco de limpeza.


Sugestões de linha de comandos

Estas sugestões podem orientá-lo em suas explorações do DD-WRT:

  • O DD-WRT é desenvolvido no BusyBox, o popular kit de ferramentas Linux integrado. O BusyBox contém as versões melhoradas dos principais utilitários do Linux. Para economizar espaço, não há man pages. Portanto, para que possa saber mais sobre os comandos do BusyBox, chamados de applets, leia o man busybox (consulte Recursos)). É possível executar ls -l /bin e /sbin, /usr/bin, além dos outros diretórios binários executáveis para ver quais comandos terão ligações simbólicas com o BusyBox.
  • O DD-WRT usa o shell ash, que acompanha o BusyBox. Digite builtin na linha de comando para ver todas as integrações do shell.
  • Assim como em Linuxes bem desenvolvidos, é possível ler os pseudo sistemas de arquivos /proc e /sys para descobrir informações de hardware e ler arquivos de configuração em /etc.

Recursos

Aprender

Obter produtos e tecnologias

  • Avalie produtos IBM da maneira que for melhor para você: faça download da versão de teste de um produto, avalie um produto on-line, use-o em um ambiente de nuvem ou passe algumas horas na SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de modo eficiente.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux, Software livre
ArticleID=817148
ArticleTitle=Inclua o Poder do Linux aos Roteadores Wireless com Dicas e Truques Avançados para DD-WRT
publish-date=05252012