Gerenciamento de clientes com cbq,squid e firewall no kurumin.
Publicado por clelton souza silva 06/06/2007
[ Hits: 7.118 ]
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
Migração de Aplicações para Ambiente Web - Uma Abordagem Prática
Simples inventário de máquinas em Shell Script
Backup completo e automatizado da base de dados do ZODB
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Preciso resolver um erro de DPKG (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta