squid_acl

Publicado por Edson G. de Lima 08/07/2004

[ Hits: 6.616 ]

Download squid_acl




Como a maioria do pessoal que administra o Squid utiliza acl's do tipo url_regex, fazendo menção a arquivos que são checados pelas regras; este script contém um menu interativo que facilita a edição destes arquivos.

Com alguns pequenos ajustes (/diretório/arquivo), você poderá adequá-lo ao SEU Squid (e poder  tirar férias tranqüilo...)  ;-)

Pela possibilidade de ser aproveitado, aproveitei para "carregar" este script também no "grupo squid-br".

Edson/Xxoin

  



Esconder código-fonte

#!/bin/bash
clear
echo
echo '          Obrigado por prestigiar este configurador!!!'
echo '          O que você deseja fazer?'
echo '          Por favor, digite um número referente a sua escolha...'
echo

### Opções no menu:
select OPC in "Incluir_acl/regra" "Liberar_site" "Inserir_usuário" "Inserir_usuárioMaster" "Barrar_palavra" "Liberar_IP" "Zerar_cache" "Zerar_logs" "Backup_RelSarg" "Liberar_palavra" "Editar_arquivo_manualmente" "SAIR"; do
break
done

#---------------------------------------------------------------------
### (1) Se a escolha for inserir uma acl/regra:
if [ $OPC = "Incluir_acl/regra" ] ; then
echo
echo 'Esta opção envolve a edição do arquivo /etc/squid/squid.conf...'
echo
echo 'Se você não está certo do que irá fazer, recomenda-se "abortar"...'
echo
echo 'Deseja continuar???'
echo
echo 'Pressione   s   para sim ou qualquer letra para sair.'
    read CONF
    if [ $CONF = "s" ]; then
    echo
    echo 'Ok, irei abrir o "squid.conf". Após a sua edição é necessário'
    echo '         o comando squid -k reconfigure'
    sleep 5
    echo
    echo 'Você tem preferência pelo Editor VI?'
    echo
    echo 'Se você responder não (letra n), será aberto o MCEDIT'
   read VI
   if [ $VI = "n" ]; then
   mcedit /etc/squid/squid.conf
   else
   vi /etc/squid/squid.conf
   fi
    else
    echo
    echo 'Saindo sem fazer nada...'
    echo
    echo 'Caso queira editar o squid.conf, nesta etapa, digite   s   minúsculo.'
    fi

#---------------------------------------------------------------------
### (2) Se a escolha for liberar um site útil:
elif [ $OPC = 'Liberar_site' ]; then
echo
echo 'Digite o nome do site (url) que deseja liberar'
read SITE
echo $SITE >> /etc/squid/sites_uteis
squid -k reconfigure

#---------------------------------------------------------------------
### (3) Se a escolha for inserir um usuário: 
elif [ $OPC = "Inserir_usuário" ]; then
echo
echo 'Este usuário deverá estar cadastrado no PDC.'
echo
echo 'Digite o nome do usuário que deseja liberar'
read USUARIO
echo $USUARIO >> /etc/squid/usuarios_internet
squid -k reconfigure

#---------------------------------------------------------------------
### (4) Se a escolha for inserir um usuário master:
elif [ $OPC = "Inserir_usuárioMaster" ]; then 
echo
echo 'Este usuário deverá estar cadastrado no PDC.'
echo
echo 'Digite o nome do usuário_master que deseja liberar'
read MASTER
echo $MASTER >> /etc/squid/master_users
squid -k reconfigure

#---------------------------------------------------------------------
### (5) Se a escolha for barrar uma palavra: 
elif [ $OPC = "Barrar_palavra" ]; then
echo
echo 'Digite a palavra que deseja barrar'
read PALAVRA
echo $PALAVRA >> /etc/squid/porno
squid -k reconfigure

#---------------------------------------------------------------------
### (6) Se a escolha for liberar um IP: 
elif [ $OPC = "Liberar_IP" ]; then
echo
echo 'Digite o IP da máquina que deseja liberar'
read IP
echo $IP >> /etc/squid/IPs_liberados
squid -k reconfigure

#---------------------------------------------------------------------
### (7) Se a escolha for zerar o cache: 
elif [ $OPC = "Zerar_cache" ]; then
cd /var/log/squid
service squid stop
cat/dev/null > cache.log
squid -z
service squid start

