Gerenciamento de clientes com cbq,squid e firewall no kurumin.
Publicado por clelton souza silva 06/06/2007
[ Hits: 7.033 ]
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
Exemplo da inicialização do serviço sshd
Trocar senha de root NO BRACO remotamente
procurar palavras dentro de todos os ficheiros de sub directorias
Script para criar certificados de forma automatizada no OpenVpn
Nenhum comentário foi encontrado.
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando e usando o Dconf Editor, o "regedit" para Linux
Como instalar o navegador TOR no seu Linux
Instalando Zoom Client no Ubuntu 24.04 LTS
Em que pasta/arquivo ficam as configurações das janelas em derivados d... (3)
validando quandidade de leitura no read[DUVIDA] (2)
Qual a relevancia dos valores de bogomips com os Mhz e Ghz[DUVIDA] (4)
Jogar jogos do Win 10 no Ubuntu (6)
Som parou de funcionar depois de atualizar o kernel do Slackware 15 (1)