Configuração de rede wireless (WPA)
Publicado por Dix (última atualização em 01/08/2014)
[ Hits: 3.352 ]
Criei um script básico para configurar a interface wireless desejada. Para isso, basta alterar as variáveis ou criar uma função personalizada seguindo as que já estão lá. É só não esquecer que alterar o "case" no final do script.
#!/bin/bash
#
# Shell Script - Configurador de Rede Wireless 3.0 by huddioli
# =======================
# by huddioli - 2014-07-29
#
# Testado no bash Debian 7
#
# Utiliza o "iwconfig", "dhclient", "wpa_passphrase", "wpa_supplicant"
# E o script "firewall.sh"; Pode ser personalizado, basta colocar o seu script pessoal
# Esse Script foi criado para conectar a redes Wireless com senha WPA
# Tirei as funcoes das senhas WEP, pois esse metodo é muito vulneravel
#
# Para executar o Script: rede_vol <opçoes>
#
# VARIAVEIS
# Para onde irao as saidas de erros
LOG_ERRO='/tmp/erro_script_rede.log'
# Para onde irao as saidas padrao dos programas
LOG_REDE='/tmp/script_rede.log'
# Lista de Interfaces Eth e Wlan
IFACES_1='/tmp/ifaces.txt'
# Arquivo Temporario
IFACES_2='/tmp/ifaces2.tmp'
# Hora definida para registrar no arquivo de LOG
AGORA=`date +%Y_%m_%d_%H:%M:%S`
#
# Montagem do inicio dos arquivos de LOG
echo -e "{FONTE}33[01;31m##################$AGORA##################{FONTE}33[01;37m\n" >> $LOG_ERRO
echo -e "{FONTE}33[01;31m##################$AGORA##################{FONTE}33[01;37m\n" >> $LOG_REDE
# Funcoes para configurar as variaveis da Rede Wireless
# Caso a configuracao de Rede seja via DHCP defina IP='dhcp'
# Caso contrario IP='10.5.1.1' MASCARA='255.255.255.0' DNS='10.5.1.254'
# O Proxy ainda nao implementei e nem o RTS e FRAG, mas vou atualizar
function ConfiguraIPTrabalho(){
PLACA='wlan0'
SSID='trabalho'
PONTO_DE_ACESSO='54:E6:FC:D6:DB:DB'
SENHA='VivaOLinux$AteAProxyma'
CANAL='10'
IP='10.5.1.100'
MASCARA='255.255.255.0'
GATEWAY='10.5.1.1'
DNS='10.5.1.1'
PROXY=''
FIREWALL='firewall.sh'
}
function ConfiguraIPCasa(){
PLACA='wlan0'
SSID='Casa'
PONTO_DE_ACESSO='54:E6:FC:D6:DB:DB'
SENHA='TesteDeScriptPessoal'
CANAL='1'
IP='dhcp'
MASCARA=''
GATEWAY=''
DNS=''
PROXY=''
FIREWALL='firewall.sh'
}
function ConfiguraIP2(){
PLACA='wlan0'
IP='10.5.1.3'
MASCARA='255.255.255.0'
GATEWAY='10.5.1.200'
DNS='10.5.1.200'
PONTO_DE_ACESSO='00:24:01:00:24:01'
SSID='jaca'
SENHA='T3st3D3ScriptPesso@l'
CANAL='11'
FIREWALL='firewall.sh'
}
#
function ProcuraInterfaces(){
# Essa funcao simplesmente cria uma lista com as interfaces eth e wlan
if [ -e $IFACES_1 ];
then
rm -f $IFACES_1 2>> $LOG_ERRO >> $LOG_REDE
fi
if (\
ifconfig -a | grep eth >> $IFACES_1 && \
ifconfig -a | grep wlan >> $IFACES_1 &&\
cat $IFACES_1 | while read LINHA; \
do
echo $LINHA| cut -d" " -f 1 >> $IFACES_2;
done && \
rm -f $IFACES_1 2>> $LOG_ERRO >> $LOG_REDE && \
mv $IFACES_2 $IFACES_1 2>> $LOG_ERRO >> $LOG_REDE);
then
return 0
else
return 1
fi
}
function DesativaPlacas(){
# Essa funcao desativa todas as placas que estao listadas no arquivo $IFACES_1 (1)
echo -e "{FONTE}33[01;37m"
echo -n "Encerrando programas de rede ................................"
if (\
/etc/init.d/network-manager stop 2>> $LOG_ERRO >> $LOG_REDE && \
killall -q wpa_supplicant 2>> $LOG_ERRO >> $LOG_REDE && \
iwconfig $PLACA key off 2>> $LOG_ERRO >> $LOG_REDE);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
echo -e "\nConfigurando rede $SSID"
echo
echo "Desativando interfaces de rede:"
# (1)
if [ -e $IFACES_1 ];
then
cat $IFACES_1 | while read INTERFACE
do
echo -n "--Desativando interfaces de rede $INTERFACE ................."
if (\
ifconfig $INTERFACE down 2>> $LOG_ERRO >> $LOG_REDE);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]"
fi
done
else
echo "Arquivo $IFACES_1, não existe!"
fi
echo -n "Finalizando os serviços de rede ............................."
if(\
iwconfig $PLACA key off 2>> $LOG_ERRO >> $LOG_REDE && \
/etc/init.d/networking stop 2>> $LOG_ERRO >> $LOG_REDE);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
}
function ConfiguraRede(){
ProcuraInterfaces
DesativaPlacas
echo -n "Processando chave WPA de rede ..............................."
if (\
wpa_passphrase $SSID $SENHA > /etc/wpa_supplicant/wpa_supplicant.conf 2>> $LOG_ERRO && \
wpa_supplicant -i $PLACA -c /etc/wpa_supplicant/wpa_supplicant.conf -B -D wext 2>> $LOG_ERRO);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
echo -n "Configurando ACCESS-POINT na interface $PLACA ................"
if (\
iwconfig $PLACA essid $SSID 2>> $LOG_ERRO >> $LOG_REDE && \
iwconfig $PLACA channel $CANAL 2>> $LOG_ERRO >> $LOG_REDE && \
iwconfig $PLACA ap $PONTO_DE_ACESSO 2>> $LOG_ERRO >> $LOG_REDE);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
echo -n "Configurando FIREWALL ......................................."
if (\
$FIREWALL start 2>> $LOG_ERRO >> $LOG_REDE);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
if [ $IP = 'dhcp' ];
then
echo -n "Configurando endereco IP (DHCP) na PLACA $PLACA .............."
if (\
dhclient -r 2>> $LOG_ERRO >> $LOG_REDE && \
dhclient $PLACA 2>> $LOG_ERRO >> $LOG_REDE);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
else
if [ $PLACA = '' ] || [ $IP = '' ] || [ $MASCARA = '' ];
then
echo -e "[{FONTE}33[01;31m Faltam dados de Configuração da Placa (PLACA, IP, MASCARA) {FONTE}33[01;37m]"
else
echo -n "Configurando endereco IP na PLACA $PLACA ....................."
if (\
ifconfig $PLACA $IP netmask $MASCARA 2>> $LOG_ERRO >> $LOG_REDE);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
fi
if [ $GATEWAY != '' ];
then
echo -n "Configurando GATEWAY ........................................"
if (\
route add -net default gw $GATEWAY 2>> $LOG_ERRO >> $LOG_REDE);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
fi
if [ $DNS != '' ];
then
echo -n "Configurando DNS ............................................"
if (\
echo "nameserver " $DNS > /etc/resolv.conf 2>> $LOG_ERRO);
then echo -e "[{FONTE}33[01;32m OK {FONTE}33[01;37m]";
else echo -e "[{FONTE}33[01;31m Erro {FONTE}33[01;37m]";
fi
fi
fi
echo
}
case $1 in
trabalho)
ConfiguraIPTrabalho
ConfiguraRede
;;
rede2)
ConfiguraIP2
ConfiguraRede
;;
casa)
ConfiguraIPCasa
ConfiguraRede
;;
*)
echo "Nenhuma configuracao válida foi selecionada!!"
esac
# Termina de editar o arquivo de LOG
echo -e "\n\n{FONTE}33[01;31m#######################################################{FONTE}33[01;37m\n\n" >> $LOG_ERRO
echo -e "\n\n{FONTE}33[01;31m#######################################################{FONTE}33[01;37m\n\n" >> $LOG_REDE
# Exclui o arquivo que contém a lista das placas de redes
rm -f $IFACES_1 2>> $LOG_ERRO >> $LOG_REDE
Automatizando a geração de relatórios do SARG
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (0)
Preciso recuperar videos *.mp4 corrompidos (1)
\Boot sem espaço em disco (Fedora KDE Plasma 42) (6)









