Primeiro vamos ver se a sua placa aceita ser configurada como ponto de acesso. Para isto precisamos do comando iw. Vamos aproveitar e instalar também o wireless-tools que permite verificar outras informações da rede sem fio.
$ sudo apt-get -y update
$ sudo apt-get install -i iw wireless-tools
$ sudo apt-get install -i hostapd
A terceira linha acima instala o hostapd. O site com a documentação oficial do hostapd pode ser visto clicando neste link. O hostapd é o programa no linux que cria um ponto de acesso sem fio compatível com o protocolo IEEE 802.11 que é utilizado pelos wifi.Então vamos fazer a verificação. O comando ifconfig mostra as interfaces.
$ ifconfig
eth0 Link encap:Ethernet Endereço de HW b0:aa:ab:ab:ac:03
UP BROADCAST MULTICAST MTU:1500 Métrica:1
pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACK RUNNING MTU:65536 Métrica:1
pacotes RX:9225 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:9225 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1
RX bytes:153959932 (153.9 MB) TX bytes:153959932 (153.9 MB)
wlan0 Link encap:Ethernet Endereço de HW b0:aa:ab:ab:ac:03
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
pacotes RX:196245 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:195998 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1000
RX bytes:286319091 (286.3 MB) TX bytes:23147473 (23.1 MB)
No nosso caso já conseguimos identificar a interface de rede que é wlan0. Você pode mandar listar um arquivo de sistema que mostra também informações de rede.$ cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 153959932 9225 0 0 0 0 0 0 153959932 9225 0 0 0 0 0 0
wlan0: 286319091 196245 0 0 0 0 0 0 23147473 195998 0 0 0 0 0 0
eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Que permite ver também as interfaces detectadas e criadas pelo linux.Agora que já sabemos o nome da interface podemos verificar se ela suporta funcionar como AP.
$ iw phy
Wiphy phy0
Band 1:
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
* P2P-client
* P2P-GO
* Unknown mode (11)
Usamos o comando iw para obter a informação mostrada acima. Notem que o comando iw retorna muito mais informação que a mostrada acima. De propósito retiramos diversas linhas para não ficar muito grande e para ficar mais fácil mostrar onde está a informação desejada. Como vemos em "Supported interface modes" que AP está listado, então sabemos que podemos utilizar nossa placa para criar um ponto de acesso. E se a saída de seu comando não mostra isto? Então você pode precisar instalar outro driver ou até mesmo trocar de placa.Vamos garantir que o NetworkManager não irá utilizar esta interface. Para isto é necessário alterar o arquivo /etc/NetworkManager/NetworkManager.conf e acrescentar as seguintes linhas:
[keyfile]
unmanaged-devices=mac:b0:aa:ab:ab:ac:03
Estas duas linhas indicam a seção do arquivo de configuração (que já pode existir no seu caso, confira antes de simplesmente inserir uma nova linha). A segunda linha indica para o NetworkManager que ele não deve controlar a interface com o endereço MAC indicado. Note que este endereço é indicado no comando ifconfig (veja a saída dele acima).Precisamos criar um arquivo de configuração básico. O local padrão para colocarmos este arquivo é em /etc/hostapd. Vamos ver como criar um ponto de acesso simples com autenticação WPA2-PSK, isto é, um ponto de acesso normal com a maior segurança atual e que usa uma senha para o usuário conectar. Você pode usar o seu editor favorito, lembrando que o arquivo deverá ser criado em /etc/hostapd com o nome hostapd.conf.
interface=wlan0
driver=nl80211
ignore_broadcast_ssid=0
hw_mode=g
channel=1
ssid=meussid
# habilita WPA PSK
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
wpa_passphrase=senhadecriptografia
wme_enabled=1
Os pontos que você deverá verificar estão marcados de outra cor no exemplo acima. Em rosa está o nome da sua interface, normalmente wlan0. Em vermelho é o nome da sua rede sem fio (aquela que suas estações irão ver para se conectar). E em azul é a senha, que você deverá alterar para conter o texto que você achar melhor. O canal indica qual a frequência que seu ponto de acesso irá atuar. Por exemplo, para 2.4GHz os canais no Brasil vão de 1 a 11. Escolha um destes.Veja se seu Ubuntu ao instalar o hostapd criou também o script de inicialização em /etc/init.d.
Se não criou, você precisar criar algo como mostrado abaixo. Use seu editor favorito, mas lembre que este diretório é acessado pelo root.
#!/bin/sh
### BEGIN INIT INFO
# Provides: hostapd
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Should-Start: $network
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Advanced IEEE 802.11 management daemon
# Description: Userspace IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP
# Authenticator
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON_SBIN=/usr/sbin/hostapd
DAEMON_DEFS=/etc/default/hostapd
DAEMON_CONF=
NAME=hostapd
DESC="advanced IEEE 802.11 management"
PIDFILE=/var/run/hostapd.pid
[ -x "$DAEMON_SBIN" ] || exit 0
[ -s "$DAEMON_DEFS" ] && . /etc/default/hostapd
[ -n "$DAEMON_CONF" ] || exit 0
DAEMON_OPTS="-B -P $PIDFILE $DAEMON_OPTS $DAEMON_CONF"
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --oknodo --quiet --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE" -- $DAEMON_OPTS >/dev/null
log_end_msg "$?"
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --oknodo --quiet --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE"
log_end_msg "$?"
;;
reload)
log_daemon_msg "Reloading $DESC" "$NAME"
start-stop-daemon --stop --signal HUP --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE"
log_end_msg "$?"
;;
restart|force-reload)
$0 stop
sleep 8
$0 start
;;
status)
status_of_proc "$DAEMON_SBIN" "$NAME"
exit $?
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|reload|status}" >&2
exit 1
;;
esac
exit 0
Rode service hostapd start para iniciar o AP.
Pronto as suas estações sem fio (notebook, celular, tablet, etc) já podem continuar.
Para que seu computador funcione como um AP completo ainda temos que fazer duas coisas:
- instalar e configurar um DHCP server, que fornecerá o endereço IP para suas estações
- instalar e configurar um firewall com NAT para permitir que as estações naveguem.
Nenhum comentário:
Postar um comentário