wpa_supplicant.conf - Configuração para WPA2-PSK

Esse artigo é para quem precisa configurar o Wi-Fi como WPA2 com PSK. Este é o método mais fácil para tornar sua conexão segura com Wi-Fi doméstico.

[ Hits: 26.139 ]

Por: Perfil removido em 08/12/2014


WPA2 com PSK e TKIP - Segurança em redes Wi-Fi domésticas



Esse artigo é para quem precisa configurar o Wi-Fi como WPA2 com PSK. Esse é o método mais fácil de tornar sua conexão segura com Wi-Fi doméstico. Isso significa que haverá uma "frase-senha" conhecida por todos que acessam a rede.

Essa chave-frase é armazenada no roteador Wi-Fi. Como WEP é inseguro e WPA é passível de invasão (teoricamente), atualmente para uso doméstico, o melhor é manter seu roteador Wi-Fi em WPA2-PSK usando TKIP.

O comprimento da frase secreta, o uso de maiúsculas, caracteres de pontuação e números (somente caracteres da tabela ASCII são permitidos) aumenta a dificuldade da quebra de senha. Alguns roteadores Wireless permitem múltiplos protocolos simultaneamente (WEP, WPA, WPA2, WPS). Desative todos os demais (incluindo WPS que é vulnerável) e deixe apenas WPA2-PSK com TKIP.

Isso garante um nível de estabilidade e segurança para o ponto de acesso. Se possível, atualize seu firmware. Essa operação pode danificar seu aparelho, então, saiba o que está fazendo antes de se aventurar.

Esse artigo não cobre a configuração WEP, WPA, WPS ou o uso de EAP com qualquer protocolo, o uso de certificados ou o uso de servidores RADIUS de autenticação. Existem mil maneiras de "comer Neston com wpa_supplicant". Esse artigo é uma introdução para esses protocolos, pois a estrutura de configuração é a mesma.

O arquivo wpa_supplicant.conf armazena os parâmetros necessários para configurar a negociação entre o cliente WPA e o servidor. O arquivo consiste de um bloco de configurações globais, que afetam todas as redes, e um ou mais blocos de rede onde são inseridos os parâmetros de cada conexão.

O sistema wpa_supplicant selecionará a rede primária baseado na ordem de prioridade definida no parâmetro prioridade. Havendo mais de uma rede com a mesma prioridade, são avaliados a força do sinal da rede e nível de segurança, WPA/WPA2 são preferenciais.

No corpo do arquivo, um linha que se inicia com #, é considerada um comentário. Após encontrar um sinal #, todo o restante da linha é considerado comentário. Por exemplo:

ssid="Rede-01"  # Aqui é um comentário após uma definição.
# Esse é um comentário em toda a linha.

Parâmetros globais

Os parâmetros globais são definidos como um binômio parâmetro=valor.

Observe que não são permitidos espaços em branco no campo do valor. Valores que exigem espaço devem ser declarados entre aspas duplas. Alguns parâmetros aceitam valores livres, enquanto outros possuem valores pré-definidos de tipo.

ctrl_interface - é o parâmetro que armazena a rota (pathname) onde o sistema wpa_supplicant deve criar um arquivo de soquete do tipo Unix.

Um soquete é um arquivo especial do tipo socket (s), responsável pela comunicação entre wpa_supplicant e programas front-end como wpa_cli(8). Observe que ctrl_interface armazena a rota e não o nome do arquivo, que normalmente é o nome da interface (wlan0).

Exemplo:

ctrl_interface=/var/run/wpa_supplicant

Criará o diretório em /var/run/wpa_supplicant e o arquivo de soquete wlan0.

ctrl_interface_group - define o nome do grupo (ou GID) com o qual o arquivo de soquete será criado. Isso pode ser ajustado para que usuários que não são root possam controlar essa interface de rede.

Se esse valor não for declarado, assume o valor da propriedade do diretório onde foi criado (normalmente pertence a root). Em várias distribuições esse arquivo é criado em /var/run (pertence ao root) sendo uma área crítica para segurança do sistema.

Exemplo:

ctrl_interface_group=root

eapol_version - o protocolo IEEE 802.1x/EAPOL possui a versão 1 e 2. O sistema wpa_supplicant é implementado de acordo com a revisão IEEE 802-1X-Ver-d8. Isso significa que, por padrão EAPOL, é sempre 2. Entretanto, pontos de acesso antigos não trabalham com essa versão.

