Configurando cliente na rede wireless com criptografia WPA - Debian

Aprenda a virar um cliente de uma rede com criptografia WPA.

[ Hits: 28.298 ]

Por: Rafael Henrique da Silva Correia em 29/04/2008 | Blog: http://abraseucodigo.com.br


Vamos lá...



Há um tempinho aqui na minha faculdade, estava tranquilamente usando o meu notebook com Debian, conectando a wireless sem criptografia e que distribuía dhcp pelo servidor, até que a galera daqui resolveu mudar as configurações e o roteador wireless passou a ter criptografia. Eles começaram a usar WPA, pra quem não conhece é um tipo de criptografia wireless muito conhecida (não inquebrável, como todas as coisas, porém muito boa).

Fazendo a coisa toda funcionar...

Passo 1:

Seu dispositivo wireless já tem que estar funcionando, pois este tutorial não visa ensinar a configurar dispositivos, mas sim botá-los pra funcionar com criptografia WPA.

Passo 2: (comando a executar como root = #)

Existe um comando muito bom no Linux que garanto que a maioria conhece, mas pra quem não conhece é bico de se testar, se você está em dúvida se existe um access point (vou escrever access point como AP) perto de você para listar os APs disponíveis, use o comando:

# iwconfig wlan0 scan

Onde wlan0 será sua interface wireless, podendo modificar tanto de nome como de número (caso exista mais de um dispositivo wireless). Para saber que dispositivos wireless você tem no momento use o comando:

# ifconfig

Passo 3:

Temos que gerar a chave WPA para nos conectarmos ao AP. Para isso instalamos o pacote wpasupplicant:

# apt-get install wpasupplicant

ou

# aptitude install wpasupplicant

Feito isso execute o seguinte comando:

# wpa_passphrase <Ssid> <senha>

Onde Ssid tem que ser substituído pelo ESSID mostrado no comando:

# iwlist wlan0 scan

Exemplo:

wlan0  Scan completed :
       Cell 01 - Address: 00:12:A9:06:40:5B
          ESSID:"3Com"
          Protocol:IEEE 802.11g
          Mode:Managed
          Frequency:2.412 GHz (Channel 1)
          Quality:15/100  Signal level:-86 dBm  Noise level:-96 dBm
          Encryption key:on
          Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 11 Mb/s
             12 Mb/s; 24 Mb/s; 36 Mb/s
          Extra:bcn_int=100
          Extra:atim=0
          IE: WPA Version 1
             Group Cipher : CCMP
             Pairwise Ciphers (1) : CCMP
             Authentication Suites (1) : PSK

# wpa_passphrase "3Com" 12345678
network={
    ssid="3Com"
    #psk="12345678"
    psk=ada307b24bb72fdf49732cb954b1cef25365c106d2257fdb43df5cc1c49ae559
}

Agora observem uma coisa, neste comando o wpa_passphrase gera uma saída que tem que ser redirecionada para um arquivo de configuração, que é o arquivo que vai ser lido por outro comando para que possamos conectar.

Portanto no meu caso, pra ficar bonitinho, eu chamei o arquivo de wpa_supplicant.conf e mandei ele lá no diretório /etc, ficando da seguinte forma:

# wpa_passphrase "3Com" 12345678 > /etc/wpa_supplicant.conf

Mais um alerta! Se você não quiser que os outros vejam qual a senha da sua rede, apague a linha comentada #psk, que no meu exemplo é esta linha:

#psk="12345678"

Passo 4:

Como me conectar por dhcp nesse AP?
Simples, rápido e eficiente :-)...

O comando para fazer a coisa funcionar é o wpa_supplicant! Aí a linha que eu costumo usar aqui é essa:

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

O comando wpa_supplicant faz a mágica baseada em um driver! Eu uso o ndiswrapper para usar meu dispositivo wireless, usei o driver wext do wpa_supplicant e ficou perfeito! Roubando uma dica do Carlos Morimoto:
  • ndiswrapper: Indique este driver ao ativar a placa de rede usando o Ndiswrapper, usando o driver do Windows. Note que muitas placas funcionam perfeitamente no Ndiswrapper em redes sem encriptação ou WEP, mas ficam instáveis ao usar o WPA, justamente por que ele utiliza mais camadas e por isso tem uma possibilidade maior de apresentar problemas diversos.
  • wext: Este é um driver genérico, que dá suporte a muitas das placas que possuem drivers nativos. Se a sua placa não possui um driver específico (cheque os abaixo), é bem provável que funcione com ele. Em geral, as placas IPW 2200 funcionam melhor com o wext do que com o driver "ipw". Experimente as duas opções caso esteja tendo problemas com sua placa.
  • madwifi: O driver para placas com chipset Atheros, como a que estou usando no exemplo.
  • 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 está configurada no seu micro.
  • ipw: Placas com os chipsets Intel IPW2100 e IPW2200, usadas nos notebooks Intel Centrino.
  • 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 e Hermes II (da Agere) e Atmel.

