Tem um Raspberry Pi 3? Saiba como transformá-lo num AP Wifi
O Raspberry Pi 3 pode ser usado para os mais diversos projectos/serviços . Esta nova versão do mini PC mais popular do mundo tem um bom poder computacional, comparativamente aos seus antecessores, e como já referimos anteriormente, já traz suporte nativo para redes wireless.
Aproveitando o facto de vir já com uma interface wireless, porque não transformá-lo num router sem fios? Se ainda não tem um RPI3, veja aqui a nossa promoção.
Para transformar o seu PI num Access Point é necessário realizar as seguintes configurações:
- (1) – “Configurar” interface wireless
- (2) - Instalar e configurar hostapd (Access Point daemon) e dnsmasq
- (3) - Configurar IP routing entre a interface wireless e Ethernet
(1) “Configurar” interface wireless
Como pretendemos que a nossa interface wireless tenha um IP estático, vamos ao ficheiro /etc/dhcpcd.conf e introduzimos a seguinte linha:
denyinterfaces wlan0 |
Feita esta alteração, podemos configurar o IP estático em /etc/network/interfaces. Para isso abrimos o ficheiro:
sudo nano /etc/network/interfaces |
em seguida, considerando que pretendemos atribuir o endereço 192.168.8.1, devemos realizar a seguinte configuração:
auto wlan0 iface wlan0 inet static hostapd /etc/hostapd/hostapd.conf address 192.168.8.1 netmask 255.255.255.0 network 192.168.8.0 broadcast 192.168.8.255 |
(2) Instalar e configurar hostapd (Access Point daemon) e dnsmasq
O próximo passo é instalar o hostapd. Este software é o daemon Host Access Point, que fornece criptografia WPA2 robusta e autenticação em pontos de acesso wireless baseados em Linux. Para instalar o hostapd devem seguir os seguintes passos:
Passo 1 – Instalar o hostapd
sudo apt-get install hostapd |
Passo 2 – Editar o ficheiro de configuração (/etc/hostapd/hostapd.conf) e criar rede wireless PiPplware com password raspberry
interface=wlan0 driver=nl80211 ssid=Pipplware hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=raspberry wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP |
Nota: Para verificarem se há erros no ficheiro, podem usar o seguinte comando:
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf |
Vamos agora editar o ficheiro /etc/default/hostapd e indicar onde se encontra o ficheiro de configuração. Para isso basta adicionar a seguinte linha:
DAEMON_CONF="/etc/hostapd/hostapd.conf" |
Para instalar o dnsmasq basta que usem o seguinte comando:
sudo apt-get install dnsmasq |
Depois abrimos o ficheiro /etc/dnsmasq.conf e inserimos a seguinte configuração:
interface=wlan0 listen-address=192.168.8.1 bind-interfaces server=8.8.8.8 domain-needed bogus-priv dhcp-range=192.168.8.20,192.168.8.254,12h |
O dnsmasq combina funções de DHCP e DNS.
(3) Configurar IP routing entre a interface wireless e Ethernet
Para configurar o encaminhamento para os pacotes que chegam a interface wireless e que têm como destino a interface wired, devem proceder a seguinte configuração:
Editar o ficheiro /etc/sysctl.conf e activar o encaminhamento IP. Para isso basta descomentar seguinte linha:
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 |
Para activar de imediato o encaminhamento IP basta que usem o seguinte comando:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" |
Para transformar o PI num router, deve ainda executar os seguintes comandos:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT |
Tal configuração deve ser guardada em /etc/iptables.ipv4.nat
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" |
Por fim editamos o ficheiro /etc/network/interfaces e incluímos a linha seguinte que será responsável por carregar as regras do iptables cada vez que o PI reiniciar.
pre-up iptables-restore < /etc/iptables.ipv4.nat |
Para iniciar os serviços (hostapd e dnsmasq basta que usem os seguintes comandos:
sudo service hostapd start sudo service dnsmasq start |
Como testar?
Depois de definidas as configurações, basta verificar as redes wireless disponíveis e ligar-se à rede Pipplware (foi o nome que atribuímos à rede). A password é raspberry (também definida no ficheiro /etc/hostapd/hostapd.conf).
Lembrem-se que podem aceder a esta rede através do vosso smartphone, tablet, PC, etc. E é tudo! Existe aqui também um script que faz todo o trabalho. O Pplware está a testá-lo e brevemente apresentará um tutorial detalhado.
Este artigo tem mais de um ano
Não era melhor fazer bridge entre o AP e o ethernet em vez de andar a fazer routing para a rede interna?
Podes querer que a malta que anda no Wifi não tenha acesso a tua rede interna. Claro que para isso ainda tinhas de configurar umas regras iptables no raspi.
Acho que vais ter à mesma acesso. E com além de muito mais chato a configurar vais provocar conflitos de IPs duplicados se o dhcp no router de casa não for configurado para não atribuir os mesmos ips do pi
Fiz exatamente tudo (sem ser os IP’s adaptei-os á minha rede) e o dnsmasq está-me a dar erro. E por alguma razão também não me consigo conectar por Putty (SSH). Alguém sabe da solução?
consegui esqueçam
Acho isto muito interessante,é por isto que eu visito o vosso site todos os dias!faz-me lembrar as aulas de algoritmia,e como sou um nerd,não consigo deixar de pensar numa coisa,quais são as velocidades máximas atingidas?podiam fazer uns testes de transferência de ficheiros em rede e speedtest/qos/netmede,eu tenho um router wireless configurado como AP e com a norma 802.11n e 130 Mbps contratados,tenho velocidades de transferência de cerca de 100 Mbps. Mas uso um switch Gigabit e cabos de rede UTP Cat 5e para usufruir dos restantes 30 Mbps .O AP é para dispositivos móveis/testes.
Desculpem a pergunta
Mas para que serve o Ac?
Olá,
Ao correr o comando:
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Obtenho o seguinte.:
pi@rasp:~ $ sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
Failed to create interface mon.wlan0: -95 (Operation not supported)
wlan0: Could not connect to kernel driver
Using interface wlan0 with hwaddr b8:27:eb:66:75:c8 and ssid “Homeware”
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED
^Cpi@rasp:
Config da file:
interface=wlan0
driver=nl80211
ssid=Homeware
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Teste123456
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
Como resolver?
Obrigado
Isto faz de Rede para Wifi ou também dá de Wifi para Rede?
Se esta configuração é a primeira hipótese que indiquei, como se faz pela segunda hipótese que apresentei?
Eu ando à meses para fazer essa configuração…
https://medium.com/@edoardo849/turn-a-raspberrypi-3-into-a-wifi-router-hotspot-41b03500080e
https://medium.com/linagora-engineering/using-a-pi-3-as-a-ethernet-to-wifi-router-2418f0044819