terça-feira, 2 de fevereiro de 2016

Transforme seu velho roteador em um repetidor de sinal Wi-Fi

Sabe aquele roteadorzinho velho que você não usa mais, jogado numa gaveta qualquer ? então, ele pode servir como um potente repetidor de sinal. Ou até mesmo, deu um raio e queimou a porta WAN dele, não jogue-o fora ! Ele ainda pode servir como um repetidor de sinal Wi-Fi.

Alguns roteadores já possui uma função "repeater", mas é raro. O Tp-Link por exemplo, normalmente tem essa função, mas é somente por wds, resumindo, só funciona entre roteadores da família Tp-Link, ou seja, se for um wireless do modem da sua operadora de internet por exemplo, não vai dar certo. É claro que esses roteadores são capazes de serem repetidores de Wi-Fi, a questão ai é que essa função não está disponível no software (firmware) original, ou pelo trabalho de implementar, ou pelo simples fato de obrigar a você a comprar um repetidor, ao invés de dar a possibilidade de reciclar um roteador como repetidor. A solução para isso então seria utilizar uma firmware customizada, e quando falamos em firmware customizada para roteadores, a primeira opção é o OpenWRT.

O OpenWRT nada mais é do que uma implementação do Linux para roteadores. Você vai ter toda a robustez, estabilidade, confiança e dificuldade que os mais fudidos e caríssimos roteadores tem, em um roteadorzinho de R$100,00. Na verdade é interessante fazer o upgrade para o OpenWRT até mesmo se você for usar ele como roteador mesmo. Eu recentemente desisti da firmware original do meu roteador TP-Link pela necessidade quase que constante de ficar toda hora indo reinicia-lo. Depois que eu instalei nele o OpenWRT nunca mais precisei fazer isso.

Primeira coisa que precisamos tem em mente é que tem roteador que é tão vagabundo que simplesmente é impossível rodar o OpenWRT, pois ele precisa de pelo menos 3MB de espaço interno, e tem roteador por ai que tem a nand de 1024KB. O correto é procurar nos foruns da OpenWRT a respeito da marca e modelo do seu roteador e ver se ele é compatível, se for ele já dará qual é o processador que ele usa, que será necessário para o próximo passo.

Agora, precisamos ter em mãos o fabricante, modelo e versão de hardware do seu roteador, isso é muito importante, pois "flashar" ele com a firmware errada vai brickar seu roteador, isso não necessariamente vai mata-lo, mas o processo pra desbrikar é bem complicado, incluindo soldar fios na placa dele para ligar na porta serial e restaurar a firmware original via console. É mais fácil prestar a atenção no que está fazendo.

Eu vou usar de exemplo aqui um roteador da TP-Link, mas a idéia é a mesma para a grande maioria. Normalmente o modelo e versão de Hardware fica numa etiqueta no verso do roteador, mas as vezes ele fica na seção "Upgrade" da página de configuração:

Clique nas imagens para ampliar

Repare que nesse exemplo, ele é um roteador da TP-link, modelo WR741ND V4, nesse caso esse "V4" siginifica que o hardware é versão 4. Agora vamos procurar nos foruns da openwrt para descobrir qual a cpu que ele usa, pra isso eu só fiz uma consulta simples no google, como: "WR741ND openwrt". Isso me levou a essa página: https://wiki.openwrt.org/toh/tp-link/tl-wr741nd

Lá da pra descobrir que essa versão de hardware deste roteador usa a cpu Atheros AR9331, tendo em mãos isso, agora podemos baixar a firmware correta para esse roteador, para isso vamos entrar na página de download da OpenWRT: https://downloads.openwrt.org/

