Gerenciamento de clientes com cbq,squid e firewall no kurumin.
Publicado por clelton souza silva 06/06/2007
[ Hits: 7.336 ]
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  
SCRIPT PARA AUTOMAÇÃO DE ATUALIZAÇÃO EM AMBIENTE DEBIAN OU DERIVADOS.
Criando um Backup .ISO do seu CD.
Bloquear o DHCP de dispositivos móveis
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. (4)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (14)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









