SQUID - Usando o Sarg para monitorar o acesso

O Sarg é um interpretador de logs para o Squid, assim como o Webalizer é para o Apache. Sempre que executado, ele cria um conjunto de páginas, divididas por dia, com uma lista de todas as páginas que foram acessadas e a partir de que máquina da rede veio cada acesso. Caso você tenha configurado o Squid para exigir autenticação, ele organiza os acessos com base nos logins dos usuários. Caso contrário, ele mostra os endereços IP das máquinas.

A partir daí, você pode acompanhar as páginas que estão sendo acessadas (mesmo que não exista nenhum filtro de conteúdo) e tomar as medidas cabíveis em casos de abuso. Todos sabemos que os filtros de conteúdo nunca são completamente eficazes, eles sempre bloqueiam algumas páginas úteis e deixam passar muitas páginas impróprias. Se você tiver algum tempo para ir acompanhando os logs, a inspeção manual acaba sendo o método mais eficiente. Você pode ir fazendo um trabalho incremental, ir bloqueando uma a uma as páginas onde os usuários perdem muito tempo, ou fazer algum trabalho educativo, explicando que os acessos estão sendo monitorados e estabelecendo algum tipo de punição para quem abusar.

Aqui está um exemplo do relatório gerado pelo Sarg. Por padrão, ele gera um conjunto de páginas html dentro da pasta "/var/www/squid-reports/" (ou "/var/www/html/squid/", nas distribuições derivadas do Red Hat), que você pode visualizar através de qualquer navegador:

Os acessos são organizados por usuário (caso esteja sendo usada autenticação) ou por IP, mostrando as páginas acessadas por cada um, quantidade de dados transmitidos, tempo gasto em cada acesso, tentativas de acesso bloqueadas pelos filtros de conteúdo e outras informações.

Os logs são inicialmente organizados por período, sendo que os relatórios antigos são mantidos quando o relatório é atualizado (com o tempo o relatório acaba armazenando um volume muito grande de informações). Dentro do relatório de cada período, você tem a lista dos endereços IP e/ou dos usuários autenticados que utilizaram o proxy e, dentro do relatório referente a cada um, você pode acompanhar o log das páginas acessadas e outras informações, de forma bastante detalhada.

O Sarg é incluído na maioria das distribuições atuais, em alguns casos instalado por padrão junto com o Squid. No Debian e derivados ele pode ser instalado via apt-get:

# apt-get install sarg

No Mandriva, ele é instalado usando o urpmi e assim por diante:

urpmi sarg

Depois de instalado, chame o comando "sarg" (como root) para que os relatórios sejam gerados a partir do log do Squid. O Sarg não é um daemon que fica residente, você precisa apenas chamá-lo quando quiser atualizar o relatório:

# sarg

Para automatizar esta tarefa, você pode usar o cron para que ele seja executado automaticamente todos os dias ou uma vez por hora, por exemplo. No Debian (e na maioria das outras distribuições) é criado automaticamente um script dentro da pasta "/etc/cron.daily/", que faz com que ele seja executado todos os dias às 6:25 da manhã.

Dentro da mesma pasta, você encontrará um script que executa o logrotate, o serviço do sistema responsável por rotacionar os logs, evitando que eles cresçam até ocupar todo o espaço disponível no HD do servidor. Todos os dias, o logrotate renomeia e compacta os arquivos de log, incluindo o log do Squid, fazendo com que o log do dia anterior receba a extensão ".1" e os logs seguintes as extensões ".2.gz", ".3.gz" e assim por diante. Com isso, a pasta "/var/log/squid" conterá uma seqüência de arquivos (access.log, access.log.1, access.log.2.gz, access.log.3.gz e assim por diante).

No caso do Debian, o logrotate é corretamente configurado para executar o Sarg antes de rotacionar os logs, de forma que ele não deixe de contabilizar os acessos. Caso tenha problemas em outras distribuições, experimente renomear o arquivo "/etc/cron.daily/sarg" para "/etc/cron.daily/ksarg", de forma que ele seja executado imediatamente antes do "/etc/cron.daily/logrotate".

Você pode alterar a pasta onde são salvos os relatórios, limitar o acesso às estatísticas e alterar várias opções cosméticas no arquivo de configuração do Sarg, que é o "/etc/squid/sarg.conf" (ou o "/etc/sarg/sarg.conf", de acordo com a distribuição usada). O arquivo é auto-explicativo, nele você pode alterar os diretórios-padrão, alterar o layout da página, cores e títulos, etc. Outro recurso interessante é o envio de uma cópia do relatório por e-mail sempre que o Sarg for executado.

As duas linhas mais importantes dentro do arquivo são a "output_dir /var/www/squid-reports", onde é especificada a pasta onde serão armazenados os relatórios (que, naturalmente, precisa existir no sistema) e a "access_log /var/log/squid/access.log", onde é indicada a localização do arquivo de log do Squid. Ao configurar o Squid para salvar os logs em outro arquivo, é necessário especificá-lo dentro da configuração do Sarg. Se você quer que o relatório seja gerado em Português, substitua a linha "language English" (logo no início do arquivo) para "language Portuguese".

Inicialmente, o relatório poderá ser visualizado apenas a partir do próprio servidor, o que pode ser imprático se você o acessa remotamente. Se você manteve o default, que é salvar os relatórios dentro do diretório "/var/www", pode disponibilizar o relatório para a rede simplesmente instalando o Apache, como em:

# apt-get install apache2

A partir daí, você pode acessar os relatórios através do http://ip-do-servidor/squid-reports", como em "http://192.168.1.1/squid-reports". Para evitar que outros usuários da rede fiquem bisbilhotando nos relatórios, você pode proteger a pasta com senha, usando um arquivo .htaccess, como veremos em detalhes no capítulo sobre o Apache.

Fonte: http://www.hardware.com.br/livros/servidores-linux/usando-sarg-para-monitorar-acesso.html

.