Depois de pesquisar por mais de uma semana, encontrei a solução no meu caminho usando relatórios html de sarg - Gerador de relatórios de análise de squid , e extraindo seus dados usando o script bash simples.
sarg
armazena seus dados no diretório /var/www/sarg
. Para gerar um relatório mensal, temos que usar manualmente este comando: sarg -d 01/08/2015-31/08/2015
.
Após este comando eu escrevi um script simples para bloquear por endereço IP que são overlimit da seguinte forma:
#!/bin/bash
range=2015Aug03-2015Aug25
ip=( 192.168.3.111 192.168.3.49 192.168.3.53 )
maxsize=100000000
cd /var/www/sarg/$range/
for system in "${ip[@]}"; do
size='cat $system/$system.html | grep TOTAL | awk '{print $4}' | tr -d 'class="header2"></t.<t'| sed 's/K/0/' | sed 's/M/0000/''
if [ "$size" -gt "$maxsize" ]
then
iptables -A INPUT -s $ip -p tcp --dport 3128 -j DROP
iptables -A OUTPUT -s $ip -p tcp --dport 3128 -j DROP
echo "$system blocked because data usage over $size bytes"
else
echo "$system used size is $size"
fi
done
service iptables save
OBSERVAÇÃO: Este script não está totalmente disponível a partir de agora e precisa trabalhar um pouco mais para que tudo seja totalmente automatizado e flexível.