Olá Amigos, é comum pessoas me perguntarem como se faz para configurar uma rede sem fio em um computador sem interface gráfica, ou simplesmente em uma instalação enxuta do Debian ou Ubuntu que não traz em as ferramentas que automatizam tal processo. Enfim, as pessoas querem saber como fazer a coisa na mão.
Tendo em vista o objetivo descrito acima então vamos fazer uma série de procedimentos que nos permitirá detectar e conectar de forma manual e automática em redes sem fio sem criptografia habilitada ou com criptografias WEP ou WPA.
Pode parecer tolo o que vou esclarecer aqui mas como não sei o nível de conhecimento do usuário que irá ler este artigo, prefiro detalhar o máximo que puder, visto que detalhes nunca são demais.
Primeiro passo:
Verificar se a placa de rede foi detectada.
Verificar se a placa de rede foi detectada pode parecer um procedimento simples para alguns mas para muitos a coisa é mais complicada. Mas com a instalação de alguns pacotes e a simples conferência de alguns arquivos é possível detectar se a placa está instalada ou não.
Um pacote no debian chamado pciutils contém um binário chamado lspci que é capaz de listar todos os dispositivos não USB da máquina, desta forma temos como saber se o dispositivo foi reconhecido pelo sistema e também qual o modelo do chipset utilizado por cada dispositivo. Note que o fato de o dispositivo ser listado não significa que ele esteja funcional, simplesmente vai te permitir saber se o dispositivo foi reconhecido pelo kernel.
Acontecem casos de dispositivos não serem reconhecidos pelo kernel, dessa forma nem reza braba vai fazer teu dispositivo ser ativado, um exemplo disto é a placa de rede Attansic (chipset Atheros AR8132) que não é reconhecida pelo kernel 2.6.26-1-686. Para isso apenas dizemos que merdas acontecem e o procedimento “normal” é aguardamos o lançamento de um kernel mais atualizado.
O processo de instalação:
console# apt-get install pciutils
Após instalado execute:
console# lspci <ENTER>
Agora o resultado vai ser algo do tipo:
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)
03:00.0 Ethernet controller: Attansic Technology Corp. Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)
O que nos instessa é tudo o que tem Ethernet, como você pode notar nas duas últimas linhas acima, eu tenho um adaptador Attansic Ethernet e outro Atheros Wireless, isto já me permite presumir que caso não esteja funcinando basta encontrar o módulo na internet e instalá-lo que ele irá funcionar.
Ok, aqui nós já sabemos qual é o fabricante e o chipset de nossa placa de rede sem fio, agora vamos ver se ela está funcional.
A forma mais simples de fazer isso no debian é verificando se o cara responsável pelos dispositivos, chamado de udev, gerou alguma regra para essa placa. Toda vez que o UDEV reconhece um dispositivo, de rede no nosso caso, ele gera uma regra carregando o módulo correto para o funcionamento desse dispositivo.
Para verificar o arquivo executaremos o comando abaixo:
console# cat /etc/udev/rules.d/70-persistent-net.rules
O arquivo é o único que tem “net” no meio, não é difícil de achá-lo, o resultado desse comando é algo do tipo:
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0×168c:0×001c (ath5k_pci)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:24:2c:1a:4f:00″, ATTR{type}==”1″, KERNEL==”wlan*”, NAME=”wlan0″
# USB device 0×07a6:0×8511 (pegasus)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:14:d1:17:f1:f9″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
# PCI device 0×1969:0×1062 (atl1c)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:23:5a:88:07:bf”, ATTR{dev_id}==”0×0″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″
Aqui podemos ver todas as placas de rede reconhecidas na minha máquina e o ALIAS (nome) pelo qual elas responderão, no caso da placa de rede sem fio, podemos observar que ela é controlada pelo módulo ath5k_pci e que será chamada de wlan0.
Ótimo, agora já sabemos em qual nome a interface responde, no decorrer dos comandos a seguir utilizarei sempre o alias wlan0.
Obs.: Caso sua placa de rede sem fio não esteja funcional, busque na internet como resolver o problema.
Agora ja sabemos que sua placa está instalada e funcional, mas provavelmente ela está desabilitada, para habilitar vamos executar o seguinte comando:
console# ifconfig wlan0 up
Esse comando irá habilitar a placa de rede livre de configurações.
Vamos instalar o pacote que irá prover os programas de localicação e conexão com as redes sem fio. Para isso você precisa instalar o pacote wireless-tools.
console# apt-get install wireless-tools
Após instalado, o pacote vai gerar vários binários dentre eles os que mais nos importam são o iwlist e iwconfig.
O primeiro exemplo será de conexão com uma rede sem fio que não possui criptografia.
Para verificar as redes disponíveis:
console# iwlist wlan0 scan
O comando irá trazer algo como:
Cell 01 - Address: 00:1C:C5:09:58:2F
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=27/70 Signal level=-83 dBm
Encryption key:on
ESSID:”csconsolacao”
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s
Bit Rates:9 Mb/s; 18 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=00000246cd3ac43d
Extra: Last beacon: 880ms ago
IE: Unknown: 000C6373636F6E736F6C6163616F
IE: Unknown: 010882848B960C183048
IE: Unknown: 030106
IE: Unknown: 0706555320010B1B
IE: Unknown: 2A0100
IE: Unknown: 32041224606C
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Preauthentication Supported
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
IE: Unknown: DD0900037F01010008FF7F
IE: Unknown: DD1A00037F0301000000001CC509582F021CC509582F64002C010808
Cell 02 - Address: 00:4F:62:21:8C:06
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=30/70 Signal level=-80 dBm
Encryption key:off
ESSID:”Guestnet 1 andar D”
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=000000047d3801bd
Extra: Last beacon: 876ms ago
IE: Unknown: 001247756573746E6574203120616E6461722044
IE: Unknown: 010882848B960C121824
IE: Unknown: 030106
IE: Unknown: 050400010000
IE: Unknown: 2A0104
IE: Unknown: 32043048606C
IE: Unknown: DD0700E04C01020300
Cell 03 - Address: 00:4F:62:21:8C:EA
Channel:9
Frequency:2.452 GHz (Channel 9)
Quality=28/70 Signal level=-82 dBm
Encryption key:off
ESSID:”Guestnet 2 andar D”
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=000000047d367912
Extra: Last beacon: 644ms ago
IE: Unknown: 001247756573746E6574203220616E6461722044
IE: Unknown: 010882848B960C121824
IE: Unknown: 030109
IE: Unknown: 050400010000
IE: Unknown: 2A0104
IE: Unknown: 32043048606C
IE: Unknown: DD0700E04C01020300
Interpretando as linhas acima temos basicamente no lado direito o nome da célula localizada e uma numeração sequencial que parte do número 01, assim podemos subentender que se a última célula localizada é Cell 03, nosso comando encontrou 03 redes ao alcance de nossa antena. Logo ao lado da identificação da celúla temos o MAC address da placa de rede do Access Point/Roteador, e na quinta linha abaixo da identificação da celula temos o ESSID que contém o nome da rede.
Assim sendo se eu quero conectar na rede vou usar o seguinte comando:
console# iwconfig wlan0 essid “rede exemplo”
Pronto, isso nos fez conectar na rede, mas ainda não temos IP, para pegar o IP basta digitar:
console# dhclient wlan0 (se for rede que ofereça DHCP, caso contrário o processo de definição de IPS é o mesmo da rede ethernet)
Um breve resumo de comandos para conectar na rede:
console# ifconfig wlan0 up
console# iwlist wlan0 scan
console# iwconfig wlan0 essid “rede exemplo”
console# dhclient wlan0
Pronto em quatro comandos já estaremos navegando na rede sem fio, caso você vá conectar sempre na mesma rede, ou em uma rede que você já sabe o nome, não precisará do comando “iwlist wlan0 scan”.
Agora vamos para a conexão com uma rede sem fio que utiliza criptografia WEP, a mais fraca de todas.
console# iwconfig wlan0 essid “rede exemplo” key [1] 123teste456
Onde:
- key informa que você irá utilizar uma chave para conectar na rede (bem óbvio)
- [1] informa a posição da chave, em uma rede com criptografia WEP temos a opção de setar até 4 chaves, basta uma para conectar;
- 123teste456 é a senha de posição 1 da rede, esta chave pode ser obtida com o gerente da rede.
Pronto, simples assim, só adicionamos o campo key e conectamos em uma rede com protocolo WEP.
Agora vamos para o protocolo WPA (que não é suportado por padrão pelos binários do pacote wireless-tools).
Para que possamos trabalhar com criptografia WPA, precisaremos instalar um pacote chamado wpasupplicant que após instalado vai gerar um binário chamado wpa_supplicant.
console# apt-get install wpasupplicant
Agora vamos configurar um arquivo de configuração específico da rede que vamos utilizar que usa o protocolo WPA, sugiro que esse arquivo seja criado em /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf
O arquivo deverá conter os seguintes parâmetros dentro dele:
— inicio do arquivo /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf —
network={
ssid=”rede teste”
scan_ssid=1
key_mgmt=WPA-PSK
psk=”123teste456″
}
— fim do arquivo /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf —
Agora vamos explicar os campos do arquivo:
- ssid - nome da rede
- scan_ssid - verifica se a rede está ao alcance antes de conectar
- key-mgmt - o modulo que será utilizado pelo programa para gerenciar a autenticação da rede, em nosso caso o WPA-PSK, utilizado na maioria das redes sem fio que utilizam criptografia WPA.
- psk - aqui fica a senha da rede, a chave de acesso propriamente dita, busque essa chave com o administrador da rede.
Pronto agora que gravamos as informações de conexão da rede em um arquivo vamos conectar com na rede usando esse arquivo
console# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf &
Onde:
wpa_supplicant - nome do executável que irá conectar na rede;
-Dwext - Driver utilizado para conexão lógica com a rede, onde wext é um driver padrão linux;
-iwlan0 - Define a interface wlan0 para conexão com essa rede;
-c /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf - define o caminho do arquivo de configuração da rede sem fio;
& - coloca o serviço em plano de fundo, assim permite que o sistema fique rodando e libere o console para você.
Agora que conectamos na rede, basta adquirir IP
console# dhclient wlan0
Pronto já podemos navegar