Linux no Roteador? Conheça o OpenWrt e ganhe novas possibilidades
Já tinha lido que Linux estava presente em diversos lugares, como relógios, smartfones e até mesmo roteadores, então resolvi pesquisar uns meses atrás sobre Linux nos roteadores pra inclusive saber oque rodava no meu próprio roteador (um Tp-link v 4 c20), descobri que as empresas normalmente colocam um Firmware proprietário nos mesmos, então pesquisando mais a fundo me deparei com um Linux chamado OpenWRT.
Surgimento do OpenWrt
O OpenWrt se uma distribuição Linux que surgiu no ano de 2004, a partir da disponibilização do código-fonte do Firmware do roteador Linksys WRT54G, que possuía muitas partes que estavam sob licença GPL, assim surgiu um sistema altamente customizável com intuito de substituir esses Firmwares proprietários que vêm por padrão nos roteadores sem-fio que normalmente temos em casa.
No ano de 2016, um grupo de desenvolvedores do OpenWrt começou a discordar de uma série de regras e políticas dentro do projeto que, segundo eles, estavam atrapalhando o seu desenvolvimento. Então resolveram criar um novo projeto derivado do OpenWrt (um fork) chamado LEDE (Linux Embedded Development Environment). Mas essa separação durou apenas até janeiro de 2018, quando os desenvolvedores conseguiram resolver suas diferenças e o anúncio da reunificação dos projetos foi anunciada. Com a base de código do projeto LEDE (v17.01) passando a ser adotada a partir de então, porém a marca OpenWrt foi mantida.
Algumas características
Ele tem a flexibilidade como característica principal. E saiba que ao substituir o Firmware original de um roteador, além da liberdade, você ganha a capacidade de se integrar novas funcionalidades ao dispositivo, que antes seriam impossíveis. Por exemplo, agora consigo instalar e rodar o OpenVPN, criando um “túnel” pra tornar minha conexão mais segura. Ou instalar ferramentas de IoT, sem a necessidade de adicionar mais um dispositivo à sua rede. Essas funções, normalmente, estão disponíveis apenas em dispositivos mais robustos e por isso mais caros também, mas o OpenWrt você consegue implementar no seu roteador sem maiores problemas.
Hoje é possível fazer o download de imagens prontas do OpenWrt para diversos modelos de roteadores e placas de desenvolvimento, mas para aproveitar o máximo do projeto, alguns dizem que o interessante é fazer o download da imagem bruta (ou vanila) e compilá-lo para seu Hardware.
Quanto a flexibilidade do projeto, o OpenWrt permite a escolha da versão do gcc e do binutils, e mais interessante ainda, a implementação da libc: entre o musl (padrão desde a versão 17) e o uClibc. E ele adota o OverlayFS, o SquashFS e o JFFS2 para gerar o sistema de arquivos do sistema Operacional. O esquema de partições contém basicamente duas partições: a /rom e a /overlay. A /rom se trata de uma partição apenas de leitura formatada como SquashFS, contendo todos os arquivos e estrutura de diretórios originais, no momento de criação (build) da imagem do OpenWrt. O /overlay é a partição, formatada com JFFS2, do sistema de arquivos que tem permissão de escrita. A /overlay é “sobreposta” a /rom para criar um / (root) transparente para o usuário. Essa sobreposição permite, por exemplo, que você possa alterar arquivos presentes na /rom, sem, de fato, alterá-los, pois as mudanças ocorrem na sobreposição, e não na partição /rom propriamente dita. Esse recurso facilita a recuperação do estado inicial do sistema (hard reset), tal qual quando o OpenWrt foi instalado no dispositivo.
Instalação de pacotes/programas
O OpenWrt têm suas aplicações distribuídas através de pacotes ipk que podem ser instalados através do gerenciador opkg, bem comum em Linux embarcado.
Existem mais de 2000 pacotes pré-compilados, mas caso um pacote que você precise não faça parte do projeto, é possível integrá-lo com pacotes de contribuidores independentes ou criar seus próprios pacotes. E pra isso é só criar um Makefile com macros específicas para o OpenWrt. Desta forma o sistema de build vai se encarregar de baixar os arquivos de um repositório ou de um endereço na internet e posteriormente vai compilá-los para a plataforma determinada nas configurações.
Componentes básicos do Sistema
No OpenWrt você têm a implementação de 05 softwares básicos que são responsáveis pelo funcionamento de todo sistema operacional, que são:
- UCI (Universal Configuration Interface): É o Responsável por centralizar e padronizar a configuração de quase todos os softwares integrados ao OpenWrt. Essa configuração controlada pelo UCI fica armazenada no diretório /etc/config. Por exemplo, é possível configurar o servidor SSH, como o Dropbear, alterando as opções em /etc/config/dropbear. Assim o UCI se encarrega de buscar e alterar os arquivos de configuração originais do Dropbear;
- procd (process daemon): Se trata do gerenciador de processos. Responsável por inicializar e finalizar processos (Seria o SystemD ou o Runit do OpenWrt). No OpenWrt os processos são controlados por scripts que estão em /etc/init.d/. Por exemplo, para iniciar o servidor SSH dropbear, é só rodar o comando /etc/init.d/dropbear start. E para adicioná-lo à inicialização do sistema ( na verdade após o boot automaticamente) basta rodar /etc/init.d/dropbear enable – assim você cria um link simbólico em /etc/rc.d/ com um número de prioridade determinado no script em init.d;
- uBUS: Se trata de um barramento de comunicação entre processos e/ou aplicações. Permitindo que os processos troquem mensagens via sockets UNIX. Esse comando ubus apresenta dados sobre serviços, devices e aplicações em formato JSON, o que torna simples a integração com scripts e outras aplicações;
- netifd: Esse é um daemon com foco em configurar interfaces e conexões de rede. Com ele você não precisa reiniciar as interfaces de rede quando alguma configuração for alterada;
- LuCI: Essa é a interface gráfica/web de configuração do sistema. É semelhante às páginas de configuração presentes nos roteadores, tornando simples a tarefa de configurar a rede wifi, acesso à internet, regras de firewall, entre outros.
Caso tenha interesse em testar o OpenWrt antes de instalar no seu roteador, como se trata de uma distribuição Linux, você pode virtualizar o mesmo, ou caso tenha um Raspberry Pi, pode instalar no mesmo e torná-lo seu roteador também.
Caso o seu roteador seja um Tp-link C20 (Ou pode comprar esse modelo pra poder instalar) da uma conferida no vídeo que fiz lá no canal Rikerlinux, mostrando como instalei o OpenWrt, e mesmo que não seja o mesmo modelo, creio que esse vídeo pode lhe dar uma direção quanto a instalação aí no seu dispositivo.
E aí, já usou ou pensou em usar Linux no seu roteador? Deixe aqui nos comentários.
I just couldn’t go away your website before suggesting that I extremely loved the usual information a person supply for your guests? Is going to be again continuously to check out new posts
Good post. I study something more challenging on different blogs everyday. It will at all times be stimulating to read content material from other writers and apply slightly something from their store. I抎 favor to use some with the content on my weblog whether you don抰 mind. Natually I抣l provide you with a link in your internet blog. Thanks for sharing.