Script para verificar LOGs do Squid e selecionar páginas a serem bloqueadas
Caros,
Uma das minhas maiores dificuldades em relação a administração do proxy (SQUID) sempre foi ter que ficar analisando os relatórios de utilização de internet (SARG). Na maioria das vezes os meus relatórios tinham mais de 1.000 linhas de sites visitados. Imagine você verificando um por um. É de enlouquecer!
Lendo muitos posts e matérias sobre a utilização de alguns comandos para coletar palavras em determinados arquivos, resolvi da uma paradinha e escrever meu script. Vocês não tem noção como isso facilitou a minha vida.
Qual a função deste script?
Fazer um append das informações que deseja bloquear no arquivo pré-existente em seu Squid.
Como funciona o script?
Primeiro você construirá uma lista de palavras que deseja rastrear em seu log;
Iniciará a varredura nos arquivos de log do Squid (access.log, access.log.1...) conforme escolhido pelo usuário;
Coletará os sites com as palavras pré-estabelecidas pelas palavras;
Listará todos os sites encontrados;
Incluirá os sites no arquivo já existente e os bloqueará.
O que será necessário:
Bom, programei este arquivo visualizando o meu ambiente, que é baseado no Debian 4.0. Mas você pode alterá-lo quando quiser, setando os seus diretórios de preferência.
Utilizei o editor de texto mcedit (Midnight Commander). Para você implementar este pacote segue a regra:
# apt-get update
# apt-get -y install mc
Obs.: Caso opte por qualquer outro editor, basta trocar as linhas onde está o mcedit pelo de sua preferência.
Código do script:
#!/bin/bash
# Script para coletar sites atribuídos por uma determinada palavra no access.log do Squid
# Autor: Jose Carlos - 22-01-2009 - Versao 1.0
# email: sepjcarlos@hotmail.com
#Arquivo de palavras a serem procuradas
BLOCK="/usr/local/scripts/block" #Arquivo de sites coletados conforme palavras
SITES="/usr/local/scripts/sites" #Arquivo de bloqueio (utilizado Pelo Squid)
BLOQ="/usr/local/scripts/negados"
principal() {
clear
echo VERIFICA LOG PARA BLOQUEIO DE SITES
echo -----------------------------------
echo
echo "Escolha a opcao "
echo "1. Edita Arquivo de Palavras "
echo "2. Edita Arquivo de Site "
echo "3. Rastrear Palavras no LOG "
echo "4. Reiniciar Squid "
echo "0. Sair "
echo -n "Entre com a opcao desejada ==> "
read opcao
echo
case $opcao in
1) Palavras;;
2) Site;;
3) Procura;;
4) Sistema;;
0) exit;;
*) "Opcao desconhecida. "; echo ; principal;;
esac
}
Palavras() {
mcedit $BLOCK
echo "Pressione qualquer tecla para continuar... "
read msg
principal
}
Site() {
mcedit $SITES
echo "Pressione qualquer tecla para continuar... "
read msg
principal
}
Procura() {
echo "Digite o nome do Log a ser lido."
echo "Exemplo: access.log ou access.log.1: "
read LOG
if
find /var/log/squid -name $LOG
then
while true
do
echo "Lendo o arquivo de LOG ( $LOG ). Aguarde... Esse processo pode demorar alguns minutos..."
cat /var/log/squid/$LOG | egrep -f $BLOCK | awk '{print $7}' | sed 's/http:\/\///' | sed 's/\/.*$//' | sort | uniq > /usr/local/scripts/sites
echo "Fim do processo de leitura. "
echo "O arquivo encontra-se gravado com os sites que contenham a palavras"
echo "Nao esquece de verificar o arquivo de sites para n bloquear conteudos licitos"
echo
echo "Pressione qualquer tecla para continuar..."
mcedit $SITES
echo "#### Sites gerados em "`date +%d-%m-%y`" ####" >> $BLOQ
cat $SITES | sort -u | grep -v ^$ >> $BLOQ
echo "Pressione qualquer tecla para continuar..."
read msg
principal
done
else
echo "Arquivo de Log nao existe..."
echo "Digite o nome correto..."
echo "Pressione qualquer tecla para continuar..."
read msg
principal
fi
}
Sistema() {
echo "Reiniciando Squid: "
echo
squid -k reconfigure
echo "Pressione qualquer tecla para continuar..."
read msg
principal
}
principal
[3] Comentário enviado por Virgil_Dantas em 06/05/2015 - 11:21h
muito bom o script, estou implementando nele uma forma de mandar por e-mail o arquivo com os sites bloqueados e tambem listar o login do usuario junto com o site.
[4] Comentário enviado por Virgil_Dantas em 12/05/2015 - 11:18h
muito bom o script, implementei nele uma forma de mandar por e-mail o arquivo com os sites bloqueados e tambem listar o login do usuário junto com o site.