Compartilhamento de Wi-Fi público

2

Eu uso um pi de framboesa em um barco para registrar vários sensores e também como um ponto de acesso para compartilhar a Internet no barco. Eu tenho um adaptador Wi-Fi USB com uma antena externa montada em um mastro. Eu também tenho um modem 4G, novamente com uma antena externa, com uma conexão Ethernet de volta para o Raspberry pi. Eu pude usar o iptables para criar tradução de endereços de rede para compartilhar as conexões wifi descritas acima no dispositivo wifi interno do Raspberry Pi 3.

No entanto, em alguns hotspots públicos, o dispositivo Wi-Fi continua sendo desconectado. Minha pesquisa mostrou que o AP público de Wi-Fi provavelmente está olhando para o endereço MAC dos dispositivos conectados ao meu hotspot local e vendo que ele não corresponde ao endereço MAC do dispositivo USB no qual ele foi autenticado e, portanto, des-autentica o USB dispositivo.

Eu entendo que o modo de endereço WDS ou 4 pode ser usado se eu tivesse controle sobre o AP público que tem a conexão Wi-Fi, mas isso claramente não é possível.

Eu explorei o uso de ebtables, mas você não pode conectar um dispositivo wifi STA a uma bridge virtual, a menos que esteja usando o modo 4 Address.

Tenho certeza de que deve ser possível emular o que está descrito nas instruções de um extensor wifi do link TP:

"Quando o Range Extender está funcionando no Modo Universal:

Neste modo, o Range Extender substituirá todos os endereços MAC de seus clientes pelo próprio endereço MAC do RE "

Não consigo encontrar nada que descreva como conseguir isso com uma distribuição linux.

Se alguém souber como eu poderia alcançar o que é descrito pelo Modo Universal acima, eu ficaria grato.

Como alternativa, se houver alguma maneira de autenticar cada cliente no meu ponto de acesso local para o ponto de acesso público Wi-Fi?

    
por Paul Fleming 30.07.2018 / 13:17

1 resposta

2

Você não pode (confiavelmente) usar um modo de ponte com APs que você não controla. Usar o modo repetidor (essencialmente NAT de endereços MAC 1: 1) exigiria esforços não triviais. Isso também significa que você precisa fazer login separadamente em cada dispositivo.

Em vez disso, o que você quer é NAT. A solução mais fácil é usar apenas algo assim:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Além disso, você precisará garantir que sua rede interna use uma sub-rede IP diferente para não causar conflitos.

Com o NAT, você tem segmentos de rede diferentes. O ponto de acesso nunca saberá sobre os dispositivos que se escondem atrás do seu RasPi. Não verá nenhum endereço MAC, mas o wlan0. Você só precisará efetuar login uma vez por conexão.

    
por 30.07.2018 / 14:14