IFPR-Labtelecom: Linux (Hostapd)

Hostapd (transformando o computador em um equipamento wireless)

Hostapd é um arquivo em linux que permite transformar o computador em um equipamento wireless, podendo funcionar como um ponto de acesso (para isso é necessário configurar alguns parâmetros de roteamento) ou como uma bridge, conforme apresentado nessa seção.

Antes de realizar essa configuração são necessários alguns conhecimentos prévios do computador e da rede onde será utilizado o equipamento. No exemplo abaixo, utilizo um modem-roteador como servidor DHCP e um switch, sendo criada uma rede local com endereço 192.168.1.0/24.

O computador Intelbras i434 possui duas interfaces de rede, sendo uma cabeada (eth0) e uma sem fio (wlan0). O computador se conecta na rede 192.168.1.0/24 pela interface eth0. Já os equipamentos sem fio se conectam pela interface wlan0. Para que um dispositivo da rede sem fio tenha acesso a rede é necessário realizar uma comutação entre as interfaces wlan0 e eth0. Como o objetivo é que todos os dispositivos fiquem conectados na rede local, é possível criar uma interface de brigde (br0) no computador. Nessa situação, todos os pacotes IP serão repassados pelas interfaces wlan0 e eth0, sendo realizados apenas os processamentos em função dos endereços físicos.

1) Criando uma interface bridge (br0):

Digite no terminal:

ifconfig eth0 up

ifconfig wlan0 up

brctl addbr br0

brctl addif br0 eth0 wlan0

ip link set br0 up

obs.: inicialmente são ligadas as interface de rede eth0 e wlan0. Na sequência é adicionada a bridge br0 no sistema e interligadas as eth0 e wlan0 na bridge br0. Para verificar se a bridge foi criada digite brctl show no terminal, onde o endereço físico da brigde corresponde ao endereço MAC da interface wlan0.

2) Recebendo um endereço IP na bridge br0:

Digite no terminal:

dhcpcd br0

obs.: a bridge deverá receber um endereço IP da rede local. Nesse mesmo comando é adicionada uma linha na tabela de roteamento do computador, onde a rota padrão (default) será correspondente a interface br0, sendo possĩvel verificar a tabela pelo comando route via terminal.

3) Configurando o arquivo hostapd:

O arquivo hostapd está disponível no diretório /etc/hostapd/hostapd.conf. Utilize um editor de texto e adicione os seguintes parâmetros no arquivo.

interface=wlan0

bridge=br0

driver=nl80211

logger_syslog=-1

logger_syslog_level=2

logger_stdout=-1

logger_stdout_level=2

dump_file=/tmp/hostapd.dump

ctrl_interface=/var/run/hostapd

ctrl_interface_group=0

ssid=minharede

hw_mode=g

channel=6

beacon_int=100

dtim_period=2

max_num_sta=255

rts_threshold=2347

fragm_threshold=2346

macaddr_acl=0

auth_algs=3

ignore_broadcast_ssid=0

eapol_key_index_workaround=0

eap_server=0

own_ip_addr=127.0.0.1

wpa=2

wpa_passphrase=********

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

obs.: O nome da rede local é indicado pelo parâmetro ssid, o modo de funcionamento a/b/g pelo parâmetro hw_mode, o canal pelo parâmetro channel. Para configurar a segurança da rede foi utilizado os parâmetros wpa=2 e a senha da rede no parâmetro wpa_passphrase. Se algum dispositivo ficar intermitente na rede, recomento diminuir o parâmetro beacon_int (o valor padrão é 100) para aumentar a frequência de envio de pacotes de sincronismos entre o computador e o dispositivo conectado.

Para iniciar o serviço digite no terminal:

/etc/rc.d/rc.hostapd start

Para encerrar digite:

/etc/rc.d/rc.hostapd stop

4) Automatizando o processo:

Para automatizar o processo é possível criar um script em bash com os seguintes parâmetros:

ifconfig eth0 up

ifconfig wlan0 up

brctl addbr br0

brctl addif br0 eth0 wlan0

ip link set br0 up

dhcpcd br0

/etc/rc.d/rc.hostapd start