#---------------------------------------------------------------------
### (8) Se a escolha for zerar os logs:
elif [ $OPC = "Zerar_logs" ]; then
echo
echo 'Deseja fazer um backup compactado do arquivo access.log? (s) (n)'
echo
echo 'O backup será /home/accesslog_"data_hoje".tar.gz'
    read ACCESS
    if [ $ACCESS = "n" ]; then
    cd /var/log/squid
    service squid stop
    cat/dev/null > store.log
    cat/dev/null > access.log
    service squid start
    else 
    echo
    echo 'O backup será /home/accesslog_"data_hoje".tar.gz'
    tar cvf /home/accesslog_`date +%d_%b_%Y`.tar /var/log/squid/access.log
    gzip /home/accesslog_`date +%d_%b_%Y`.tar

   if [ -e /home/accesslog_`date +%d_%b_%Y`.tar.gz ]; then      
   echo 
   echo 'O backup foi criado. Zerando os logs...'
   cd /var/log/squid
     service squid stop
      cat/dev/null > store.log
     cat/dev/null > access.log
    service squid start
   else
   echo 
   echo 'O backup não foi criado. Prosseguir? (s) (n)'
   read S_N
       if [ $S_N = "n" ]; then
       echo 'Saindo sem fazer nada...'
       else
       cd /var/log/squid
         service squid stop
          cat/dev/null > store.log
         cat/dev/null > access.log
        service squid start
       fi
   fi
    fi     

#---------------------------------------------------------------------
### (9) Se a escolha for fazer back_up dos Relatórios do Sarg:
elif [ $OPC = "Backup_RelSarg" ]; then
BACKUP=$(date +%d_%b_%Y)
tar cvf /var/BKP_RelSarg/RelSarg_$BACKUP.tar /srv/www/default/html
gzip /var/BKP_RelSarg/RelSarg_$BACKUP.tar
    if [ -e /var/BKP_RelSarg/RelSarg_$BACKUP.tar.gz ]; then
    echo
    echo 'Realizado backup com sucesso! Listando diretório:'
    ls -la | less /var/BKP_RelSarg
    else
    echo
    echo
    echo 'Algo saiu errado, o backup não foi realizado.'
    fi

#---------------------------------------------------------------------
### (10) Se for para liberar uma palavra que está sendo barrada em uma url:
elif [ $OPC = "Liberar_palavra" ]; then
echo
echo 'Utilize esta função se uma "palavra" estiver barrando uma url'
echo 'Digite a palavra que deseja liberar'
read WORD
echo $WORD >> /etc/squid/liberar
squid -k reconfigure

#---------------------------------------------------------------------
### (11) Se a escolha for editar um arquivo:
elif [ $OPC = "Editar_arquivo_manualmente" ]; then
echo
echo 'Selecione o número da opção desejada'
select EDITAR in "IPs_liberados" "Liberar_palavra" "Barrar_palavra" "Liberar_site" "Usuários_internet" "Master_users"; do
break
done
echo
echo '--------------------------- Atenção: ---------------------------'
echo 'Após editar o arquivo, aplique o comando:   squid -k reconfigure'
echo
    if [ $EDITAR = "IPs_liberados" ]; then
    mcedit /etc/squid/IPs_liberados
    elif [ $EDITAR = "Liberar_palavra" ]; then
    mcedit /etc/squid/liberar
    elif [ $EDITAR = "Barrar_palavra" ]; then
    mcedit /etc/squid/porno
    elif [ $EDITAR = "Liberar_site" ]; then
    mcedit /etc/squid/sites_uteis
    elif [ $EDITAR = "Usuários_internet" ]; then
    mcedit /etc/squid/usuarios_internet
    elif [ $EDITAR = "Master_users" ]; then
    mcedit /etc/squid/master_users
    else
    clear
    echo '---------------------------------------------------------'
    echo 'Alguma coisa está provocando erro!'
    echo 'Possivelmente, você não esteja digitando um número.'
    echo 'Por favor, verifique a tecla "Num_Lock" e tente novamente.'
    echo '----------------------------------------------------------'
    fi

#---------------------------------------------------------------------
### (12) Se a escolha for sair:
elif [ $OPC = "SAIR" ]; then 
clear
echo
echo
echo    '      ---------------------------------------------------------'
echo    '     |           "Ninguém é insubstituível, porém,             |'
echo    '     |  ninguém deve ser tratado como se fosse descartável."   |'
echo    '     |                                                         |'
echo    '     |                                   Edson de Lima         |'
echo    '      ---------------------------------------------------------'
echo
echo
echo
exit

else
clear
echo
echo '     Algo está saindo errado... Final inesperado do script!'
echo '     Possivelmente, você não está fazendo uma escolha "numérica"...'
echo
echo '     Saindo sem fazer nada...'
echo '     Por favor, verifique a tecla "Num_Lock" e repita a operação!'
echo
echo
exit
fi
#=====================================================================
### ------------- Edson de Lima
### --------------------------- Campo Grande/MS, Jul_2004

Scripts recomendados

Grep em loop infinito

Soma as notas de alunos

Removedor de arquivos vazios na pasta corrente

S-phoenix desliga/reinicia, quantos estão logado no PC, tempo ligado

KSH-93 orientado a objetos... SQN :P


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts