• Nenhum resultado encontrado

Para as placas que não possuem um driver nativo, você pode utilizar o Ndiswrapper, que permite ativar a placa utilizando o driver do Windows XP Ele utiliza parte do código do Wine,

No documento Redes Linux (páginas 86-98)

Capítulo 2: Configurando a rede

3- Para as placas que não possuem um driver nativo, você pode utilizar o Ndiswrapper, que permite ativar a placa utilizando o driver do Windows XP Ele utiliza parte do código do Wine,

adaptado para trabalhar com drivers de placas wireless, ao invés de executáveis de programas. A página oficial é a http://sourceforge.net/projects/ndiswrapper/.

Ele vem pré-instalado na maioria das distribuições modernas. No Ubuntu (Breezy ou Dapper), ele não é instalado por padrão, mas faz parte do CD de instalação, de forma que você não precisa estar conectado para instalar:

$ sudo apt-get install ndiswrapper-utils

Para usar o Ndiswrapper, você precisa ter em mãos o driver da placa para Windows XP, que pode ser encontrado no CD de instalação ou no site do fabricante. Comece descompactando o arquivo do driver (caso necessário); para carregar o arquivo do driver, rode o comando "ndiswrapper -i" (como root), seguido do caminho completo para o arquivo, como em:

# ndiswrapper -i /mnt/hda6/Driver/WinXP/GPLUS.inf Com o driver carregado, ative o módulo com o comando: # modprobe ndiswrapper

Se tudo estiver ok, o led da placa acenderá, indicando que ela está ativa. As placas ativadas através do Ndiswrapper são sempre detectadas como "wlan0", independentemente do driver usado. Com a placa ativa, falta apenas configurar os parâmetros da rede wireless, usando os mesmos passos que vimos anteriormente.

No Kurumin, você pode usar o script de configuração disponível na aba "Ndiswrapper", do painel de configuração de placas wireless. Ele automatiza o processo de configuração, pedindo que você indique a localização do driver Windows e, em seguida, forneça a configuração da rede:

No Ubuntu, a melhor opção de interface gráfica de configuração é o "ndisgtk", que você pode instalar via apt-get:

$ sudo apt-get install ndisgtk

Depois de instalado, será incluído o ícone "Windows Wireless Drivers" no menu "Sistema > Administração". Ele é bem simples de usar: clique no "install new driver", indique o driver Windows que será carregado. Clicando no "Configure Network" você abre o network-admin, onde pode configurar os parâmetros da rede:

Muitos drivers que funcionam através do Ndiswrapper trabalham com um conjunto limitado de recursos. Em alguns casos, recursos como o monitoramento da qualidade do sinal, configuração da potência do transmissor, WPA ou mesmo o WEP de 128 bits não são suportados, embora os recursos básicos da placa funcionem perfeitamente. As placas ativadas através do Ndiswrapper também não funcionam em conjunto com o Kismet ou outros softwares similares, que colocam a placa em modo monitor. Sempre que for comprar, procure diretamente uma placa com drivers nativos, deixe para utilizar o Ndiswrapper como último recurso.

Configurando a rede wireless manualmente

Assim como no caso das redes cabeadas, você também pode configurar a rede wireless manualmente nos clientes Linux. Conhecer estes comandos é interessante não apenas para solucionar problemas, mas também para poder desenvolver pequenos scripts de configuração.

Para detectar os pontos de acesso disponíveis (a partir do cliente), use o comando: # iwlist wlan0 scan

Lembre-se de que, dependendo do driver usado, o dispositivo de rede usado será diferente. Ao utilizar o driver para placas Intel IPW2200 ou ADM8211, por exemplo, a placa wireless será vista pelo sistema como "eth0" (ou eth1) e não como "wlan0", que seria o mais comum. Para que o comando funcione, é preciso que a placa esteja ativada. Caso necessário, antes de executá-lo, use o comando:

# ifconfig wlan0 up

Se você estiver dentro do alcance de algum ponto de acesso, o iwlist lhe retorna um relatório como este:

wlan0 Scan completed :

Cell 01 - Address: 00:51:56:81:81:01 ESSID:""

Mode:Master Channel:11

Quality:22 Signal level:0 Noise level:0 Encryption key:on

Bit Rate:11Mb/s

Nesse caso, temos um ponto de acesso dentro da área de alcance. Falta apenas configurar a placa para se conectar a ele. Veja que este ponto de acesso está com a encriptação ativa (Encryption key:on) e não está divulgando seu ESSID (ESSID:""). Este é um exemplo de configuração de um ponto de acesso não público, onde é necessário saber ambas as informações para se conectar à rede.

