Gerenciamento de clientes com cbq,squid e firewall no kurumin.
Publicado por clelton souza silva 06/06/2007
[ Hits: 7.142 ]
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 de compilação do Xorg 7.2 otimizado para Slackware 64 bits (Slamd64)
Instalação e configuração do celular Nokia 6670 no Ubuntu 8.10
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
A area de trabalho ficou preta (14)
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (4)
xubuntu sem sons de eventos (4)