É uma página bem simples, sem frescuras. Atualmente a versão mais recente é a Chaos Calmer 15.05, se você não achar a versão do seu roteador lá, tente uma versão mais antiga. Entrando na versão mais recente, ele vai dar uma lista de harware, como eu sei que esse roteador em exemplo usa um AR9331, fica mais fácil achar, como eu não to vendo nenhum AR9XXX ou algo do gênero, eu vou no mais próximo (sim ... é meio chato achar a seção certa), usando a função pesquisar do meu navegador (Ctrl+F) e procurando pelo modelo, eu acabei descobrindo que esse roteador em questão está em "ar71xx" na subpasta "generic", o arquivo em questão é o: 

openwrt-15.05-ar71xx-generic-tl-wr741nd-v4-squashfs-factory.bin

Sim, é meio chato de achar, você pode perder algum tempo fazendo isso, mas depois que você acha não tem erro. Repare que aparece o modelo do roteador (tl-wr741nd) e a versão de hardare (V4). Não tente baixar uma firmware "semelhante", você tem a s, séria chance de brickar seu roteador. Repare que há duas opções, a com final "factory" e a "sysupgrade", a "factory" seria para a primeira vez que está instalando o openwrt, e a "sysupgrade" seria se você já tem o openwrt instalado no roteador, mas você quer apenas atualizar sua versão.

A instalação é bem simples, basta acessar a página de configuração do seu roteador, e ir na seção "Firmware" e lá selecione o arquivo que você baixou e mande atualizar normalmente. Se der algum erro, o sistema do roteador salvou sua pele, você baixou a firmware errada, agora se tudo der certo, após a atualização, seu roteador vai mudar totalmente. o led de sistema vai piscar por um tempo (ele vai demorar mais pra iniciar agora) e logo em seguida você vai ver os leds piscando normalmente como antes. Preste a atenção que até o ip de acesso poderá mudar, o ip padrão do Openwrt é 192.168.1.1

Configurando o OpenWRT como repetidor de sinal Wi-Fi

Agora que vem a configuração em si do openwrt para funcionar como repetidor de sinal, Ele nativamente não foi projetado para isso, sendo assim vamos precisar baixar um pacote adicional a ser instalado nele, e para isso primeiramente temos que conectar esse roteador á internet, você pode fazer isso via cabo WAN mesmo, ou se a porta WAN dele estiver queimada, você pode conectar ele via WiFi. Como vamos ter que conecta ele via Wifi mesmo para ele repetir o sinal futuramente, depois de logar no sistema (inicialmente ele não vem com senha), vá em "Network/Wifi", remova o wifi padrão, e entre em "Scan", ache a rede a ser repetida (ela deve estar na internet), coloque a senha dela, nomeie como quiser, e é importante deixa-la sem zona:


Depois de dar um submit, ele vai entrar nas configurações avançadas, normalmente não é necessário mexer em mais nada, então voltamos em "Network/Wifi" e a nossa nova conexão está lá, devemos esperar ele conectar, e ele vai mostrar em tempo real a força do sinal. Caso ele fique muito tempo em 0% é porque ele não ta conseguindo conectar, uma forma de resolver isso é ir em "Edit" na conexão Wifi que você acabou de criar, lá vá na aba "Advansed Settings" e abaixo em "Interface Configuration" mude a aba para "Wireless Security" e finalmente em "Encryption" mude para "WPA-PSK/WPA2-PSK Mixed Mode"


De um "Save & Apply" e ele vai voltar em "Network/Wifi" desta vez se tudo estiver certo ele vai conectar:

Tampei o SSID e o MAC por questão de privacidade

Com o roteador conectado na internet, agora vamos baixar o pacote para funcionar como repetidor, para isso vá em "System/Software" e clique em "Update Lists", ele vai atualizar a lista de software, e após aparecer uma lista de atualizações, vá ai mesmo na aba "Avaliable Packages", clique na lista "L" e procure por um pacote chamado "luci-proto-relay":


Clique em "Install" e confirme, se tudo deu certo ele dará a mensagem: Package luci-proto-relay (git-15.248.30277-3836b45-1) installed in root is up to date. Após isso, é bom reiniciar seu roteador.