Porém no meu caso eu uso o ndiswrapper para "emular" meu driver wireless e no wpa_supplicant não posso usá-lo senão não consigo me conectar, a melhor solução é uma TESTE qual funciona com seu driver!

Quando aparecer uma resposta mais ou menos assim do comando:

Trying to associate with 00:12:a9:06:40:5b (SSID='3Com' freq=2412 MHz)
Associated with 00:12:a9:06:40:5b
WPA: Key negotiation completed with 00:12:a9:06:40:5b [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:12:a9:06:40:5b completed (auth) [id=0 id_str=]

Significa que está funfando!

Se aparecer algo do tipo:

Trying to associate with 00:12:a9:06:40:5b (SSID='3Com' freq=2412 MHz)
Association request to the driver failed
Authentication with 00:00:00:00:00:00 timed out.
Trying to associate with 00:12:a9:06:40:5b (SSID='3Com' freq=2412 MHz)
Association request to the driver failed

Significa que ainda não ta funcionando, mas não desista, insista, uma hora vai dar certo, com algum driver!

Agora depois temos que entrar na rede!

Para isso:

# dhclient wlan0

Aí pegamos um ip por DHCP! :-)

Se dermos um ifconfig e tiver um ip válido na interface wlan0 (lembrando que o nome pode ser diferente) significa que você ta conectado!!!

Passo 5:

Agora que fizemos o pc se conectar vamos fazer o seguinte, já pensaram em como fazer pra jogar estas configurações no /etc/network/interfaces?

* pra quem não sabe jogando as configurações neste arquivo seu ip sobe automático, sem precisar ficar digitando um monte de comandos.

Já né? Então aí vai:

# WIRELLES

auto wlan0
iface wlan0 inet dhcp
#iface wlan0 inet static
#       address x.x.x.x
#       netmask x.x.x.x
#       gateway x.x.x.x
#       broadcast x.x.x.x
#       network x.x.x.x


up wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -wB -D wext
down killall wpa_supplicant

Isso aí galera! Agora entendendo, o -wB é pra que o comando rode em plano de fundo (background), up significa que quando subir ele executará este comando e down significa que quando eu pedir para baixar a interface ele executará este comando, pra quem não sabe o killall mata processos de acordo com o nome passado, portanto se eu der um killall wpa_supplicant eu mato o comando que fez a interface subir, ai eu caio :-), perfeito né?

Aí coloquei uma configuração comentada pra quem quer usar ip estático na rede lembrando que temos que trocar o monte de x por números de ip válidos!

É isso aí galera desfrutem! Espero que gostem da dica!

Mais sobre WPA:
Mais sobre AP:
Roteador:
   

Páginas do artigo
   1. Vamos lá...
Outros artigos deste autor

Compilar kernel em distros baseadas em Debian

Usando HTTP autenticado no Apache

Problema resolvido: VMware Server 1.0.7 rodando no Debian Lenny Linux

Leitura recomendada

Modems no GNU/Linux

Instalação do modem Netodragon no Conectiva 10

Instalando Apache, PHP e PostgreSQL no Slackware 12 (compilando)

Instalando e configurando SNMP e MRTG no Linux

Configurando Ubuntu Linux 8.04 para autenticar no LDAP

  
Comentários
[1] Comentário enviado por kalib em 29/04/2008 - 17:38h

Show de bola cara..
Estou passando pelo mesmo dilema q vc..mas o meu ainda não consegui solucionar...
Não apenas colocaram uma proteção por criptografia... mas sim por certificado digital...
Colocam a disposição o certificado para download no site deles....
E ainda não consegui de forma alguma fazer isso rodar no linux..
Se alguém tiver algum palpite...fico grato. ;]

[2] Comentário enviado por Pilantra em 10/06/2008 - 18:04h

Cara, o tutorial mais perfeito que eu já vi sobre WPA. Parabéns. Não estava conseguindo fazer o meu funcionar, agora estou escrevendo esse comentário conectado pelo WPA hehehe.

Abraços.

[3] Comentário enviado por rafaelhenrique em 10/06/2008 - 22:54h

