Mais um artigo da
série sobre o OpenWRT.
Quando instalado, o OpenWRT vem com uma configuração bem simples:
- A rede sem fio está desligada. Use, por enquanto, o cabo de rede;
- O usuário administrador "root" não possui senha. Deve ser a primeira coisa a ser resolvida;
- O acesso por telnet está liberado. Mais adiante, este acesso não é mais necessário (por ser inseguro) e é substituído pelo SSH;
- A interface LAN (as portas e a sem fio) estarão juntas (bridge) e esta estará configurada com o endereço 192.168.1.1/24;
- Um servidor DHCP irá fornecer endereços para a rede LAN;
- O equipamento estará configurado para utilizar servidores NTP do projeto para ajustar a hora;
- As regras do firewall irão bloquear tudo que não seja ICMP vindo de fora. Os acessos de dentro da rede para fora não sofrem influência.
A primeira coisa a ser feita é a configuração de uma senha. Use uma boa senha. Pelo que observo nos logs do meu firewall, é comum ataques em massa vindos da Internet. Não precisa ser nada de 15 caracteres, letras maiúsculas e minúsculas, números e símbolos. Porém, nada de admin ou 12345678. O próximo passo é o ajuste das configurações de rede.
Durante a configuração do OpenWRT, não vemos as usuais interfaces do Linux (eth1, wlan0,...). O que encontramos são interfaces de "mais alto nível" como LAN e WAN. Estas interfaces podem ser mapeadas diretamente para uma única interface do roteador (agora sim eth0, etc) ou agrupá-las em uma bridge. Por padrão, existem duas interfaces: WAN (Wide area network) e a LAN (Local area network). A WAN normalmente é composta apenas de uma interface (eth1), normalmente destacada das demais portas, utilizada para a conexão com a Internet. A LAN é uma bridge que junta a eth0 (portas da rede local) e a interface wireless (wlan0). Em geral, não é alterada a rede LAN e a WAN opera configurada por DHCP, PPPoE, dependendo do seu provedor.
OK, até agora como qualquer roteador. Porém, agora entra a flexibilidade do OpenWRT. As funções das interfaces podem ser alteradas, alternadas, agregadas ou divididas como o administrador desejar. A interface wlan0 pode se juntar com a WAN, as portas da LAN serem usadas para conexões diversas com a Internet ou juntar tudo e tornar o roteador um simples ponto de acesso (access-point) sem qualquer roteamento. Alguém pode perguntar: "mas as portas da rede local, aquelas 4, são mapeadas para uma única interface, a eth0?". Sim, são. Mas isto não é um limitador. Apesar de, por padrão, estarem juntas, as portas, se o HW permitir, podem ser isoladas em diversas redes, enviar pacotes com tags de VLANs e assim por diante. Porém, isto é um tema para um artigo isolado.
Para os roteadores wireless, é provavel que o desejo seja ativar o rádio. Isto é feito na configuração Wifi. SSID, criptografia (WPA ou WPA2, por favor. Esqueça que WEP existe), uma senha razoável, potência, canal, tudo isto que já encontramos em todos os firmwares. Vou focar nas diferenças: modo de operação. Existe uma boa gama de opções do modo de operação desde o clássico "AP", passando pelo simplório Ad-hoc e por coisas mais interessantes como redes Mesh (802.11s), WDS cliente ou servidor, ou até mesmo se comportando como um cliente wireless comum, conectando-se a outro roteador Wireless. Há também o modo "monitor", para realizar captura de pacotes wireless. Passando rapidamente, outra coisa interessante pode não ser notada. Na configuração do Wifi, existe um botão para "Adicionar". Adicionar o quê? Outra configuração wireless. Se o HW permitir, e normalmente permite, você pode ter múltiplas configurações de rede sem fio, operando em modos diferentes, com senhas diferentes, com SSID diferentes, cada uma representando uma interface. Vou tentar fazer um artigo somente sobre casos interessantes de uso da rede sem fio múltipla.
O acompanhamento do desempenho do roteador é muito próximo ao encontrado em um computador com Linux. Pode-se usar o top, ifconfig, free, df, etc. A interface provê todas estas informações de uma forma amigável, com gráficos em tempo real e alguma gerência como matar um processo. Vale a pena olhar. Ainda pela WEB, é possível configurar tarefas agendadas na cron, ativar/desativar e iniciar/parar serviços. Tudo simples e fácil.
Para ver se o roteador está "aguentando" a carga, observe valor da carga média (loadavg). São 3 valores com a média (respectivamente, média de 1, 5, 15 minutos) do tamanho da fila de processos querendo usar a CPU. Como regra geral, quando este valor estiver abaixo de 1, tudo certo. Quer dizer que ninguém ficou "esperando na fila". Se subir, pode ser muita carga ou problemas de HW. É bom avisar que, enquanto está sendo operada, a interface WEB usa bastante CPU. Memória normalmente sobra. Se ela faltar, coisas estranhas e aleatórias irão acontecer. O gráfico da rede também é muito legal, observando em tempo real se o seu provedor está entregando o que realmente foi contratado. Por fim, o disco só irá ser importante para a instalação de pacotes. Não é esperado que seja necessário reiniciar o roteador, por qualquer motivo que seja. No meu caso, ele fica ligado por meses sem qualquer degradação do desempenho. Só é desligado/reiniciado em caso de falta de energia, viagem ou atualização de firmware.
A lista de pacotes é bem vasta. Os novatos podem facilmente se perderem nas milhares de alternativas. A lista inclui desde pacotes clássicos, como nmap, socat, iftop, módulos de kernel ou programas específicos para roteadores. A limitação, como já comentei anteriormente, será seu espaço em disco. No meu caso, gastei quase todo o meu espaço livre para configurar IPv6, com SW do túnel, divulgação de roteador e demais detalhes. Para os iniciantes, observe os pacotes luci. Eles adicionam recursos à interface e, por dependência, instalam os programas necessários. Algum mais usados são luci-app-multiwan, para balancear entre múltiplas conexões com a Internet, luci-app-openvpn para configurar uma VPN, luci-app-upnp para criar encaminhamento de portas automaticamente (útil para Skype, Torrent e outros), luci-app-qos, para regras de qualidade de serviço.
O OpenWRT possui mecanismo para salvar as configurações em um arquivo de backup. Contudo, ele não é suficiente para todos os casos. Em primeiro lugar, na eventual instalação de um novo firmware, todos os programas instalados após a gravação da firmware anterior sumirão. Será necessário reinstalá-los. Em relação as configurações, existe uma lista de arquivos a serem preservados. Alguns como /etc/passwd ou /etc/config/* são automaticamente mantidos. Outros, principalmente de pacotes sem interface WEB, precisam que seus arquivos de configurações sejam relacionados em /etc/sysupgrade.conf, ou pela interface WEB. Recomendo que todo o conteúdo de /overlay seja também mantido enquanto ainda existir dúvidas se todos os arquivos estão listados para o backup.
A atualização da versão do OpenWRT é simples. Baixe a versão da firmware sysupgrade desejada e solicite a gravação. É possível solicitar a manutenção das configurações. Porém, isto é similar a gerar um backup e restaurá-lo. É importante lembrar que, como comentado no parágrafo anterior, nem tudo será mantido.
O diagnóstico de problemas é feito em grande parte olhando os logs. Existe o log do kernel (dmesg), o log do sistema (logread), que contém o do kernel e, possívelmente, logs de programas em /var/log/. A grande maioria dos programas usa somente o log do sistema e a criação de logs próprios é rara. Como o conteúdo do dmesg está contido no syslog, normalmente somente o logread é necessário. O logread é a ferramenta para ler o conteúdo do log do sistema. Este conteúdo pode ser acessado pela interface WEB ou por uma console. A opção "-f" faz com que o log seja "seguido", mostrando o conteúdo a medida que ele é gerado.
Bem, fiz algum configuração e agora não consigo acessar meu roteador. O que eu faço? Aperta o reset? Não vai funcionar. Jogo ele fora? Ainda não. Se o problema for apenas configuração ou alguma alteração de disco após a instalação do firmware, a recuperação é tranquila. O botão de reset do roteador é apenas um botão, que pode ser aproveitado para diversas finalidades, assim como, no meu caso, o QSS. Porém, durante o boot, ele tem uma função especial. Durante o processo de boot, o roteador envia um pacote UDP pela rede cabeada da LAN com um aviso parecido como, "Se quiser entrar no modo de emergência, aperte o reset agora!". Rapidamente aperte o botão reset. Com isto, todas as alterações feitas no disco, sendo elas instalação de pacotes, remoção de arquivos ou configurações serão ignoradas. Elas não serão removidas, apenas ignoradas. Realize os ajustes necessários e reinicie o equipamento. Mas como eu vou ver este pacote? Para os mais interessados, use um sniffer de rede (wireshark). Os mais preguiçosos, que é uma qualidade na computação, podem esperar o primeiro pacote recebido pela rede vindo do roteador. O aviso será o primeiro pacote.
Para os corajosos, boa sorte! Se precisarem de alguma ajuda, vou tentar fazer o possível. Devo falar sobre a criação de uma firmware customizada no próximo artigo.