Na ilustração, temos um exemplo de resultado ao escanear uma rede pública. Neste caso, o serviço de acesso oferecido em um aeroporto, onde o objetivo é permitir que os clientes se conectem da forma mais simples possível.

Veja que neste caso estão disponíveis dois pontos de acesso, ambos usam o ESSID "vex" e ambos estão com a encriptação de dados desativada (Encryption key:off). Por usarem o mesmo ESSID, eles fazem parte da mesma rede, por isso você não precisa especificar em qual deles quer se conectar. Basta configurar a rede wireless e, em seguida, obter a configuração da rede via DHCP.

Em outros casos, pode haver mais de uma operadora oferecendo acesso no mesmo local, ou mesmo outros pontos de acesso de particulares, que intencionalmente ou não estejam com a encriptação desativada, oferecendo acesso público. Nesse caso, você escolhe em qual rede quer se conectar especificando o ESSID correto na configuração da rede.

É comum também que os pontos de acesso sejam configurados para usar um canal específico. Neste caso, ao rodar o "iwlist wlan0 scan" você verá também uma linha "channel=x", onde o x indica o número do canal, que também precisa ser especificado na configuração da rede.

Tome cuidado ao se conectar a pontos de acesso público. Com a encriptação desativada, todos os dados transmitidos através da rede podem ser capturados com muita facilidade por qualquer um dentro da área de alcance. Lembre-se de que o alcance de uma rede wireless cresce de acordo com a potência da antena usada no cliente. Com uma antena de alto ganho, é possível se conectar a um ponto de acesso a 500 metros de distância, ou até mais, caso não exista nenhum tipo de obstáculo pelo caminho.

Sempre que precisar transferir arquivos, use um protocolo que transmita os dados de forma encriptada (como o SSH). Jamais dê upload de arquivos para o servidor do seu site via FTP. Acesse e-mails apenas em servidores que oferecem suporte a pop3 com SSL. Não acesse páginas de bancos, pois a encriptação usada nos navegadores pode ser quebrada com uma relativa facilidade e obter senhas bancárias é o tipo de situação em que o trabalho necessário vale a pena.

Voltando à configuração, o primeiro passo é definir o SSID da rede, usando o comando "iwconfig", como em:

# iwconfig wlan0 essid casa

Lembre-se sempre de verificar qual é o dispositivo usado pela sua placa de rede wireless, ele varia de acordo com o driver usado (a placa pode ser vista pelo sistema como wlan0, ath0 ou mesmo eth0). Você pode verificar isso rapidamente rodando o comando ifconfig.

Caso você tenha configurado o ponto de acesso para utilizar um canal específico, configure a placa para utilizá-lo com o comando:

# iwconfig wlan0 channel 10

Caso você tenha ativado a encriptação via WEP no ponto de acesso, é necessário especificar também a chave. Ao usar caracteres hexadecimais, a chave terá 10 dígitos (123456789A no exemplo) e o comando será:

# iwconfig wlan0 key restricted 123456789A

Se a chave for em ASCII, onde cada caracter equivale a 8 bits, a chave terá apenas 5 dígitos (qwert no exemplo) e o comando será:

# iwconfig wlan0 key restricted s:qwert

Veja que ao usar uma chave em ASCII você precisa adicionar o "s:" antes da chave. Ao configurar o ponto de acesso para usar uma chave de 128 bits, a chave terá 26 dígitos em hexa ou 13 em ACSII. Depois de terminar a configuração inicial, você pode ativar a interface com o comando:

# ifconfig wlan0 up

O último passo é configurar os endereços da rede, como você faria em uma placa convencional. Se você se empolgou e quer ir adiante, configurando também a rede manualmente, use os comandos que vimos há pouco:

# ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 # route del default

# route add default gw 192.168.0.1 dev wlan0

Se preferir configurar a rede via DHCP, rode o comando: # dhcpcd wlan0

Algumas distribuições (como o Knoppix e o Kurumin) usam o pump no lugar do dhcpcd. Neste caso, o comando fica:

# pump -i wlan0

Não se esqueça de configurar também os endereços dos servidores DNS no arquivo "/etc/resolv.conf".

Com a rede funcionando, você pode monitorar a qualidade do link, a taxa de transmissão de dados, o tipo de encriptação, as informações sobre o ponto de acesso, entre outros detalhes da conexão usando o "wavemon", um pequeno utilitário incluído na maioria das distribuições.