Que bom poder ajudar =)
Parabéns! Agora vc pode usar WPA!

[4] Comentário enviado por Flaviodbz em 29/08/2008 - 12:01h

Seu tutorial me ajudou muito kra bem passo a passo, porem esse parte do arquivo /etc/network/interfaces nao deu certo aki no ubuntu hardy heron estou procurando um jeito de automatizar isso ja que tenho que digitar os comandos wpa_supplicant e o dhclient

[5] Comentário enviado por Flaviodbz em 30/08/2008 - 17:13h

so faltou colocar para nao esquecer de pagar a linha #psk=12345 para nao descobrirem a senha da rede.

wpa_passphrase <Ssid> <senha> > /etc/wpa_supplicant.conf

Vou divulvar seu tutorial la no forum ubuntu blz

[6] Comentário enviado por rafaelhenrique em 30/08/2008 - 17:50h

Flaviodbz olhe leia melhor o tutorial....

"...Portanto no meu caso, pra ficar bonitinho, eu chamei o arquivo de wpa_supplicant.conf e mandei ele lá no diretório /etc, ficando da seguinte forma:

# wpa_passphrase "3Com" 12345678 > /etc/wpa_supplicant.conf ..."

Você falou que eu não tinha indicado o redirecionamento.

"...Mais um alerta! Se você não quiser que os outros vejam qual a senha da sua rede, apague a linha comentada #psk, que no meu exemplo é esta linha:

#psk="12345678" ..."

Foi citada a insegurança na linha da senha.

E sobre o /etc/network/interfaces, antigamente até a versão 7.04 que eu usava existia esta linha no Hardy Heron não sei se ainda existe, não estou usando mais o Ubuntu como antes, mas dê uma olhada no google deve ter algo a respeito....

E pode colocar o tutorial no fórum Ubuntu, creio que no Ubuntu ele também funcione de forma similar afinal o Ubuntu é baseado em Debian...

Flw Abraço

[7] Comentário enviado por albertguedes em 24/03/2009 - 17:56h

Rapaiz, não sabe como quebrou meu galho.

Até hoje usava WEP porque não sabia configurar WPA no linux, esse seu artigo me permitiu ter um pouco mais de segurança agora na minha pequena rede wifi.

Valeu mesmo cara.

[8] Comentário enviado por jaca69 em 12/05/2009 - 00:36h

A sequencia no arquivo interfaces não está invertida?
Primeiro ele está requisitando IP e depois carrega o driver.
Isto está certo?

[9] Comentário enviado por rafaelhenrique em 12/05/2009 - 07:48h

jaca69 estou usando o arquivo desta forma em meu notebook a mais de um ano, deu algum problema quando você configurou desta forma? Acredito eu que a ordem dos fatores não altera o resultado...

Abraço

[10] Comentário enviado por jaca69 em 13/05/2009 - 23:08h

Rafael.

REalmente funciona está sequencia, porém descobri que, linha:
up wpa_supplicant -i wlan0 -c /etc/wpa_supplica(...)
O correto é:
pre-up wpa_supplicant -i wlan0 -c /etc/wpa_supplica

Faltou o pre.

Falow.

[11] Comentário enviado por rafaelhenrique em 14/05/2009 - 00:29h

jaca69 tudo bem é uma opinião, mas porque eu teria q colocar o pre na frente ?? Pois da forma como está a linha está funcionando normalmente, qual seria a vantagem que eu teria em adicionar o pre?

Não quero discutir apenas estou querendo saber a vantagem pois isso talvez possa melhorar o funcionamento do wireless do meu notebook... pois estou usando sem o pre, somente com o up...

Flws abraço

[12] Comentário enviado por jaca69 em 15/05/2009 - 00:23h

Rafael,

Vou falar o que acontece em meu note.
Colocando a sequencia sem o pre na linha wpa_sup... o arquivo interfaces primeiros faz requisição do de IP para depois carregar o drives, ai na funciona.
Quando coloco o PRE primeiro é carregado o drive para depois fazer a requisição de IP.
Sem polemicas.

Seu artigo está muito bom, graça a ele comsegui elevar o nível de segurança em minha rede de casa.

Falow.
Jaca.

[13] Comentário enviado por rafaelhenrique em 15/05/2009 - 08:12h

Entendi jaca69 legal :D.. nunca tinha visto um problema parecido, agora se acontecer isso com alguém sei qual é a encrenca q dá!

Flwss e obrigado por contribuir com o tutorial, abraço


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts