Transformando sua Raspberry Pi, odroid, Banana pi, Orange Pi em um pequeno roteador wifi

Transformando sua Raspberry Pi, odroid, Banana pi, Orange Pi em um pequeno roteador wifi

Olá meus amigos, neste tutorial irei demonstrar o compartilhamento da internet usando uma raspberry pi.
Relaxa, este tutorial é para linux, engloba várias placas, incluindo as citadas no título.

Para prosseguir neste tutorial, vou assumir que sua interface wifi é “wlan0” e que você já possui driver instalado.
Instalando os pacotes necessários 
Hostapd é um servidor accesspoint com suporte a IEEE 802.11 e autenticação /WPA/WPA2/EAP.

Udhcpd é um servidor dhcp, leve e pequeno. Geralmente usado em sistemas embarcados. Para finalizar, vamos instalar também o zd1211, firmware usada pelo hostapd.

Habilitando udhcpd para iniciar automaticamente 

Configurando udhcpd
Vamos editar o arquivo /etc/udhcpd.conf para configurar o servidor udhcpd. A configuração é simples, deixei um exemplo abaixo, personalize ao seu gosto.

# pico /etc/udhcpd.conf

# inicio do range de ip que sera utilizado pelo udhcpd.
start           192.168.6.40

# fim do range de ip que sera utilizado pelo udhcpd.
end             192.168.6.254

# interface que sera usada como ponto de acesso.
interface       wlan0

# remaining definido com “yes”, armazena o tempo restante para cada alocacao. Se estiver definido com “no”, armazena o tempo de expiracao  para cada alocacao.
remaining       yes

# escreve as informacoes do lease no arquivo definido.
lease_file      /var/lib/misc/udhcpd.leases

# guarda o pid do processo no arquivo definido.
pidfile         /var/run/udhcpd.pid

# Esta opção lista os servidores de nomes (DNS) a serem utilizados para resolução de nomes.
opt     dns     8.8.4.4 8.8.8.8

# Mascara de subrede que sera fornecida aos clientes.
option  subnet  255.255.255.0

# Ip da placa. Sera o gateway para os clientes.
opt     router  192.168.6.22

# Nome do dominio
option  domain  local

# tempo do lease em segundos.
option  lease   864000

Configurando wlan0 como ip estático

Edite o arquivo /etc/network/interfaces, insira as diretrizes abaixo:

Configurando o Hostapd
Vamos editar este arquivo /etc/hostapd/hostapd.conf, para maiores informações, clique aqui 

# Interface usada para o ponto de acesso
interface=wlan0

# firmware driver
driver=nl80211

# nome do ponto de acesso SSID
ssid=rpi2maker

# modo de operacao (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g)
hw_mode=g

# canal do ponto de acesso
channel=11

# Station MAC address -based authentication
# Please note that this kind of access control requires a driver that uses
# hostapd to take care of management frame processing and as such, this can be
# used with driver=hostap or driver=nl80211, but not with driver=atheros.
# 0 = accept unless in deny list
# 1 = deny unless in accept list
# 2 = use external RADIUS server (accept/deny lists are searched first)
macaddr_acl=0

# IEEE 802.11 specifies two authentication algorithms. hostapd can be
# configured to allow both of these or only one. Open system authentication
# should be used with IEEE 802.1X.
# Bit fields of allowed authentication algorithms:
# bit 0 = Open System Authentication
# bit 1 = Shared Key Authentication (requires WEP)
auth_algs=1

# Send empty SSID in beacons and ignore probe request frames that do not
# specify full SSID, i.e., require stations to know SSID.
# default: disabled (0)
# 1 = send empty (length=0) SSID in beacon and ignore probe request for
#     broadcast SSID
# 2 = clear SSID (ASCII 0), but keep the original length (this may be required
#     with some clients that do not support empty SSID) and ignore probe
#     requests for broadcast SSID
ignore_broadcast_ssid=0

# Set of accepted key management algorithms (WPA-PSK, WPA-EAP, or both). The
# entries are separated with a space. WPA-PSK-SHA256 and WPA-EAP-SHA256 can be
# added to enable SHA256-based stronger algorithms.
wpa_key_mgmt=WPA-PSK

# password
wpa_passphrase=rpiwifirouter

# Enable WPA. Setting this variable configures the AP to require WPA (either
# WPA-PSK or WPA-RADIUS/EAP based on other configuration). For WPA-PSK, either
# wpa_psk or wpa_passphrase must be set and wpa_key_mgmt must include WPA-PSK.
# Instead of wpa_psk / wpa_passphrase, wpa_psk_radius might suffice.
# For WPA-RADIUS/EAP, ieee8021x must be set (but without dynamic WEP keys),
# RADIUS authentication server must be configured, and WPA-EAP must be included
# in wpa_key_mgmt.
# This field is a bit field that can be used to enable WPA (IEEE 802.11i/D3.0)
# and/or WPA2 (full IEEE 802.11i/RSN):
# bit0 = WPA
# bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled)
wpa=2

# set ciphers
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Habilitando o hostapd para inciar automaticamente

Configurando redirecionamento NAT
Habilitando o redirecionamento ipv4 (permanentemente)

Criando as regras de redirecionamento

Edite o arquivo /etc/network/interfaces, insira no bloco do “wlan0”:
up iptables-restore < /etc/iptables.rules

Ficando dessa forma:

Iniciando serviços

Possiveis erros
Analise o /var/log/syslog, se pegar um erro como esse:
Fev 02 23:06:29 rpi2maker udhcpd[15815]: udhcpd (v1.20.2) started
Fev 02 23:06:29 rpi2maker udhcpd[15815]: can’t open ‘/var/lib/misc/udhcpd.leases’: No such file or directory

Solução:

Hostapd não inicializa
Pode ser vários motivos, dentre elas a incompatibilidade do hostapd com alguns adaptadores wifi. No meu caso, tive problema com o rtl8192cu.
A Solução que encontrei foi compilar o binário do hostapd. Porém, encontrei um já compilado, segue o passo-a-passo abaixo:

Troque o driver no /etc/hostapd/hostapd.conf, para rtl871xdrv:

Faça o download do hostapd e instalação do hostapd

Que tal nos encontrar no SeuTubo para ver dicas, tutoriais e Reviews de placas? Canal Sistemas Embarcados
Que tal na página do Facebook?
Quem sabe Google Plus?
Que tal no Pinterest?
Ou talvez me encontrar no Twitter para receber as ultimas noticias quentinhas: @SEmbarcados
Conheça também nossos grupos do Facebook:
Abraços e até a próxima.

Related Post