Redes wireless no Linux

Visão geral:

O wpa-roaming é uma maneira de conectar-se e navegar por redes sem fio com ou sem ambiente gráfico.

O resultado das configurações a seguir é que se um cabo ethernet não estiver conectado, wlan0 toma a precedência e conecta você à rede sem fio desejada ou a uma rede aberta disponível ou, ainda, a uma rede sem fio pré-determinada. Entretanto, se você conectar um cabo ethernet, a conexão cabeada desabilita o acesso sem fio e, então, eth0 faz a conexão à rede com cabo. Se você voltar a desconectar o cabo, novamente a conexão sem fio será restabelecida instantaneamente.

A configuração da rede:

Como root adapte seu arquivo /etc/network/interfaces de forma que ele fique assim: (o nome da interface pode variar)

# The loopback network interface
auto lo
iface lo inet loopback

# Adicionado pelo usuário
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa-roam.conf

# Esta linha precisa estar sempre aqui
iface default inet dhcp

A seguir o wpa_supplicant precisa de um arquivo .conf, o wpa-roam.conf

cp /usr/share/doc/wpasupplicant/examples/wpa-roam.conf /etc/wpa_supplicant/wpa-roam.conf

Abra este arquivo com seu editor de texto:

nano /etc/wpa_supplicant/wpa-roam.conf

