Instalação e Configuração do lightsquid no CentOS 6.3

E ai galera, aqui eu vou abordar a Instalação e configuração do lightsquid, um gerador de relatórios para o squid escrito em perl.

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialcentos6_en para que não falte nenhum pacote ou configuração.

Podemos ver um demo do lightsquid em http://lightsquid.sourceforge.net/demo18/index.cgi?year=2009&month=08

Agora vamos fazer um update dos repositórios e um upgrade do sistema

yum check-update && yum update -y

Agora vamos instalar as dependências dele

yum install perl-GD perl-CGI httpd

Agora vamos obter o lightsquid

cd /var/www/html/
wget -c http://wiki.douglasqsantos.com.br/Downloads/monitoring/lightsquid-1.8.tgz

Agora vamos desempacotar ele

tar -xzvf lightsquid-1.8.tgz

Agora vamos remover o tgz

rm -rf lightsquid-1.8.tgz

Agora vamos renomear o nosso diretório do lightsquid

mv lightsquid-1.8 lightsquid

Agora vamos acertar as permissões dos arquivos

cd lightsquid
chmod +x *.cgi
chmod +x *.pl

Agora vamos mudar o dono do diretório

chown -R apache:apache /var/www/html/lightsquid

Agora vamos ajustar o arquivo do apache

vim /etc/httpd/conf/httpd.conf
[...]
#Insira as linhas abaixo após a linha 362 do arquivo
<Directory "/var/www/html/lightsquid">
   DirectoryIndex index.cgi
   Options +ExecCGI -Indexes -MultiViews +SymLinksIfOwnerMatch
   AddHandler cgi-script .cgi
   AllowOverride All
</Directory>
[...]

Agora vamos ajustar o idioma do lightsquid

vim /var/www/html/lightsquid/lightsquid.cfg
[...]
$lang                ="pt_br";

Agora vamos testar o lightsquid

perl  /var/www/html/lightsquid/check-setup.pl
LightSquid Config Checker, (c) 2005-9 Sergey Erokhin GNU GPL

LogPath   : /var/log/squid
reportpath: /var/www/html/lightsquid/report
Lang      : /var/www/html/lightsquid/lang/pt_br
Template  : /var/www/html/lightsquid/tpl/base
Ip2Name   : /var/www/html/lightsquid/ip2name/ip2name.simple


all check passed, now try access to cgi part in browse

Agora vamos inserir o apache na inicialização do sistema

chkconfig --add httpd
chkconfig httpd on

Agora vamos iniciar o apache

/etc/init.d/httpd start

Agora vamos gerar os nossos relatórios

/var/www/html/lightsquid/lightparser.pl

Agora já podemos acessar o nosso relatório em http://ip_servidor/lightsquid/

Umas das opções interessantes que eu acho desse cara é que podemos configurar grupos para os usuários, com isso podemos mandar consultar quais grupos acessaram o que e quais usuários pertences a eles.

Vamos acessar o diretório do lightsquid

cd /var/www/html/lightsquid

Agora vamos fazer uma copia do group.cfg

cp group.cfg.src group.cfg

Agora vamos editar o nosso arquivo

vim group.cfg
douglas.santos    01      ti-admin
anderson.angelote 01      ti-admin
hillary           02      matriz-logistica
nerso             02      matriz-logistica

Aqui temos na primeira coluna o nome do usuário poderia ser o endereço ip do cliente, na segunda coluna o número do grupo e a terceira coluna é o nome do grupo

Agora para que apareça a identificação dos grupos precisamos gerar novamente o nosso relatório.

/var/www/html/lightsquid/lightparser.pl

Outra opção bacana que temos é fazer o mapeamento para nomes completos por exemplo o nome douglas.santos vamos mapear para Douglas Quintiliano dos Santos, o arquivo que precisamos editar é o seguinte

vim /var/www/html/lightsquid/realname.cfg
douglas.santos Douglas Quintiliano dos Santos
192.168.1.3    Nerso da Silva

Aqui podemos mapear tanto nomes de usuários como endereço ip com isso no relatório podemos não lembrar na hora quem utilizar o ip 192.168.1.3 mais pelo nome é bem mais fácil de cobrar um determinado usuário, após efetuar a modificação precisamos gerar o relatório novamente

/var/www/html/lightsquid/lightparser.pl

Agora vamos criar um agendamento no cron para gerar automaticamente o nosso relatório:

crontab -e
[...]
*/20 * * * * /var/www/htdocs/lightsquid/lightparser.pl today

Agora vamos criar um virtualhost para o lightsquid

vim /etc/httpd/conf.d/lightsquid.conf
<VirtualHost *:80>
 ServerName lightsquid.douglasqsantos.com.br
 ServerAlias lightsquid.douglasqsantos.com.br
 DocumentRoot "/var/www/html/lightsquid"

 #Controle de acesso ao lightsquid
 <Directory "/var/www/html/lightsquid">
   DirectoryIndex index.cgi
   Options +ExecCGI -Indexes -MultiViews +SymLinksIfOwnerMatch
   AddHandler cgi-script .cgi
   AllowOverride All

 #Autenticação do lightsquid
 AuthUserFile /etc/httpd/access/lightsquid-htpasswd
 AuthName "LightSquid"
 AuthType Basic
 require valid-user
 </Directory>

 #Configuração dos logs do apache
 ErrorLog /var/log/httpd/lightsquid.douglasqsantos.com.br-error.log
 CustomLog /var/log/httpd/lightsquid.douglasqsantos.com.br-access.log common

 #Retirando a assinatura do Apache
 ServerSignature Off

 IndexIgnore .??* *~ *# README RCS CVS *,v *,t *

 # Possible values include: debug, info, notice, info, error, crit,
 # alert, emerg.
 LogLevel info
</VirtualHost>

Agora vamos criar o diretório que vai conter o arquivo de controle dos usuários que podem acessar o lightsquid

mkdir /etc/httpd/access/

Agora vamos gerar o usuário e a senha, aqui eu vou cadastrar o usuário lightsquid

htpasswd -s -c /etc/httpd/access/lightsquid-htpasswd lightsquid
New password: 
Re-type new password: 
Adding password for user lightsquid

Agora vamos reiniciar o apache

/etc/init.d/httpd restart

Agora já podemos acessar http://lightsquid.douglasqsantos.com.br ou http://ip_servidor

Referências