Bloquear ponto de acesso WiFi pelo endereço MAC no DD-WRT usando a conexão WAN no modo cliente

3

A conexão WAN do meu roteador está configurada para se conectar a uma rede WiFi pública baseada em assinatura. Estou efetivamente estendendo uma rede WiFi pública.

Eu determinei que a rede pública tem três pontos de acesso diferentes no alcance do meu roteador (todos usando o mesmo SSID, mas em canais diferentes)

Eu determinei que um dos APs WiFi públicos para o SSID WiFi público está com defeito. A conexão WAN do meu roteador fica entre os bons APs sem problemas, mas quando ele passa para o ponto de acesso ruim, o acesso à Internet cai até que o roteador retorne a um dos bons pontos de acesso.

Eu identifiquei os endereços MAC dos bons e maus APs.

Dado que a rede WiFi pública não está sob meu controle, existe alguma maneira do meu roteador bloquear / bloquear o ponto de acesso com defeito usando seu endereço MAC?

Meu roteador é Netgear WNDR3700v4, e eu pisquei com o DD-WRT 06-23-2014-r24461

link

A opção ap para iwconfig parece promissora:

man iwconfig(8) ap

Force the card to register to the Access Point given by the address, if it is possible. This address is the cell identity of the Access Point, as reported by wireless scanning, which may be different from its network MAC address. If the wireless link is point to point, set the address of the other end of the link. If the link is ad-hoc, set the cell identity of the ad-hoc network. When the quality of the connection goes too low, the driver may revert back to automatic mode (the card selects the best Access Point in range). You may also use off to re-enable automatic mode without changing the current Access Point, or you may use any or auto to force the card to reassociate with the currently best Access Point. Example : iwconfig eth0 ap 00:60:1D:01:23:45

Mesmo quando você configura manualmente o ponto de acesso para se conectar, a conexão ainda faz roaming no AP não autorizado.

Eu tentei usar as opções "Wireless MAC Filter" em Wireless-Security no painel de controle do DD-WRT e, embora elas salvem, elas não parecem ter nenhum efeito. Eu suspeito que isso acontece porque o adaptador está no modo cliente, então as configurações não são aplicáveis.

Eu também tentei vários comandos iw assim:

iw dev ath0 station del aA:BB:CC:DD:EE:FF

Eu derrubei /proc/net/ na esperança de encontrar algo para ler e escrever valores de e para, mas ainda sem sorte.

Em exibição:

iw dev ath0 disconnect

causa uma redefinição de conexão e, em meu teste, o adaptador sempre se reconecta automaticamente a um dos bons pontos de acesso. Mas, depois de um tempo indeterminável, o adaptador volta para o ponto de acesso ruim e o acesso à Internet é interrompido.

A única solução que posso ver no momento é escrever meu próprio gerenciador de conexões, mas sem descobrir como usar as ferramentas para fazer isso corretamente, será difícil.

    
por jon 09.07.2014 / 12:02

2 respostas

1

Conforme o comentário de Daniel, o startup.sh pode modificar /tmp/ath0_wpa_supplicant.conf para incluir a variável bssid=<mac of good ap> na declaração network{} , seguida por # kill -HUP "$(pidof "wpa_supplicant")" para sinalizar ao wpa_supplicant que ele deve recarregar a configuração.

Isso mantém o adaptador conectado a um ponto de acesso, bloqueando o roaming para outros pontos de acesso.

  • link
  • man wpa_supplicant
  • (debian) / usr / share / doc / wpa_supplicante / README
por 26.08.2014 / 01:06
1

Para lhe dar uma resposta direta, você não precisa gastar seu tempo lendo um dicionário inteiro:

Em um dispositivo DDWRT baseado em ATHEROS - portanto, isso não funciona na Broadcom, ele funcionará no seu caso o telnet no roteador e a execução de 'ps' produz um processo chamado wpa_supplicant .

Acesse Administração, Comandos e insira e salve como um script personalizado:

sed -i '7ibssid=xx:xx:xx:xx:xx:xx' /tmp/ath0_wpa_supplicant.conf

kill -HUP "$(pidof "wpa_supplicant")"

A primeira linha insere a linha bssid=(mac address of upstream router) na linha 7 no wpa_supplicant , que deve obtê-lo na seção de rede. Você pode usar less ath0_wpa_supplicant.conf para ver em que faixa a rede está, no prompt do telnet na pasta /tmp

A segunda linha como o primeiro respondente afirma, reinicia wpa_supplicant .

Os comandos são copiar e colar, como estão. A única mudança que você precisa fazer é substituir o MAC do AP do upstream por xx: xx ...

    
por 18.09.2015 / 22:17