Como configurar um Raspberry Pi ou qualquer Linux como um roteador Wi-Fi

Qualquer sistema operacional baseado em Linux pode ser configurado como um roteador WiFi real com algumas etapas simples. Por exemplo, se usarmos um Raspberry Pi com o sistema operacional Raspbian (que ainda é um sistema operacional baseado em Linux), podemos configurá-lo para usar suas diferentes interfaces de rede e criar um roteador WiFi com um desempenho bastante decente, mas também devemos levar em consideração suas limitações de porta.



Neste tutorial, ensinaremos como configurar um Raspberry Pi, ou qualquer sistema operacional baseado em Linux, para funcionar como um roteador Wi-Fi.

Etapas iniciais

A primeira coisa que devemos fazer é instalar o sistema operacional em nosso Raspberry Pi. No nosso caso, usamos a última versão do Raspbian, embora qualquer outro sistema possa ser usado (embora os comandos possam variar).

Uma vez que o sistema operacional é instalado em nosso micro SD, nós o executamos pela primeira vez para completar sua instalação e configuração (por exemplo, no caso do Raspbian, complete o assistente « sudo raspi-config «).

Depois de configurado e com o dispositivo funcionando e conectado à Internet através de RJ-45, atualizamos as fontes de software, aplicativos e o sistema digitando:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Uma vez com nosso sistema atualizado, podemos continuar com o tutorial para configurar nosso Raspberry Pi para funcionar como um roteador.

Verifique se nosso cartão USB Wi-Fi foi detectado e funciona no modo AP

A primeira coisa que faremos é verificar se o dispositivo detecta o cartão. Para fazer isso, digitamos:

lsusb

E deve aparecer listado. Assim que aparecer, executaremos outro comando para verificar se o cartão Wi-Fi pode funcionar no modo AP:

iw list

Se no resultado que aparece na tela podemos ver a linha: Modo: AP, a placa é compatível para realizar esta configuração, caso contrário, devemos procurar outra placa cujo chipset permita que ela seja configurada como ponto de acesso, ou AP.

Instale o software necessário e dependências

A maior parte do software necessário é instalado por padrão no Raspbian, embora os únicos que podem nos dar problemas são o servidor DHCP e o serviço de criação de ponto de acesso, que podemos instalar manualmente (se não estiver disponível) digitando:

sudo apt-get install isc-dhcp-server hostapd

Uma vez neste ponto, podemos reiniciar nosso Raspberry para começar com a configuração.

Configuração

Todas as configurações são feitas a partir do terminal, em modo texto. Vamos usar o editor nano e sempre antes de editar um arquivo criaremos uma cópia dele para que se ocorrer um erro possamos restaurá-lo.

Configurar servidor DHCP

A primeira coisa que configuraremos será o servidor DHCP. Para isso vamos editar o seguinte arquivo:

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
sudo nano /etc/dhcp/dhcpd.conf

Neste arquivo devemos procurar uma série de linhas. Os itens a seguir não são comentados por padrão, nós os comentamos com um # na frente para que não sejam mais ativados e sejam os seguintes:

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Procuraremos o elemento #authoritative; que por padrão será comentado e nós descomentaremos para ativá-lo, deixando:

authoritative;

Para finalizar configuraremos a rede na qual funcionará o servidor DHCP (em nosso exemplo na rede 192.168.2.0). Para isso vamos ao final do documento e adicionamos:

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.2 192.168.2.30;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

Nós salvamos as alterações e fechamos o arquivo.

Abriremos um novo arquivo de configuração do servidor, digitando:

sudo cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.orig
sudo nano /etc/default/isc-dhcp-server

Neste documento, vamos olhar (no final) para a linha INTERFACES = »» e alterá-la para:

INTERFACES="wlan0"

O servidor DHCP já está configurado. Continuamos com o tutorial.

Configure a conexão WLAN e Ethernet

A primeira coisa que faremos é desconectar o cartão wi-fi. Para fazer isso, digitamos:

sudo ifdown wlan0

A seguir, abriremos o arquivo «interfaces»:

sudo cp /etc/network/interfaces /etc/network/interfaces.orig
sudo nano /etc/network/interfaces

E vamos configurá-lo da seguinte maneira:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0

Nós comentamos ou apagamos as outras linhas. Salvamos as alterações e fechamos o documento. Para aplicar as mudanças no momento, devemos digitar:

sudo ifconfig wlan0 192.168.2.1

Configure o ponto de acesso

Mais uma vez, editaremos outro arquivo digitando:

sudo cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
sudo nano /etc/hostapd/hostapd.conf

E neste arquivo apagamos o que existe (se houver) e colamos:

interface=wlan0
ssid=RaspiAP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Podemos alterar tanto o SSID pelo nome que queremos dar à nossa rede e o canal no canal e o wpa_passphrase com a senha, em texto simples, que queremos usar para conectar.

Para finalizar a configuração, abrimos um novo arquivo de configuração digitando:

sudo cp /etc/default/hostapd /etc/default/hostapd.orig
sudo nano /etc/default/hostapd

Descomentamos e alteramos a linha # DAEMON_CONF = »» por:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Nós salvamos e fechamos o arquivo para finalizar. Estamos quase terminando, apenas algumas configurações menores permanecem e configure o Raspbian para que tudo isso seja executado na inicialização do sistema automaticamente.

Configurações finais

Embora nosso ponto de acesso do roteador já esteja configurado e funcional, não podemos nos conectar à Internet por meio dele, nem as configurações são executadas automaticamente na inicialização. Para que isso funcione, devemos seguir os últimos passos que listamos a seguir.

Configurar encaminhamento de pacote

Para que o Raspberry Pi encaminhe os pacotes de si mesmo para o roteador para poder ir para a Internet, devemos configurar os seguintes elementos:

Abrimos e editamos o arquivo sysctl:

sudo cp /etc/sysctl.conf /etc/sysctl.conf.orig
sudo nano /etc/sysctl.conf

Neste documento, procuraremos a linha "# net.ipv4.ip_forward = 1" e iremos descomentar, deixando:

net.ipv4.ip_forward=1

Salvamos e fechamos o documento. Para que as alterações tenham efeito imediato, digitaremos:

sudo sysctl -p /etc/sysctl.conf

Habilitamos o NAT digitando:

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

E salvamos as regras do iptables para que as alterações persistam (instalamos o seguinte pacote: sudo apt-get install iptables-persistent e seguimos o assistente).

Configurar inicialização automática

Para que o ponto de acesso e o servidor DHCP iniciem automaticamente com nosso dispositivo, devemos indicar isso especificamente e permitir que os serviços sejam ativados junto com o Raspbian. Para fazer isso a partir do terminal, digitamos:

sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

Última configuração

Antes de terminar, existe um arquivo suplicante WPA que pode causar problemas em algumas ocasiões, portanto, para garantir que isso não aconteça, movemo-lo para um caminho seguro digitando:

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service /home/pi

Nosso Raspberry Pi já funciona como um roteador Wi-Fi

Assim que chegarmos a este ponto, podemos reiniciar nosso Raspberry Pi. Quando ele for reiniciado, ele criará automaticamente o ponto de acesso, atribuirá endereços IP aos hosts que se conectam a ele e encaminhará todo o tráfego da placa Wi-Fi através da placa de rede até o roteador, desde que estamos conectados a um.