Descomente a linha 30 (retire o #). Se você não fizer isso, as configurações não serão salvas:

update_config=1

No caso de um laptop ou de um desktop que precisa apenas acessar uma rede segura imediatamente, descomente linhas, (remova o sinal #), para WEP ou WPA-WPA2PSK, conforme o caso:

Exemplo para WEP:

network={
ssid="debian" #Example WEP Network
key_mgmt=NONE
wep_key0=6162636465
wep_tx_keyidx=0
}

Exemplo para WPA:

network={
ssid="Linux_Worldwide" #Example WPA Network
psk="mysecretpassphrase"
}

O próximo passo é prevenir o wpa-roam.conf contra acessos indevidos. Isto é necessário, porque as senhas secretas das redes privadas são salvas nesse arquivo:

chmod 600 /etc/wpa_supplicant/wpa-roam.conf

Levante a conexão wireless:

ifup wlan0

Agora, confirme que você está conectado à rede:

wpa_cli status

A saída deve ser mais ou menos essa:

Selected interface 'wlan0'
bssid=94:0c:6d:aa:f4:42
ssid=Linux_RioBranco
id=3
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.1.102

Se você não puder ver números em ip_address=, você não está conectado; então, reveja suas configurações, mas primeiro pare wlan0:

wpa_action wlan0 stop

Se você precisar de configurações especiais, veja em “Como usar o arquivo wpa-roam.conf com configurações de rede especificadas manualmente”

Como possibilitar a troca entre redes com e sem fio:

Inicialmente, veja Como passar de cabo para wireless e vice-versa, porque se a configuração não estiver correta, nem conexão nem troca serão possíveis.

Como passar de cabo para wireless e vice-versa:

A maneira mais fácil de comutar entre uma conexão com fios e uma wireless é usando o daemon ifplugd.
Ajuste seu arquivo /etc/network/interfaces

O primeiro passo é assegurar-se de que a eth0 não está configurada:

ifdown eth0

Exemplo de uma interface operativa:

A configuração é simples: a interface com fios (aqui: eth0) não deve ser precedida de qualquer configuração do tipo “allow-hotplug” ou outras:

auto lo
iface lo inet loopback

# comandado pelo ifplugd ... não use allow-hotplug ou opções auto
iface eth0 inet dhcp

Então, reconfigure o ifplugd:

dpkg-reconfigure ifplugd

Especificações debconf para o ifplugd

Deixe interfaces estáticas livres:

 

Adicione sua interface com fios (aqui “eth0”) a “hotplugged interfaces”:

Obtenha ajuda para configurações personalizadas:

Aceite as configurações padrão; simplesmente pressione [OK]:

Diga ao ifplugd para parar antes de suspender; ele será reiniciado automaticamente:

Agora, seu computador está preparado para mover-se entre várias redes, inclusive sem fio.

Depois de montar o ifplugd, a configuração final deve se parecer com essa:

auto lo
iface lo inet loopback

# Comandado por ifplugd ... não use allow-hotplug ou opções automáticas
iface eth0 inet dhcp

# Adicionado pelo usuário
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa-roam.conf

# Esta linha precisa estar sempre aqui
iface default inet dhcp

Como usar o arquivo wpa-roam.conf com configurações de rede especificadas manualmente:

Com a ajuda de IDString e Priority, você pode direcionar a rede a qual seu computador deve se conectar ao ser ligado. A prioridade mais alta é 1000, a mais baixa é 0. Você também precisa adicionar id_str ao arquivo /etc/network/interfaces.
Sintaxe de /etc/network/interfaces

Primeiro vem a conexão aos servidores DHCP e, em seguida, verificamos se você possui um endereço IP fixo. Para ajustar seus parâmetros de configuração:

# id_str="home_dhcp"
iface home_dhcp inet dhcp

# nunca tire esta linha daqui
iface default inet dhcp

# id_str="home_static"
iface home_static inet static

address 192.168.0.20
netmask 255.255.255.0
network 192.168.0.0

broadcast 192.168.0.255
gateway 192.168.0.1

Exemplos práticos

Se você deseja conectar-se automaticamente à sua wlan quando estiver em casa, preencha IDString com “home” e priority com “15”. Se estiver viajando e quiser que seu laptop conecte-se a redes abertas (isto é, de graça e sem senhas), que estejam disponíveis, preencha IDString com “stalk” e priority com “1” (muito baixa). Mas, por favor, certifique-se da legalidade da conexão e disconecte-se caso ela obviamente não tiver a intenção de ser gratuita.

Exemplo de um arquivo /etc/network/interfaces:

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

# The loopback interface
# automatically added when upgrading
auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa-roam.conf

# esta linha deve necessariamente estar sempre aqui
iface default inet dhcp

iface home inet dhcp
iface stalk inet dhcp

Exemplo do arquivo /etc/wpa_supplicant/wpa-roam.conf (SSID e chaves foram mudados ou receberam explicações):

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="meu_ssid"
scan_ssid=1
psk=123ABC ##aqui fica a chave em código hexadecimal!!
# psk="senha_em_ascii" ##não necessária
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
auth_alg=OPEN
priority=15
id_str="home"
}

network={
ssid=""
scan_ssid=1
key_mgmt=NONE
auth_alg=OPEN
priority=1
disabled=1 ##nenhuma conexão automática; você precisa do wpa_cli ou wpa_gui
id_str="stalk"
}

Com “disabled=1” você não será conectado automaticamente a um bloco de rede definido (WLANs abertas). Você precisa de iniciar o ‘roaming’ pelo wpa_gui ou wpa_cli. Para que o ‘roaming’ seja automático, não use a opção de forma alguma ou comente a linha com a opção “disabled” (inserindo um # à sua esquerda).
Encriptação WEP

Se você deseja adicionar permanentemente redes com encriptação WEP ao seu wpa-roam.conf, a sintaxe é a seguinte:

network={
ssid="exemplo de rede wep"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_tx_keyidx=0
}

Observações:
1. Fácil de usar novamente

Uma vez pronta, é fácil utilizar a configuração em outros laptops ou desktops com placas WLAN. Basta copiar os arquivos /etc/network/interfaces (ajuste o nome da interface, se necessário) e /etc/wpa_supplicant/wpa-roam.conf para sua nova máquina. Não há a menor necessidade de “instalar” qualquer coisa coisa depois disso.
2. Backup

É de bom alvitre fazer uma ou mais cópias de /etc/network/interfaces e /etc/wpa_supplicant/wpa-roam.conf, todavia encripte seu backup porque ele contém informação sensível.

Um ótimo método é usando um arquivo tar e uma chave gpg. Como root:

tar -cf backup_name.tar /etc/network/interfaces /etc/wpa_supplicant/wpa-roam.conf && gpg -c backup_name.tar

2 arquivos foram criados em $ HOME:
backup_name.tar
backup_name.tar.gpg

Apague backup_name.tar do seu sistema se você precisar apenas do arquivo backup_name.tar.gpg.

Para desencriptar o arquivo backup_name.tar.gpg:

gpg -d backup_name.tar.gpg

3. SSIDs ocultos

SSIDs ocultos são detectados quando scan_ssid=1 estiver definido no bloco de rede.
Segurança básica para modem/roteador wireless

Para manter controle de seu modem/roteador wireless, é possível implementar algumas poucas regras básicas de segurança. Isso ajuda a proteger seu lado da rede contra intrusos.
Protocolo básico

* WPA2-PSK é a melhor opção.
* Para encriptação, escolha o protocolo AES.
* A chave deve ser realmente forte.

Chaves/senhas

Para obter uma chave/senha que seja forte e incapaz de ser memorizada, use o pwgen em um terminal (também leia: man pwgen):

$ pwgen -s 63 1
VltnfGmGKXovVv2rmrCFFXBZ55Mij5bA6WytVJnVoKUqRn6dfjldG6MBrRo0Cdi

* -s = segura (sem mnemônicos)
* 63 = quantidade de caracteres
* 1 = gere somente uma senha aleatória

Sem o -s serão geradas senhas parecidas com palavras, mas é improvável que você não deseje isso:

$ pwgen 8 3
Sooxae2s Niew9ugh Hi7eeloo

Uma vez gerada, transcreva a chave/senha em um arquivo de texto e aplique-a em outros computadores que usam redes sem fio. O arquivo deve ser salvo em uma pendrive ou outro dispositivo USB, nunca em seu computador.
Exemplo final de configuração do roteador:

Version: WPA2-PSK
Encryption: AES
PSK Password: VltnfGmGKXovVv2rmrCFFXBZ55Mij5bA6WytVJnVoKUqRn6dfjldG6MBrRo0Cdi

Este texto foi escrito com o intuito de fonte de pesquisa e também trazer algum aprendizado. Sugestões, críticas ou elogios são bem-vindos. Sucesso a todos. Em breve a parte 2! 🙂