Usando o wpa_supplicant

Embora as versões mais recentes do WEP, usadas nos pontos de acesso e placas atuais, sejam mais seguras que as primeiras versões, elas ainda podem ser facilmente quebradas, como veremos com mais detalhes no capítulo 4.

Embora não seja infalível, o WPA é um padrão mais seguro, por isso é o preferido em redes onde a segurança é um fator importante. Nem todas as placas são compatíveis com o WPA e, no Linux, existe um complicador adicional, que é o fato de alguns dos drivers não oferecerem suporte a ele, ainda que a placa originalmente suporte. Para usar o WPA em uma rede de médio ou grande porte, é preciso escolher com um certo cuidado quais placas e pontos de acesso usar.

Para conectar os clientes Linux à rede, usamos o wpa_supplicant. Algumas distribuições já incluem ferramentas de configuração para ele, mas vou descrever aqui o processo manual de configuração, que você pode usar para corrigir problemas ou quando não houver nenhuma ferramenta mais simples disponível.

Comece instalando o pacote wpa_supplicant” ou “wpasupplicant”. Nas distribuições derivadas do Debian, você pode instalá-lo via apt-get:

# apt-get install wpasupplicant

Uma dica é que, ao usar o Ubuntu você deve primeiro abrir o arquivo “/etc/apt/sources.list” e descomentar a linha referente ao repositório Universe, como em:

deb http://br.archive.ubuntu.com/ubuntu dapper universe

Depois de salvar o arquivo, rode o “apt-get update” e você poderá instalar o wpa_supplicant via apt-get, usando o mesmo comando do Debian. A partir do Ubuntu 6.6, ele já vem instalado por padrão.

No Fedora, instale-o usando o yum:

# yum install wpa_supplicant

O passo seguinte é criar o arquivo de configuração do wpa_supplicant, contendo o SSID e a senha da sua rede. É possível também criar uma configuração que permita conectar em várias redes diferentes, como veremos a seguir.

Rode o comando “wpa_passphrase” seguido do SSID da rede e a passphrase (a senha), como em:

$ wpa_passphrase minharede minhapassphrase

Ele retorna a configuração que deve ser incluída no arquivo, como em:

network={
ssid=”minharede”
#psk=”minhapassphrase”
psk=24b0d83ee1506019e87fcf1705525ca60abbd9b24ac5bedf183620d0a22ab924
}

Note que ele inclui duas linhas “psk”, onde vai a passphrase. A linha que está comentada contém sua passphrase real, enquanto a segunda contém um “hash” (verificador), que funciona da mesma forma, mas evita que você precise deixá-la disponível dentro do arquivo para qualquer um ver. Apague a linha comentada, deixando apenas a segunda linha, com o hash.

Agora edite (ou crie) o arquivo “/etc/wpa_supplicant.conf“, de forma que ele contenha apenas as linhas retornadas pelo comando. Você pode usar também o comando abaixo (como root), que já modifica automaticamente o arquivo, matando os dois coelhos com uma cajadada só:

# wpa_passphrase minharede minhapassphrase > /etc/wpa_supplicant.conf

Falta agora se conectar ao ponto de acesso. Uma ressalva importante é que, para usar o WPA em conjunto com o wpa_supplicant, o ponto de acesso deve estar configurado com a opção “Broadcast SSID” ativada. Caso contrário, o wpa_supplicant não consegue encontrar o ponto de acesso e não estabelece a conexão. Verifique e, caso necessário, altere a configuração do AP:

Agora vem o comando que ativa o wpa_supplicant, especificando a placa de rede que será usada, o arquivo de configuração que acabamos de criar e o driver que será usado:

# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -d -D wext

O “wlan0” indica a sua placa wireless, lembre-se de verificar qual é o dispositivo correto no seu caso. O “wext”, por sua vez, indica o driver que será usado pelo wpa_supplicant. As possibilidades aqui são as seguintes:

wext: Este é um driver genérico, que dá suporte à maioria das placas. Ele está se tornando a opção “default”, com a incorporação de cada vez mais drivers, que antes eram separados. Nas versões recentes ele incorpora também suporte às placas ativadas através do ndiswrapper (usando o driver do Windows) e também às placas IPW2200.

