As ferramentas que serão utilizadas neste artigo, passo a passo, para se conectar numa rede WiFi WPA/WPA2 são:
- wpa_supplicant
- É uma ferramenta para a placa wireless efetuar conexão a uma rede WPA/WPA2
- iw
- É uma ferramenta básica para questões relacionadas a redes WiFi, como por exemplo, encontrar nome do dispositivo WiFi, efetuar a procura por pontos de acesso.
- ip
- É uma ferramenta utilizada para habilitar ou desabilitar dispositivos e encontrar informações em geral de uma interface de rede
- ping
Os passos para conectar numa rede WPA/WPA2 pelo shell do Linux são:
- Encontre o nome do dispositivo wifi de seu computador que será utilizado para efetuar a conexão:
-
/sbin/iw dev phy#0 Interface wlan0 ifindex 3 type managed
- A saída do comando acima mostra que:
- o sistema tem uma placa WiFi física como phy#0.
- o nome do dispositivo é wlan0
- O modo de operação que o dispositvo wireless está, no caso, ‘managed’, que significa que o dispositivo é uma estação wifi ou cliente que conecta em um ponto de acesso wifi (access point)
- A saída do comando acima mostra que:
-
- Verifique se o dispositivo wifi está ativado
-
ip link show wlan0 3: wlan0: (BROADCAST,MULTICAST) mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000 link/ether 75:f4:33:01:cc:e5 brd ff:ff:ff:ff:ff:ff
- Procure pela palavra “UP” dentro do parenteses na resposta para ver se a interface está levantada. No exemplo acima, verificamos que a interface não está ativa
- Para ativar, basta: (necessário poderes de root)
- ip link set wlan0 up
- Executando novamente o comando ip link show wlan0, o resultado será:
-
ip link show wlan0 3: wlan0: (NO-CARRIER,BROADCAST,MULTICAST,UP) mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000 link/ether 75:f4:33:01:cc:e5 brd ff:ff:ff:ff:ff:ff
-
- Agora temos a palavra “UP” entre parenteses. O dispositivo está ativado.
-
- Verifique o status da conexão
- /sbin/iw wlan0 link
- A provável resposta é “Not connected” ou “Não conectado”.
- Isto demonstra que sua interface de rede wireless não está conectada a nenhuma rede no momento
- /sbin/iw wlan0 link
- Vamos efetuar a varredura para encontrar redes WiFi disponíveis:
- Execute o comando (necessário poderes de root)
- /sbin/iw wlan0 scan
- A saída retornada poderá variar muito. Existindo uma ou mais redes WiFi disponíveis, o detalhe importante no retorno deste comando é o SSID da rede e o protocolo de proteção / segurança da rede, que no caso deste tutorial é WPA/WPA2. No resultado deste comando, se o protocolo indicado for RSN, isto pode ser entendido como WPA2.
- Execute o comando (necessário poderes de root)
- Agora é hora de efetuarmos a conexão na rede WiFi de nosso interesse.
- Para isto, já confirmamos que o protocolo de segurança / proteção da rede é compatível com as ferramentas que estamos utilizando, no caso WPA / WPA2
- E já temos o nome da rede, que é o SSID da rede
- Com tudo isto em mãos, será necessário efetuar 2 passos para efetuar a conexão:
- Primeiro passo é gerar o arquivo de configuração para o wpa_supplicant que conterá o passphrase para a rede wifi (é necessário privilégio de root para efetuar os procedimentos abaixo)
- wpa_passphrase NOME_DA_REDE_SSID_AQUI >> /etc/wpa_supplicant.conf
- Será perguntado a senha da rede. Digite e aperte enter
- Terá sido criado ou adicionado os dados ao arquivo /etc/wpa_supplicant.conf
- cat /etc/wpa_supplicant.conf
- E será visto o conteúdo
- Estando tudo ok, vamos ao passo seguinte
- O segundo passo é executar o wpa_supplicant com este novo arquivo de configuração é executar o comando de conexão. Para isto, basta:
- wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf
- -B indica para o comando ser executado em background (segundo plano)
- -D indica o driver a ser utilizado, no caso o wext é um driver genérico
- -C indica o arquivo de configuração a ser utilizado
- -i indica qual interface de rede deve ser utilizado. Coloque o nome de sua interface de rede aqui
- wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf
- Primeiro passo é gerar o arquivo de configuração para o wpa_supplicant que conterá o passphrase para a rede wifi (é necessário privilégio de root para efetuar os procedimentos abaixo)
- Use o comando iw para verificar se você está conectado ao SSID informado
- sbin/iw wlan0 link
- Deverá aparecer uma resposta que contém
- Connected ou Conectado a rede MAC_ADDRESS_AQUI (on wlan0)
- SSID: Nome da sua rede
- E mais alguns outros dados
- Deverá aparecer uma resposta que contém
- sbin/iw wlan0 link
- Estando tudo ok, é necessário obter um ip. Basta executar o comando abaixo:
- dhclient wlan0
- Em seguida, pode ser verificado com o comando abaixo se um ip foi corretamente obtido:
- ip addr show wlan0
- inet ou inet6 ou ambos devem conter um valor válido de ip, inet sendo padrão IPv4 e inet6 no padrão IPv6
- ip addr show wlan0
- Adicionar regras de roteamento
- Verifique se sua tabela de roteamento indica a saída para a rede wifi, principalmente se esta for sua conexão com a internet. Neste caso, todas as saídas que não forem para sua rede local deveriam estar indo para a internet via seu saída via rede wifi.
- Execute o comando: (todos os comandos necessitam de poderes de root)
- ip route show
- Se a saída conter algo como:
- 192.168.25.0/24 dev wlan0 proto kernel scope link src 192.168.25.10
- Sendo 192.168.25.10 o seu ip, significa que apenas há o roteamento dos pacotes do seu computador para a rede local. Não há saída configurada para a internet.
- A regra acima apenas faz com que todos os pacotes destinados a rede 192.168.25.x sejam direcionados a wlan0. Será necessário adicionar então uma rota default, indicado pelo comando abaixo:
- ip route add default via 192.168.25.1 dev wlan0
- No caso, o ip 192.168.25.1 deve ser o ip do seu gateway (1, 253 e 254 são os valores mais comuns, mas pode ser qualquer valor válido na rede)
- Agora verifique sua tabela de roteamento
- ip route show
- Que deverá ter duas linhas relativos a sua interface de rede wireless, aqui no caso, wlan0
- default via 192.168.25.1 dev wlan0
- 192.168.25.0/24 dev wlan0 proto kernel scope link src 192.168.25.10
- Agora basta efetuar o ping numa conexão externa para saber se a ligação com a internet via rede wifi foi efetuada corretamente
- ping 8.8.8.8
E pronto!
O processo acima descrito é relativamente bem detalhado de todos os passos necessários para efetuar uma conexão WPA/WPA2 a uma rede wifi. Alguns passos podem ser ignorados na ocasião de uma nova conexão a um access point anteriormente configurado. Num caso como este, já será conhecido o WIFI SSID (nome da rede), e o arquivo de configuração já deverá estar corretamente criado. Portanto, os passos necessários são apenas aqueles que são referentes a efetuar a conexão em si.
O processo acima descrito deve ser utilizado conforme cada situação específica exigir.