Tem um Raspberry Pi 3? Saiba como transformá-lo num AP Wifi

10 Comentários

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.

pi_rasp


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

pi_ap

(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).

wifi_002

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.

Comentários

10

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de daiquiri
    daiquiri

    Não era melhor fazer bridge entre o AP e o ethernet em vez de andar a fazer routing para a rede interna?

    1. Avatar de Nine
      Nine

      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.

      1. Avatar de Daiquiri
        Daiquiri

        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

  2. Avatar de PEDRO
    PEDRO

    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?

  3. Avatar de PEDRO
    PEDRO

    consegui esqueçam

  4. Avatar de Soldier_2016
    Soldier_2016

    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.

  5. Avatar de Ricardo
    Ricardo

    Desculpem a pergunta
    Mas para que serve o Ac?

  6. Avatar de Bruno
    Bruno

    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

  7. Avatar de Miguel Couto
    Miguel Couto

    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…