Gerenciamento de clientes com cbq,squid e firewall no kurumin.
Publicado por clelton souza silva 06/06/2007
[ Hits: 7.338 ]
Ggerenciamento de clientes com cbq, squid e firewall no kurumin.
#!/bin/sh
#criado por clelton souza (cleltonss@hotmail.com)
atualiza () {
service squid stop
service squid reload
service squid start
service kurumin-firewall restart
/etc/sysconfig/cbq/./cbq.init compile
/etc/sysconfig/cbq/./cbq.init restart
cliente=""
ip=""
mac=""
tipoc=""
del_cli=""
busca_cli=""
exclusao=""
tipocliente=""
palavra=""
lista=""
ip64=""
}
velocidade(){
ip64=$(dialog --stdout --inputbox "Defina o endereço de IP:" 0 0)
echo $ip64 >> /lista/rede
velo1=$(dialog --stdout --inputbox "Defina a velocidade de download para o IP $ip64 :" 0 0)
velo2=$(dialog --stdout --inputbox "Defina a velocidade de upload para o IP $ip64 :" 0 0 )
x=1
x=`expr ${x} + 1`
info="`echo "$ip64" | sed -e 's/\//_/g'`_"$velo1"Kbits_eth0"
echo "
# cbq-0${x}.${info}
DEVICE=eth0,10Mbit,1Mbit
RATE="$velo1"Kbit
WEIGHT=8Kbit
PRIO=5
RULE=$ip64,
" >> /etc/sysconfig/cbq/cbq-0${x}.${info}
# Regra de Limite Interface Eth1
x=`expr ${x} + 1`
info="`echo "$ip64" | sed -e 's/\//_/g'`_"$velo2"Kbits_eth1"
echo "
# cbq-0${x}.${info}
DEVICE=eth1,10Mbit,1Mbit
RATE="$velo2"Kbit
WEIGHT=8Kbit
PRIO=5
RULE=$ip64
" >>/etc/sysconfig/cbq/cbq-0${x}.${info}
rm /lista/rede
atualiza
}
excluir(){
if [ "$del_cli" == "" ]; then
dialog --stdout --msgbox "O campo está em branco. Esta operação será cancelada." 0 0
else
`cat /etc/squid/acesso* | grep -i $del_cli > /tmp/busca` &&
dialog --stdout --title "DADOS DOS CLIENTES QUE SERÃO EXCLUÍDOS" --textbox /tmp/busca 0 0
dialog --stdout --yesno "CONFIRMA A EXCLUSÃO DO CLIENTE?" 0 0
if [ $? = 0 ]; then
`cat /etc/squid/acesso_restrito | grep -v $del_cli > /etc/squid/acesso_restrito`
`cat /etc/squid/acesso_total | grep -v $del_cli > /etc/squid/acesso_total`
`cat /etc/squid/acesso_dados.txt | grep -v $del_cli > /etc/squid/acesso_dados.txt`
`cat /etc/squid/acesso_ip | grep -v $del_cli > /etc/squid/acesso_ip`
atualiza
dialog --stdout --msgbox "O Cliente foi excluído com sucesso!" 0 0
else
/etc/squid/squid_reload
fi
fi;
}
excluirvelo () {
del_velo=$(dialog --stdout --inputbox "Digite o IP do cliente:" 0 0)
`find /etc/sysconfig/cbq/ | grep -i $del_velo > /tmp/busca` &&
dialog --stdout --title "DADOS DOS CLIENTES QUE SERÃO EXCLUÍDOS" --textbox /tmp/busca 0 0
dialog --stdout --yesno "CONFIRMA A EXCLUSÃO DO CLIENTE?" 0 0
if [ $? = 0 ]; then
rm /etc/sysconfig/cbq/cbq*$del_velo*
# | grep -i $del_velo
#`cat /etc/sysconfig/cbq/* | grep -v $del_velo > /etc/sysconfig/cbq/*`
#`cat /etc/sysconfig/cbq/* | grep -v $del_velo > /etc/sysconfig/cbq/*`
atualiza
dialog --stdout --msgbox "O Cliente foi excluído com sucesso!" 0 0
else
/etc/squid/squid_reload
fi
}
adicionar_total () {
echo "$ip" >> /etc/squid/acesso_total
echo "iptables -t filter -A FORWARD -d 0/0 -s $ip -m mac --mac-source $mac -j ACCEPT" >> /etc/squid/acesso_ip
echo "iptables -t filter -A FORWARD -d $ip -s 0/0 -j ACCEPT" >> /etc/squid/acesso_ip
echo "iptables -t filter -A INPUT -s $ip -d 0/0 -m mac --mac-source $mac -j ACCEPT" >> /etc/squid/acesso_ip
echo "iptables -t nat -A POSTROUTING -s $ip -o eth0 -j MASQUERADE" >> /etc/squid/acesso_ip
echo $cliente";"$ip";"$mac";"$end";"$mail";"$tel >> /etc/squid/acesso_dados.txt
atualiza
dialog --stdout --msgbox "O Cliente foi adicionado com sucesso!" 0 0
}
adicionar_restrito () {
echo "$ip" >> /etc/squid/acesso_restrito
atualiza
dialog --stdout --msgbox "O Cliente foi adicionado com sucesso!" 0 0
}
#dialog --msgbox "Verificar se o erro que está acontecendo na hora de excluir dados no meio de um alista é por causa do comando /etc/squid/squid_control, que reabre o form. Criar uma variável com o nome início, onde as variáveis são zeradas e substituir dos os /etc/squid/squid_config" 0 0
abertura=$(dialog --stdout --backtitle "SQUID CONTROL VERSÃO 0.1" --title 'MENU PRINCIPAL' --menu "Controle do Squid Proxy - Radio Connect" 0 0 0 1 'ADICIONAR CLIENTE' 2 'REMOVER CLIENTE' 3 'VISUALIZAR CLIENTES' 4 'ADICIONAR PALAVRAS (BLOQUEIOS/EXCEÇÕES)' 5 'REMOVER PALAVRAS (BLOQUEIOS/EXCEÇÕES)' 6 'VISUALIZAR (BLOQUEIOS/EXCEÇÕES)' 7 'TESTE DE CONEXÃO' 8 'Controle de Banda' 9 'Listar conectados' 0 'FECHAR')
#########################################################################
if [ "$abertura" == '1' ]; then
cliente=$(dialog --stdout --inputbox "Digite o NOME do cliente: " 0 0)
ip=$(dialog --stdout --inputbox "Digite o IP do cliente:" 0 0)
mac=$(dialog --stdout --inputbox "Digite o MAC do cliente:" 0 0)
tel=$(dialog --stdout --inputbox "Digite o telefone do cliente:" 0 0)
end=$(dialog --stdout --inputbox "Digite o endereco do cliente:" 0 0)
mail=$(dialog --stdout --inputbox "Digite o e-mail do cliente:" 0 0)
tipoc=$(dialog --stdout --menu "Escolha o tipo de acesso para o cliente: $cliente" 0 0 0 1 'Acesso total à internet' 2 'Acesso restrito à internet')
# CHECANDO CAMPOS EM BRANCO
if [ "$cliente" == "" ]; then
dialog --stdout --msgbox "O nome do cliente está em branco. Tente novamente." 0 0
/etc/squid/squid_control
elif [ "$ip" == "" ]; then
dialog --stdout --msgbox "O IP do cliente está em branco. Tente novamente." 0 0
/etc/squid/squid_control
elif [ "$mac" == "" ]; then
dialog --stdout --msgbox "O MAC do cliente está em branco. Tente novamente." 0 0
/etc/squid/squid_control
elif [ "$tipoc" == "" ]; then
dialog --stdout --msgbox "O tipo de acesso do cliente está em branco. Tente novamente." 0 0
/etc/squid/squid_control
else
if [ "$tipoc" == '1' ]; then
adicionar_total
elif [ "$tipoc" == '2' ]; then
adicionar_restrito
fi;
fi
/etc/squid/squid_control
#########################################################################
elif [ "$abertura" == '2' ]; then
exclusao=$(dialog --stdout --menu "BUSCA DE CLIENTES PARA EXCLUSAO:" 0 0 0 1 'POR IP' 2 'POR MAC' 3 'PESQUISAR NOME')
if [ "$exclusao" == '1' ]; then
del_cli=$(dialog --stdout --inputbox "Digite o IP do cliente:" 0 0)
excluir
elif [ "$exclusao" == '2' ]; then
del_cli=$(dialog --stdout --inputbox "Digite o MAC do cliente:" 0 0)
excluir
elif [ "$exclusao" == '3' ]; then
busca_cli=$(dialog --stdout --inputbox "Digite o nome do cliente ou ou apenas parte dele." 0 0)
`cat /etc/squid/acesso* | grep -i $busca_cli > /tmp/busca` &&
dialog --stdout --textbox /tmp/busca 0 0
fi
/etc/squid/squid_control
#########################################################################
elif [ "$abertura" == "3" ]; then
tipocliente=$(dialog --stdout --menu "Escolha o tipo de clientes" 0 0 0 1 'Clientes com acesso total à internet' 2 'Clientes com acesso restrito à internet')
if [ "$tipocliente" == '1' ]; then
dialog --textbox /etc/squid/acesso_dados.txt 0 0
elif [ "$tipocliente" == '2' ]; then
dialog --textbox /etc/squid/acesso_restrito 0 0
fi;
/etc/squid/squid_control
########################################################################
elif [ "$abertura" == "4" ]; then
# tipopalavra=$(dialog --stdout --menu "Escolha a lista que deseja adicionar palavras:" 0 0 0 1 'BLOQUEIOS' 2 'EXCEÇÕES')
#
# if [ "$tipopalavra" == '1' ]; then
# palavra=$(dialog --stdout --inputbox "Digite a palavra que deseja adicionar à lista de bloqueios: " 0 0)
# echo "$palavra" >> /etc/squid/proibido
# atualiza
# elif [ "$tipopalavra" == '2' ]; then
# palavra=$(dialog --stdout --inputbox "Digite a palavra que deseja adicionar à lista de exceções: " 0 0)
# echo "$palavra" >> /etc/squid/liberado
# atualiza
# fi
/etc/squid/squid_control
########################################################################
elif [ "$abertura" == "5" ]; then
tipopalavra=$(dialog --stdout --menu "Escolha a lista que deseja remover palavras:" 0 0 0 1 'BLOQUEIOS' 2 'EXCEÇÕES')
if [ "$tipopalavra" == '1' ]; then
palavra=$(dialog --stdout --inputbox "Digite a palavra que deseja remover da lista de bloqueios: " 0 0)
`cat /etc/squid/bloqueado | grep -v $palavra > /etc/squid/bloqueado`
atualiza
elif [ "$tipopalavra" == '2' ]; then
palavra=$(dialog --stdout --inputbox "Digite a palavra que deseja remover da lista de exceções: " 0 0)
`cat /etc/squid/liberado | grep -v $palavra > /etc/squid/liberado`
atualiza
fi
/etc/squid/squid_control
#########################################################################
elif [ "$abertura" == "6" ]; then
lista=$(dialog --stdout --menu "Escolha a lista que deseja visualizar" 0 0 0 1 'Lista de palavras bloqueadas' 2 'Lista de Excessões')
if [ "$lista" == '1' ]; then
dialog --textbox /etc/squid/bloqueado 0 0
elif [ "$lista" == '2' ]; then
dialog --textbox /etc/squid/liberado 0 0
fi;
/etc/squid/squid_control
#########################################################################
elif [ "$abertura" == "7" ]; then
destino=$(dialog --stdout --inputbox "Defina o endereço de destino:" 0 0 "200.253.131.10")
quant=$(dialog --stdout --inputbox "Defina a quantidade de pings enviados:" 0 0 "10")
tamanho=$(dialog --stdout --inputbox "Defina o tamanho dos pacotes:" 0 0 "64")
dialog --infobox "Aguarde enquanto o teste é realizado." 0 0
#if [ "$destino == "" ]; then
#dialog --msgbox "O valor do destino não foi definido." 0 0
#elif [ "$tamanho == "" ]; then
#dialog --msgbox "O valor do tamanho dos pacotes não foi definido." 0 0
#elif [ "$quant == "" ]; then
#dialog --msgbox "O valor da quantidade de pacotes não foi definido." 0 0
#else
ping -c $quant -s $tamanho $destino > /tmp/testping
dialog --title "RESULTADO DO TESTE" --textbox /tmp/testping 0 0
#fi
/etc/squid/squid_control
#########################################################################
elif [ "$abertura" == "8" ]; then
tipo=$(dialog --stdout --menu "Escolha a opçao" 0 0 0 1 'Cadastrar' 2 'Remover')
if [ "$tipo" == '1' ]; then
velocidade
elif [ "$tipo" == '2' ]; then
excluirvelo
fi;
/etc/squid/squid_control
#########################################################################
elif [ "$abertura" == "9" ]; then
arp -ea | more > /tmp/listaconec
dialog --title "RESULTADO DO TESTE" --textbox /tmp/listaconec 0 0
fi
/etc/squid/squid_control
elif [ "$abertura" == "0" ]; then
clear
fi
# Regras para o botão cancelar do menu principal
#clear
Unificando arquivos de bloqueio e liberação no squid
Instala os modulos de bateria dos notebook da Acer
linkswitch (redundância de internet)
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
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?
VOL já não é mais como antes? (3)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