Depois de reiniciar o roteador, logue novamente e vamos novamente em "Network/Wifi", agora vamos criar a segunda conexão Wifi que será a o Acces Point deste repetidor. Vá em "Add" de um nome para a sua rede em "ESSID" e deixe o "Mode" como "Acces Point", agora vá na aba "Wireless Security" e em "Encryption" deixe como "WPA-PSK/WPA2-PSK Mixed Mode" (ou apenas WPA2-PSK se desconfiar que seu vizinho vai tentar hackear seu Wifi, mas isso pode te dar dor de cabeça futuro), e defina uma senha em "Key", normalmente é a mesma da rede principal, mas você pode colocar outra se quiser:


Clique em "Save & Apply" e agora teremos as 2 conexões Wifi, a client que recebe o sinal e a master que irá retransmitir o sinal. O que está faltando agora é unir as 2 conexões, mas antes disso precisamos desativar o "Firewall" nativo do OpenWRT, como ele vai funcionar apenas como repetidor, o Firewall nesse caso só vai atrapalhar. Para isso vá em "Network/Firewall" deixe tudo como "accept" e delete todas as zonas:


Salve novamente em "Save & Apply" , e agora vamos finalmente "unir" as duas redes wifi. Vamos em "Network/Interfaces", e se quiser você pode deletar a porta "WAN" física, vá em "Add new interface" de um nome para essa interface, eu aqui usarei "Relay" mesmo, e em "Protocol of the new interface", selecione "Relay bridge", clique em submit e em "Relay between networks" marque as redes "lan" e "wwan"


Vá em "Save & Apply" e a ligação está feita, o ultimo passo é desativar o serviço DHCP, para que o ip seja fornecido pelo roteador principal, ou seja revise bem todos os passos antes de realizar essa ultima etapa. Na sua rede "LAN" vá em "Edit", verifique se o ip padrão 19.168.1.1 não é o mesmo do se roteador principal, se for mude para por exemplo 192.168.3.1. Agora lá em baixo em "DHCP Server" marque a opção "Disable DHCP for this interface", de um "Save & Apply" e reinicie seu roteador.

Pronto ! uffa !! Agora teste se a nova rede Wifi, e veja se está retransmitindo a rede Wifi normalmente, se você fez tudo certo é pra funcionar. Porém se não estiver funcionando, você terá que reconfigura-lo, e isso agora será um problema, mas ele tem solução. Mesmo que você defina a sua rede manualmente como por exemplo 192.168.3.11 (que foi a faixa de IP que definimos anteriormente como exemplo) e tentar conectar novamente nele no 192.168.3.1 ele mesmo assim poderá não entrar, não se desespere, se isso acontecer é necessário resetar sua configuração original, e ao contrário de antes, não é só segurar o reset por 10 segundos, primeiramente temos que ativar o modo de segurança do OpenWRT, para isso, desligue o roteador, ligue-o novamente só que agora fique apertando o botão reset várias vezes até que o led de sistema passe a piscar de lentamente para bem rapidamente, assim que ele começar a piscar bem rapidamente, pode parar de ficar apertando o botão reset. Agora defina manualmente sua conexão cabeada, na porta LAN do roteador para algo como "192.168.1.10", e agora vamos conectar via telnet. Se você usa o windows xp, é só ir no prompt do dos e digitar "telnet 192.168.1.1", senão você pode fazer essa conexão usando um software de telnet como o putty. Abra então uma conexão telnet em 192.168.1.1 e ele irá abrir um shell do linux. Agora dê as seguintes linhas de comando:

mount_root
mtd -r erase rootfs_data

Depois de dar a segunda linha de comando ele vai reiniciar, e vai estar com a configuração original, agora você vai ter que reconfigurar tudo de novo.

Eu sei que é ligeiramente complicado, principalmente se você nunca mexeu num roteador de verdade, mas se precisar de ajuda, pergunte nos comentários. Boa Sorte !