Depois de fazer a configuração inicial, você pode criar um pequeno script, contendo os comandos de configuração, de forma que não precise ficar executando-os cada vez que desligar o micro ou precisar se reassociar ao ponto de acesso. Crie um arquivo de texto, como, por exemplo "/home/kurumin/wireless". Dentro dele vão os comandos, um por linha, como em:

#!/bin/sh

iwconfig wlan0 essid casa iwconfig wlan0 channel 10

iwconfig wlan0 key restricted 1234567890 ifconfig wlan0 up

ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 route del default

route add default wlan0

Transforme o arquivo em um executável com o comando "chmod +x /home/kurumin/wireless" e execute-o (como root) sempre que quiser ativar a rede wireless. Você pode ter vários arquivos diferentes caso precise se conectar a várias redes com configurações diferentes. Outra opção é usar o wpa_supplicant, que oferece a vantagem de se associar automaticamente ao ponto de acesso, ao entrar dentro do alcance de qualquer uma das redes configuradas.

Se você usar ao mesmo tempo uma placa de rede cabeada e uma placa wireless e o acesso pela placa wireless ficar intermitente, com a configuração caindo poucos minutos depois de configurada a rede, experimente começar a desativar a placa cabeada ao configurar a rede wireless.

Esse é um problema freqüente, principalmente ao utilizar o ndiswrapper, mas felizmente fácil de resolver. Antes de configurar a placa wireless, desative a placa cabeada. Se a placa cabeada é a eth0, por exemplo, rode o comando:

# ifconfig eth0 down

Você pode adicionar o comando no seu script de configuração da rede, para que ele seja executado sempre antes dos comandos que configuram a placa wireless.

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:

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:

Ativando o wpa_supplicant no boot

Falta agora automatizar as coisas, fazendo com que o comando seja executado automaticamente durante o boot. Existem várias formas de fazer isso. Você poderia desde criar um ícone no desktop até adicionar o comando no final do arquivo "/etc/init.d/bootmisc.sh" ou "/etc/init.d/rc.local". Mas a solução mais correta é fazer com que o sistema estabeleça a conexão ao ativar as interfaces de rede.

Se você usa o Ubuntu, Kurumin ou qualquer outra distribuição derivada do Debian, abra o arquivo "/etc/network/interfaces". Adicione as duas linhas abaixo, contendo os parâmetros do wpa_supplicant, no final do arquivo. Note que agora adicionamos também a opção "w", específica para uso em scripts de inicialização:

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

Lembre-se de substituir o "wlan0" e "wext" pelos parâmetros corretos no seu caso. Para que fique tudo certo, o arquivo deve conter também uma seção com os endereços usados pela placa. Veja um exemplo de arquivo completo:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) auto lo wlan0

iface lo inet loopback iface wlan0 inet static address 192.168.1.56 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254

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

Como de praxe, ao usar esse exemplo como modelo, preste atenção para substituir todos os "wlan0" pela interface correta no seu caso e ajustar os endereços de acordo com a configuração da sua rede.

Caso você use o Fedora, Mandriva ou outra distribuição originária do Red Hat, abra o arquivo "/etc/sysconfig/network-scripts/ifup-wireless" e adicione a linha:

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

Crie o arquivo "/etc/sysconfig/network-scripts/ifdown-wireless", contendo a linha "killall wpa_supplicant" e transforme-o em executável:

# echo 'killall wpa_supplicant' > /etc/sysconfig/network-scripts/ifdown-wireless # chmod +x /etc/sysconfig/network-scripts/ifdown-wireless

O arquivo ifup-wireless é executado pelo Fedora ao ativar a placa de rede, enquanto o ifdown-wireless é executado ao desativá-la. Ao editar os dois arquivos, estamos fazendo com que os comandos do wpa_supplicant sejam executados corretamente nas duas situações.

Uma observação importante é que, ao ser configurado para rodar em background, o wpa_supplicant ficará o tempo todo tentando se conectar às redes wireless configuradas. Se você quiser se conectar a uma rede cabeada, deverá, além de configurar a rede, desativar o wpa_supplicant, usando o comando:

Opções avançadas

Um dos recursos mais interessantes do wpa_supplicant é a possibilidade de definir várias redes diferentes no arquivo de configuração. O wpa_supplicant passa, então, a testar cada uma delas periodicamente, conectando-se a que estiver disponível. Daí que surgiu o nome: supplicant significa, literalmente, "pedinte".

Neste caso, você deve especificar cada uma das redes no arquivo

No documento Redes Linux (páginas 86-98)