Início > Squid > Configuração do Squid-Graph no CentOS com controle de acesso por usuários do AD

Configuração do Squid-Graph no CentOS com controle de acesso por usuários do AD

O Squid-Graph é uma ferramenta desenvolvida em Perl para o Squid, que analisa o volume de tráfego e apresenta as informações através de gráficos com volumes de acesso e transferências realizadas através do Proxy.

1  Ambiente

SO: Centos 5.6
Kernel: 2.6.18-274.el5
Squid: 2.6.STABLE21
Apache: 2.2.3

1.1  Dependências

  • Perl GD

1.2 Satisfazendo a dependência

# wget http://pkgs.repoforge.org/perl-GD/perl-GD-2.45-1.el5.rf.x86_64.rpm

# rpm -ivh perl-GD-2.45-1.el5.rf.x86_64.rpm

 

2 Instalação do programa:

O processo de instalação da ferramenta é bem simples, já que não é necessário compilar nada.


# wget http://ufpr.dl.sourceforge.net/project/squid-graph/squid-graph/3.2/squid-graph-3.2.tar.gz
# tar -zxvf squid-graph-3.2.tar.gz
# mv squid-graph /usr/local/

Criando diretório de armazenamento dos gráficos

# mkdir /var/www/html/squid-graphs
 

Criando os gráficos

3.1 Criando um gráfico padrão

# /usr/local/squid-graph/squid-graph –output-dir=/var/www/html/squid-graphs/ < /var/log/squid/access.log
 

3.2 Criando um gráfico acumulativo:

# /usr/local/squid-graph/squid-graph -c -n -o=/var/www/html/squid-graph/ –title=”Grafico de uso do proxy” < \ /var/log/squid/access.log
 

3.3 Para gerar um gráfico somente de TCP:

/usr/local/squid-graph/squid-graph –tcp-only –output-dir=/var/www/html/squid-graph/ \
–title=”Grafico de uso TCP”  < /var/log/squid/access.log
 

3.4 Para gerar um gráfico somente de UDP:

/usr/local/squid-graph/squid-graph –udp-only –output-dir=/var/www/html/squid-graph/ \
–title=”Grafico de uso UDP”  < /var/log/squid/access.log
 

3.5 Para gerar um gráfico de uma URL específica:

# cat /var/log/squid/access.log | grep “xxxx” | /usr/local/squid-graph/squid-graph -c -n \
-o=/var/www/html/squid-graph/ –title=”Gráfico de uso do site XXXX”
 

3.6 Para gerar um gráfico de um usuário específico:

# cat /var/log/squid/access.log | grep “usuário/ip” | /usr/local/squid-graph/squid-graph -c -n \
-o=/var/www/html/squid-graph/ –title=”Gráfico do usuario xxx”
 

4  Adicionar um logo ao gráfico

Copiar o logo com o nome logo.png para o diretório dos relatórios /var/www/html/squid-graphs

5  Automatizando a Geração do gráfico

A geração dos gráficos foi dividida em duas partes. Primeiro foi criado um script para gerar os gráficos de acesso a cada 1 hora.

# vim /scripts/squid-graph.sh

#!/bin/bash
# Script para geracao de graficos de uso do proxy

HOJE=`date '+%d-%m-%Y'`
/usr/local/squid-graph/squid-graph -o=/var/www/html/squid-graph/ \
--title="Grafico de uso do proxy do dia $HOJE " < /var/log/squid/access.log
exit 0

Um segundo script foi criado para manter um ‘histórico diário’ dos gráficos, uma vez que sempre que o squid-graph é executado os gráficos gerados são sobrescritos.

# vim /scripts/squid-logs.sh

#!/bin/bash
# Script de geracao de relatorios de acesso do Squid e manutencao dos logs
# Manutencao do diretorio dos graficos de acesso do proxy

ONTEM=`(date --date "1 day ago" +%d-%m-%Y)`
/scripts/squid-graph.sh
cd /var/www/html/squid-graph/
mkdir $ONTEM
mv *.* $ONTEM
cp /usr/local/squid-graph/logo.png /var/www/html/squid-graph/
/scipts/squid-graph.sh
/usr/local/sarg/bin/sarg
/usr/local/squid/sbin/squid -k rotate

Entendendo o script:

  •  As variáveis ONTEM e HOJE, são usadas para receber as datas do dia em que o script está sendo executado e do dia anterior;
  •  Em seguida são gerados os últimos gráficos do Proxy referentes ao dia corrente;
  •  No diretório onde são as armazenados os gráficos (/var/www/html/squid-graph) é criado um diretório com rótulo do dia anterior (mkdir $ONTEM) e em seguida todos os arquivos gerados pelo squid-graph são movidos para este diretório (mv *.* $ONTEM)
  •  O logo exibido nos relatórios é copiado novamente para o diretório dos gráficos (cp /usr/local/squid-graph/logo.png /var/www/html/squid-graph/)
  • O gráfico do Squid é gerado novamente;
  •  O comando /usr/local/sarg/bin/sarg gera o relatório diário de acessos do Squid e comando /usr/local/squid/sbin/squid -k rotate rotaciona os logs do Proxy;

Após criar os dois scripts, é necessário alterar as permissões dos mesmos para que possam ser executados:

# chmod +x /scripts/squid-graph.sh
# chmod +x /scripts/squid_logs.sh

Adicionar as entradas para os scripts no crontab:

# vim /etc/crontab

00 23 * * * root /scripts/squid_log.sh
00 * * * * root /scripts/squid-graph.sh

Desta forma, o script squid_log.sh é executado todos os dias às 23h e o script squid-graph.sh é executado todos os dias de hora em hora.

Os gráficos gerados pela ferramenta podem ser visualizados pelo endereço: http://ipdoservidor/squid-graph/. Para acessar gráficos mais antigos basta adicionar a data desejada ao endereço: http://ipdoservidor/squid-graph/08-09-2011.

6 Controle de acesso

      Para limitar o acesso aos relatórios gerados, pode ser usado o recurso do .htaccess do Apache ou a autenticação baseada em grupos/usuários de um domínio.  Na segunda opção, o servidor deve estar integrado ao domínio através dos serviços: samba, winbind e kerberos. Esta integração não será abordada neste post, mas pode ser tratada em outra oportunidade. Para esta configuração será utilizada a autenticação no domínio.

Para isso é necessário habilitar o módulo ntlm_winbind_module no Apache:

# vim /etc/httpd/conf/httpd.conf

LoadModule ntlm_winbind_module modules/mod_auth_ntlm_winbind.so

A configuração seguinte também poderia ser inserida no httpd.conf, mas para efeito de organização, vamos criar um arquivo para a autenticação dos gráficos.

# vim /etc/httpd/conf.d/squid-graph.conf

Alias /squid-graph /var/www/html/squid-graph
<Directory "/var/www/html/squid-graph">
AuthName "Nome exibido na janela de autenticação"
NTLMAuth on
NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
NTLMBasicAuthoritative on
AuthType NTLM
require user (lista dos usuários com permissão de acesso aos gráficos)
</Directory>

Entendendo o arquivo:

  • Alias: define um nome para o acesso aos relatórios (http://ipdoservidor/squid-graph);
  • AuthName: Mensagem exibida no formulário de login;
  • NTLMAuth on: habilita a autenticação de usuários;
  • NTLMAuthHelper: localização do helper do ntlm;
  • AuthType NTLM: tipo de autenticação utilizada;
  • require user: usuários que possuem permissão para acessar o diretório;

Ao concluir as configurações é necessário reiniciar o Apache:

# service httpd restart

Os gráficos gerados pela ferramenta podem ser visualizados pelo endereço: http://ipdoservidor/squid-graph.

 

7 Referências

http://www.vivaolinux.com.br/dica/Instalacao-do-SquidGraph-3.2-no-Debian-6.0/

http://pt.scribd.com/doc/50417570/31/Squid-Graph

http://www.squid-cache.org.br/index.php?option=com_content&task=view&id=82&Itemid=27

http://bloke.org/linux/ntlm-authentication-active-directory-on-apache-linux/

http://docs.moodle.org/20/en/NTLM_authentication#Using_the_NTLM_part_of_Samba_for_Apache_on_Linux

  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: