squid_acl

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

[ Hits: 6.606 ]

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

Script de Ping

checar status das portas

Limpar bibliotecas não utilizadas

S-montar/desmontar

Script para Criação de ips para utilizar em controle de banda


  

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