Por padrão, wpa_supplicant irá anunciar SEMPRE que deseja a versão 1. Assim, é preciso dizer explicitamente para wpa_supplicant para usar a versão 2 que é melhorada e oferece mais benefícios. Se seu roteador antigo parece dropar todos seus quadros, então, o problema está nesse parâmetro.

Exemplo:

eapol_version=2

ap_scan - esse parâmetro controla a seleção e o escaneamento do ponto de acesso. São três opções possíveis (0,1 e 2). O padrão para redes sem fio é 1 e somente esse valor pode ser utilizado no módulo WLAN. Os demais valores são utilizados por outros sistemas operacionais.

O modo 0 é usado quando drivers que não são nativos para WPA (como uma placa de rede com fio) vão se associar ao roteador usando um cabo de rede. O modo 2 é similar ao modo 0, adicionando o uso de uma política de segurança e SSID (nunca BSSID) e drivers ndiswrapper e NDIS com pontos de acesso que ocultem seu SSID.

Neste modo, somente um bloco de definição de rede é aceito. Os valores de key_mgmt, pairwise, group, proto devem ser únicos e previamente definidos.

ap_scan=1

fast_reauth - é um parâmetro que controla a velocidade da reautenticação. O valor 1 é ativo e o valor 0 e desativado. Esse valor depende de suporte por EAP. Caso gere instabilidade, mantenha desativado.

O bloco de rede

Cada rede, ou ponto de acesso em potencial, deve possuir um bloco que descreva como identificar e configurar a segurança dessa rede. Quando múltiplas redes são listadas nesse arquivo de configuração, a que tiver o maior valor no campo prioridade é selecionada para uso.

Se mais de uma rede tem o mesmo nível de prioridade, então, os critérios de força do sinal e segurança são avaliados para definir uma rede para conexão. Um bloco se parece com isso:

network={
    parâmetro=valor
    ....
}

* Atenção: entre "network={", não pode haver espaço em branco. Um bloco pode conter uma ou mais declaração de acordo com os parâmetros. Quando um parâmetro não declarado explicitamente é certo que existe um valor padrão para ele. Preferencialmente deixe seus valores explícitos:

ssid (requerido) - é o SSID divulgado pelo ponto de acesso e representa o nome do ponto de acesso. Esse campo deve conter somente caracteres da tabela ASCII ou uma cadeia de caracteres no formato hexadecimal fechada entre aspas duplas. Evite caracteres acentuados aqui e apesar de aceito evite usar espaços em branco para o nome de um ponto de acesso.

Exemplo:

ssid="VOL-WIFI"

scan_ssid - define a técnica utilizada para escanear em busca do SSID. O valor padrão é 0, que realiza uma sondagem por broadcast. O escaneamento do tipo 1 utiliza uma sondagem direta por quadro (frame). Pontos de acesso que ocultam seu SSID requerem o escaneamento do tipo 1.

Isso provoca uma na negociação da conexão bem mais demorada e deve ser ativada somente se necessária.

scan_ssid=0

bssid - armazena o endereço MAC do ponto de acesso, garantindo que o ponto de acesso é realmente aquele ao qual pretende conectar. Isso evita conflito de nomes entre pontos de acessos. Para obter o MAC do ponto de acesso, utilize o comando iwlist scanning.

Exemplo:

bssid=28:32:c5:f8:c8:00

priority - define a prioridade da rede. Se omitido assume o valor 0. Quanto maior o valor maior a prioridade. Se duas redes possuem a mesma prioridade, então, são avaliadas e a que tiver melhor política de segurança (WPA/WPA2) e a melhor força do sinal será escolhida.

priority=10

mode - o modo de operação IEEE 802.11; o valor 0 indica infraestrutura (é o valor padrão) ou o valor 1 que indica IBSS que é o mesmo que rede ad hoc. Uma rede IBSS somente pode ter o gerenciamento da chave (key_mgmt) como NONE (nenhum) o que significa texto puro ou WEP estática. Se IBSS for definido como WPA-NONE (TKIP/CCMP), neste caso, o valor de ap_scan deve ser 2.

