Configuração de rede wireless (WPA)
Publicado por Dix (última atualização em 01/08/2014)
[ Hits: 3.419 ]
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
Script de instalação para Firefox e Thunderbird
Coleta de Performance com SAR (systat package)
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (8)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Alguém executou um rm e quase mata a Pixar! (3)
Formas seguras de instalar Debian Sid (1)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









