Como o título do meu post diz, eu tenho um script (abaixo) correndo em um serviço que está em cobrança para trazer na conexão sem fio (WPA2) e se não puder, ele traz no modo Access Point.
#!/bin/bash
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -eq 0 ]]; then
echo "Connected"
else
echo "Try to get a connection"
pkill wpa_supplicant
systemctl stop dnsmasq
systemctl stop hostapd
#systemctl disable dnsmasq
systemctl disable hostapd
ifdown wlan0
ifup wlan0=wlan_user
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -eq 0 ]]; then
echo "Connected"
else
echo "Access point mode"
ifdown wlan0
systemctl restart dnsmasq
systemctl restart hostapd
ifconfig wlan0 up
ifconfig wlan0 10.0.0.1/24
#iptables -t nat -F
#iptables -F
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
#echo '1' > /proc/sys/net/ipv4/ip_forward
fi
fi
cp /etc/network/interfaces /tmp/interfaces
Para testar se funciona, eu inicio no terminal e funciona muito bem, mas quando é lançado pelo meu serviço, ele se conecta, mas se desconecta imediatamente com "Get desautorizando a escolha local (Razão: 3 = DEAUTH_LEAVING)". Nota: Funciona quando se conecta a uma conexão sem fio WPA