WPA-NONE requer o valor de proto como WPA, key_mgmt como WPA-NONE, pairwise como NONE, group como CCMP ou TKIP, (nunca ambos) e PSK presente. Uma rede ad hoc é estabelecida entre dois dispositivos, sem um ponto de acesso, portanto, fora do escopo desse artigo.

Exemplo:

mode=0

proto - lista os protocolos aceitáveis. WPA para IEEE 802.11i/D3.0 e RSN para IEEE 802.11i. O WPA2 é um alias para RSN. Se omitido o padrão desse parâmetro é uma lista composta por "WPA RSN".

Exemplo:

proto=RSN   # alias para WPA2

key_mgmt - lista os protocolos aceitáveis pelo cliente. Pode ser declarado um ou mais protocolos, que serão testados na sequência. WPA-PSK - WPA com chave compartilhada, WPA-EAP, WPA com autenticação externa, IEEE802.1x, usando autenticação EAP e opcionalmente chaves dinâmicas WEP. NONE, usando texto puro ou chaves estáticas WEP. Se omitido os valores padrão, são "WPA-PSK WPA-EAP".

Exemplo:

key_mgmt=WPA-PSK

auth_alg - lista os algoritmos de autenticação permitidos. Um ou mais valores podem ser declarados. OPEN (Open System authentication) requerido para WPA/WPA2. O valor SHARED (Shared Key Authentication), LEAP (LEAP/Network EAP).

Exemplo:

auth_alg=OPEN

pairwise - lista o valor do "par sábio". Se omitido assume "CCMP TKIP". O tipo unicast de cifra para WPA, CCMP (AES, em modo contador com CBC-MAC, como na RFC 3610, ou IEEE 802.11i/D7.0) para TKIP. O valor NONE está depreciado.

Exemplo:

pairwise=TKIP

group - lista o grupo multicast aceitável de cifras para WPA. Um ou mais valores são aceitos. CCMP (AES), TKIP, WEP104 ou WEP40. Por omissão essa é a própria ordem consultada.

group=TKIP

psk - esse campo armazena um hash da chave compartilhada, quando estiver usando o modo WPA-PSK. Essa chave é especificada como 64 dígitos em hexadecimal ou como uma frase senha de 8-63 caracteres em ASCII. As frases chaves são dinamicamente convertidas para uma chave de 256 bits em tempo de execução usando o SSID ou previamente pelo utilitário wpa_passphrase(8), isso é o melhor a fazer.

Esse utilitário também envia sua frase senha em texto puro para o arquivo de configuração. Isso é um ponto de fraqueza na segurança, apague essa linha de acordo com o grau de paranoia de segurança.

#psk="Chave Secreta em texto puro"
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb

mixed_cell - configura se o ponto de acesso permite o uso de texto puro e criptografado quando selecionando um BSS dos resultados do escaneamento. Por padrão, isso é configurado como desativado (0). O valor 1 ativa.

Exemplo:

mixed_cell=0

A seguir, um modelo de wpa_supplicant.conf para WPA2-PSK com TKIP:

# Parametros Globais
#
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
eapol_version=2
ap_scan=1
fast_reauth=1
#
# Fim dos Parâmetros Globais
#
# Inicio das redes
network={
        ssid="VOL"
        scan_ssid=0
        bssid=00.11.22:aa:bb:cc
        priority=10
        mode=0
        proto=RSN
        key_mgmt=WPA-PSK
        auth_alg=OPEN
        pairwise=TKIP
        group=TKIP
        # psk="Frase Chave em texto puro"
        psk=44cb7cbece91a5abaeaf4694eb188f868c0716b945f73341ea91d6de77a8d670
        mixed_cell=0
}

Referências:
   

Páginas do artigo
   1. WPA2 com PSK e TKIP - Segurança em redes Wi-Fi domésticas
Outros artigos deste autor

Conexão wireless ad-hoc no Ubuntu - relato de experiência

Jogando Xadrez online e gratuitamente no Linux

Linux Terminal Server - LTS

Programando em Qt

Segurança na Internet

Leitura recomendada

Fail2ban no Debian - Instalação e Configuração

Entendendo o ataque ARP spoofing + SSLStrip

Aplicação do firmware intel-microcode no Slackware

OpenVPN se comportando como PPTP

