Criando um ponto de acesso que se conecta ao wifi

0

Estou tentando desenvolver um ponto de acesso que possa ser usado para conectar "sem cabeça" ao wifi.

AP

Estou configurando o ponto de acesso usando hostapd conf:

interface=wlan0
ssid=AP
hw_mode=g
channel=6
auth_algs=1
wmm_enabled=0

adicionando ao meu /etc/hosts

192.168.1.1     nginx.ap.com

e para o meu dnsmasq :

# Never forward addresses in the non-routed address spaces.
bogus-priv
# Add other name servers here, with domain specs if they are for non-public domains.
server=/localnet/192.168.1.1
# Add local-only domains here, queries in these domains are answered from /etc/hosts or DHCP only.
local=/localnet/
# Make all host names resolve to the Raspberry Pi's IP address
address=/#/192.168.1.1
# Specify the interface that will listen for DHCP and DNS requests
interface=wlan0
# Set the domain for dnsmasq
domain=localnet
# Specify the range of IP addresses the DHCP server will lease out to devices, and the duration of the lease
dhcp-range=192.168.1.10,192.168.1.254,1h
# Specify the default route
dhcp-option=3,192.168.1.1
# Specify the DNS server address
dhcp-option=6,192.168.1.1
# Set the DHCP server to authoritative mode.
dhcp-authoritative

log-dhcp
log-queries
log-facility=/tmp/dnsmasq.log

e um servidor LAMP que ouve nginx.ap.com isso não está realmente funcionando como eu imaginava pois tinha que personalizar o DNS no meu mac para que ele usasse o pis e eu só teria acesso se eu digitar http://nginx.ap.com no o navegador que eu esperava receber um pop-up e todos os outros domínios seriam redirecionados para isso.

rede

Para meu /etc/network/interfaces :

iface wlan0 inet static
    address 192.168.1.1
    netmask 255.255.255.0

Agora estou tentando criar um script que o servidor da Web nginx possa executar usando o php para fechar o ponto de acesso e conectar-se ao Wi-Fi usando SSID e senha de um formulário HTML.

Eu tenho a verificação para ver se o SSID existe na rede que funciona com este script bash:

if ! iwlist scan | grep "\"$name\"" &> /dev/null
then
   echo "No such SSID - '$name'";
   exit
fi

Agora quero verificar se a senha está correta e nunca mais usar o ponto de acesso se houver um wifi válido.

Então, eu corro um cron simples como este:

if ! ping -c 2 8.8.8.8 &> /dev/null
then
    service hostapd start
    service dnsmasq start
else
    service hostapd stop
    service dnsmasq stop
fi

mas isso não funciona corretamente, pois eu também preciso controlar o /etc/network/interfaces e atualizar a rede e para isso eu tenho que inicializar o usuário do AP, destruindo qualquer feedback possível.

Existe uma maneira de verificar se uma configuração funciona sem desconectar o ponto de acesso? E qualquer outra dica seria muito apreciada.

    
por maxisme 03.04.2018 / 01:03

0 respostas