ndiswrapper: Este é o driver para placas ativadas através do ndiswrapper, que, nas versões recentes, foi incorporado ao wext. Note que muitas placas funcionam perfeitamente no Ndiswrapper em redes sem encriptação ou WEP, mas ficam instáveis ao usar o WPA, justamente porque ele utiliza mais camadas e por isso tem uma possibilidade maior de apresentar problemas diversos.

ipw: Driver para as placas com os chipsets Intel IPW2100 e IPW2200, usadas nos notebooks Intel Centrino. Assim como no caso do ndiswrapper, o driver foi incorporado ao wext nas versões recentes. De qualquer forma, o driver antigo continua disponível e você pode experimentar ambos caso esteja tendo problemas para ativar a placa.

madwifi: Este é o driver para placas com chipset Atheros, utilizadas (por exemplo) em alguns notebooks Toshiba.

broadcom: Este é o driver nativo para as placas com chipset Broadcom, desenvolvido via engenharia reversa. Estas placas podem ser configuradas também através do Ndiswrapper. Cheque a forma como a placa está configurada no seu micro.

prism54, hermes e atmel: Estes três drivers são os mais incomuns, usados (respectivamente) pelas placas com chipset Prism (em suas várias versões), Hermes, Hermes II e Atmel.

Se você estivesse usando uma placa Atheros, reconhecida pelo sistema como ath0, por exemplo, o comando seria:

# wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf -d -D madwifi

Por causa da opção “-d” que incluímos no comando, ele roda em modo verbose, onde são mostrados detalhes sobre a conexão com o ponto de acesso. Este modo é interessante para descobrir problemas.

Se a conexão for bem-sucedida, você terá (depois de uma rápida sucessão de mensagens), algo como:

State: GROUP_HANDSHAKE -> COMPLETED
CTRL-EVENT-CONNECTED – Connection to 00:50:50:81:81:01 completed (auth)
EAPOL: External notification – portValid=1
EAPOL: External notification – EAP success=1
EAPOL: SUPP_PAE entering state AUTHENTICATING
EAPOL: SUPP_BE entering state SUCCESS
EAP: EAP entering state DISABLED
EAPOL: SUPP_PAE entering state AUTHENTICATED
EAPOL: SUPP_BE entering state IDLE
EAPOL: startWhen –> 0

Estas mensagens indicam que ele se conectou ao ponto de acesso com o endereço MAC “00:50:50:81:81:01” e que a conexão está disponível para transmitir dados.

A partir daí, você precisa apenas configurar os parâmetros da rede (IP, máscara, gateway e DNS) usando a ferramenta apropriada para que a conexão fique disponível. No Kurumin e em outras distribuições derivadas do Knoppix você pode usar o “netcardconfig”, no Fedora pode usar o “system-config-network”, no Ubuntu pode usar o “network-admin” (o “Configurar rede no Menu”), no Slackware pode usar o “netconfig” e assim por diante.

Se, por outro lado, você receber mensagens como:

Scan results: 0
Selecting BSS from priority group 0
No suitable AP found.
Setting scan request: 5 sec 0 usec
Starting AP scan (broadcast SSID)
Wireless event: cmd=0x8b1a len=8

ou:

Setting scan request: 1 sec 0 usec
Starting AP scan (broadcast SSID)
Wireless event: cmd=0x8b19 len=8
ioctl[SIOCGIWSCAN]: Resource temporarily unavailable
Scan results: -1
Failed to get scan results
Failed to get scan results – try scanning again

… significa que a conexão não foi estabelecida. Pode ser que o ponto de acesso esteja configurado para não divulgar o SSID, que o seu notebook está muito longe do ponto de acesso, fora da área de alcance ou mesmo que a antena do notebook está desativada.

No caso da segunda mensagem, é provável que o driver indicado na linha de comando esteja incorreto ou que não suporte o WPA. Este é o caso de muitas placas configuradas através do Ndiswrapper (por exemplo) ou casos em que você tenta usar o driver “wext” em uma placa que possui um driver específico, como as placas Atheros (madwifi).

Depois de testar e ver que a conexão está funcionando corretamente, você pode passar a usar o comando abaixo, trocando o “-d” por “-B”. Isso faz com que o wpa_supplicant rode em modo daemon, sem bloquear o terminal nem mostrar mensagens na tela:

# wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -B -D wext

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X