HoneyPots em Linux

  
Comentários
[1] Comentário enviado por removido em 08/12/2014 - 11:03h

kyetoy,

Aqui eu configuro em minha rede doméstica, o endereço MAC dos 4 dispositivos nas configurações do roteador.
Usando seu método, acha que posso dispensar este método?

Pergunto porque sempre tem aquela visita chata que quer/precisa usar minha rede e tenho que inserir o MAC dele. rs

[2] Comentário enviado por removido em 08/12/2014 - 11:49h


[1] Comentário enviado por izaias em 08/12/2014 - 11:03h:

kyetoy,

Aqui eu configuro em minha rede doméstica, o endereço MAC dos 4 dispositivos nas configurações do roteador.
Usando seu método, acha que posso dispensar este método?

Pergunto porque sempre tem aquela visita chata que quer/precisa usar minha rede e tenho que inserir o MAC dele. rs


Izaias,

O WPA2-PSK com TKIP oferece um excelente nível de segurança (até o momento). Depois que passei a desativar os outros protocolos nunca mais tive qualquer problema de instabilidade na rede domestica. Conecto, Windows (vista, 7, 8), Linux em modo texto, celulares da LG e tablets com android.

Não há servidor na rede domestica, nao há qualquer compartilhamento de arquivo (nem linux e nem no windows), nao há impressoras wi-fi ou de rede compartilhadas.

Nao costumo cadastrar o MAC por confiar e por achar chato mesmo. De todo modo, nao tem nenhum dado critico ou secreto ou importante na rede... entao meu grau de paranoia é baixo...


Alguns roteadores mais novos tem opção de criar uma rede convidada separada da sua rede original. (guest net)...

O fato de cadastrar o MAC eh apenas uma checagem a mais para o roteador fazer e nao tem nada com essa configuraçao WPA-PSK passada aqui.

Nao tem qualquer impacto na velocidade ou qualidade. apenas aumenta um pouco mais a segurança...

Qualquer pessoa disposta a invadir vai primeiro spoofar um MAC da sua rede ou usar um zerado... já vi isso acontecer...

Se tem certa paranoia o certo eh usar tudo que puder (firewall do equipamento, MAC, horario, cadastrar o nome da maquina, e por aí..) uma passphase longa eh uma boa ideia. Agora se precisa de mais seguranca o lance eh partir para um RADIUS ou conexao com CERTIFICADO.... AES ... num nivel mais profissional.... WPA-PSK eh para uso domestico. VLW.

[3] Comentário enviado por removido em 08/12/2014 - 11:55h

Muito obrigado!

É uma rede doméstica, navegação rotineira. Mas impedir que alguém use sua rede sem permissão, acho que é paranóia de quase todos. rs

Também uso WPA2-PSK, mas não com TKIP.
Assim que chegar em casa vou rever meus métodos.


Artigo muito esclarecedor! Parabéns, cara!
É sempre muito bom contar com profissionais da área.
Obrigado, mais uma vez.

[4] Comentário enviado por albfneto em 10/12/2014 - 18:52h

Favoritado. Parabéns.
Ensinando a Galera a usar o chatinho WPA Supplicant.
Chama-se supplicant, porque a gente suplica para ele funcionar!
srsrsrs.

[5] Comentário enviado por removido em 10/12/2014 - 19:06h


[4] Comentário enviado por albfneto em 10/12/2014 - 18:52h:

Favoritado. Parabéns.
Ensinando a Galera a usar o chatinho WPA Supplicant.
Chama-se supplicant, porque a gente suplica para ele funcionar!
srsrsrs.


Pois é... posso garantir que o supplicant é um software que tá levando a fama por algo que nao é culpa dele em 90% das vezes...

Os equipamentos que tentam rodar trocentos protocolos ao mesmo tempo acabam falhando.... Mesmo alguns de marcas boas... não é por ser xing ling.

O grande segredo aqui é manter só um padrão (WPA2-PSK com TKIP em 801.11g em 2.4 MHz) e simplesmente desativar TUDO o resto. WPS é vulnerável, 801.11n é muito poderoso para o equipamento caseiro... usar a frequencia de 5 MHz junto com 2.4 somente para equipamentos com várias antenas.

Outro lance é que como nunca uso interface gráfica... ou faço assim ou fico de fora da rede... VLW


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts