Sugiro clicar na versão mais atualizada do
hostapd, depois em
"hostapd.tar.gz".
Na linha de comando, sem ser superusuário, no diretório em que o
hostapd foi baixado:
tar -zvxf hostapd.tar.gz
Posteriormente, depois de descompactado, clicar em "hostapd-<versão mais nova>.tar.gz" e salve-o no diretório criado a partir da
descompactação, o
hostapd/. A partir deste diretório, como superusuário, façamos:
# ./hostapd.SlackBuild
Depois é só instalar o arquivo criado, com
installpkg, por exemplo. No meu caso, teremos:
# installpkg /tmp/hostapd-0.6.10-x86_64-1_SBo.tgz
Configurando o hostapd
Com a instalação, é criado o diretório
/etc/hostapd/ que contém arquivos para configuração. Há um arquivo no qual encontramos
configurações genéricas, o "hostapd.conf", mas que possui 1025 linhas, o que torna sua manipulação pouco plausível.
Isto pois, na eventualidade da ocorrência de erros (e eles ocorrerão), será demorada sua alteração. A sugestão da
Carla e dos outros autores, como
André e
Ademar Arvati Filho é
modificar o nome do arquivo em questão e criar outro "hostapd.conf":
# cd /etc/hostapd/
# mv hostapd.conf hostapd.conf.orig
# vi hostapd.conf
Sim, gosto de editar com o
Vi (cada um com suas excentricidades). Se escolheram este editor, lembrá-los-ei do básico:
Clicar uma vez na tecla "Insert" |
Entra com caracteres. |
Clicar outra vez na tecla "Insert" |
Entra com caracteres sobrescrevendo-os. |
Tecla "ESC" |
Sai da função de edição e vai para a dos comandos. |
:wq |
Salva o arquivo e sai do editor. |
:q! |
Sai do editor sem salvar. |
Dadas as características da wlan0 e do sistema, o meu "hostapd.conf" ficou deste jeito:
interface=wlan0
driver=nl80211
ssid=quasar
hw_mode=g
channel=13
wpa=3
wpa_psk=e7d6ab5d58eb6cea975fed6d0c717a6f0de6e96db65f8d11abe80530694bfe90
#wpa_psk_file=/etc/hostapd/hostapd.wpa_psk
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP
rsn_pairwise=CCMP TKIP
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
auth_algs=1#
A interface que eu escolhi foi a wlan0, como havia dito. O driver para a wlan0 foi o "nl80211". Como descobri? Tentativa e erro, dentro do rol
apresentado pelo agora "hostapd.conf.orig".
Pertencem a este rol, na atual versão do
hostapd, os seguintes drivers:
- hostap
- wired
- madwifi
- prism54
- test
- none
- nl80211
- bsd
Com o citado comando
hwinfo já utilizado, pode-se obter as informações
necessárias para configurar
hw_mode, channel e
WPA. Como sugerem
Carla e
André, utiliza-se o comando
wpa_passphrase para a geração de chaves criptografadas de 256 bits para senhas de texto simples.
Por exemplo, num SSID de nome "quasar" com uma senha "nerdhijodeunamadre", teremos:
# wpa_passphrase "quasar" "nerdhijodeunamadre"
network={
ssid="quasar"
#psk="nerdhijodeunamadre"
psk=e7d6ab5d58eb6cea975fed6d0c717a6f0de6e96db65f8d11abe80530694bfe90
}
De uma forma mais sofisticada, haveria, em vez de deixar uma chave genérica para todos os clientes da rede, como associar cada endereço MAC
destes clientes a uma chave. Desta maneira, apenas as máquinas cadastradas teriam acesso à rede.
Esta tabela estaria no arquivo
/etc/hostapd/hostapd.wpa_psk, que não foi utilizado por mim. Em termos de segurança é uma boa forma
de tornar a rede mais robusta. O
artigo de Carla,
que enfoca mais a questão de segurança deste sistema, ilustra bem como fazê-lo.
As opções referentes a "wpa_key_mgmt", "wpa_pairwise" e "rsn_pairwise" estão relacionados ao sistema de criptografia que se quer adotar e que
são suportados pela placa. São muito bem explanados nos artigos citados.
Diferentemente da sugestão de alguns autores de se utilizar uma ponte (bridge) e configurá-la no "hostapd.conf", isto não foi adotado aqui em
virtude da inviabilidade de se adicionar duas placas de rede sem fio na ponte. Eu não consegui, e alguns comentários em fóruns internacionais
desencorajaram-me neste sentido. Aceito opiniões a respeito.
Devidamente configurado o
hostapd, se tudo tiver dado certo até o
momento, poderemos ativar o roteador virtual desta forma:
# hostapd -dd /etc/hostapd/hostapd.conf
Então, será que neste instante devemos esperar o compartilhamento de conexão? Veja que, se utilizarmo-nos de um cliente, seja um tablet ou outro
PC, iremos verificar a existência de uma rede sem fio de nome "quasar" (caso tenhamos usado o arquivo acima).
Neste caso, ficamos tentados a simplesmente escolher esta rede no cliente, colocar a senha e esperar. Eis que percebemos que o cliente não
consegue adquirir seu endereço IP. Resolveremos isto.
Vamos forçar um endereço IP para o roteador virtual. Lembremos que utilizamos a wlan0 como placa de rede que enviará o sinal para o ambiente
interno e, portanto, é justamente esta que terá que receber o IP do nosso pseudorroteador:
# ifconfig wlan0 192.168.44.1 netmask 255.255.255.0
Agora, podemos passar para as regras de
Firewall.